2014-11-23 47 views
0

我一直在試圖動態地改變gstreamer管道,但它只是在我改變狀態時立即停止流。我在這裏幹什麼?這裏是我的代碼:Gstreamer管道動態變化Python

#!/usr/bin/python 
import gobject 
import time 

gobject.threads_init() 
import pygst 

pygst.require("0.10") 
import gst 

p = gst.parse_launch("""filesrc location=/home/jango/Pictures/4.jpg name=src1 ! decodebin ! queue ! videoscale ! ffmpegcolorspace ! 
imagefreeze ! capsfilter name=vfps caps="video/x-raw-yuv, framerate=60/1, width=640, height=420" ! theoraenc ! oggmux name=mux ! filesink location=1.ogg""") 

p.set_state(gst.STATE_PLAYING) 
time.sleep(10) 
print "State change" 
p.set_state(gst.STATE_READY) 
source = p.get_by_name("src1") 
source.set_property("location", "/home/jango/Pictures/2.jpg") 
p.set_state(gst.STATE_PLAYING) 
gobject.MainLoop().run() 

請給我建議,如果有任何替代方法或可以參考我的任何教程。 在此先感謝。

回答

0

使用Gstreamer-Editing-Services可能是一個選項,它將爲您處理所有的管道重新佈線,並且使用比GStreamer更高級別的API。