Gstreamer Pipeline Dynamic Change Python
Я пытался динамически изменить конвейер gstreamer, но он просто останавливает поток, как только я меняю состояние. Что я здесь делаю? Вот мой код:
#!/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()
Пожалуйста, предложите мне, если есть какие-либо альтернативные методы или учебники, на которые я могу сослаться. Заранее спасибо.
1 ответ
Использование Gstreamer-Editing-Services может быть вариантом, он будет обрабатывать все конвейерные преобразования для вас, с API более высокого уровня, чем GStreamer.