为什么这个gstreamer管道失速?
这工作:
gst-launch-0.10
videotestsrc ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux.
audiotestsrc ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux.
avimux name=mux ! filesink location=gst.avi
我可以让它运行一段时间,杀死它,然后totem gst.avi
显示一个很好的测试卡的音调。
但是,试图做一些更有用的事情
gst-launch-0.10
filesrc location=MVI_2034.AVI ! decodebin name=dec
dec. ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux.
dec. ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux.
avimux name=mux ! filesink location=gst.avi
它只是显示
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
然后无限期地停顿。
使用decodebin滚动版本有什么诀窍?
啊哈......这就是我想要的:
gst-launch-0.10
filesrc location=MVI_2034.AVI ! decodebin name=dec
dec. ! queue ! ffmpegcolorspace ! 'video/x-raw-yuv' ! queue ! mux.
dec. ! queue ! audioconvert ! 'audio/x-raw-int,channels=1' ! audioresample ! 'audio/x-raw-int,rate=44100' ! queue ! mux.
avimux name=mux ! filesink location=gst.avi
队列元素(包括前导和尾随)似乎确实是至关重要的。
进一步的实验添加诸如videoflip或
videorate ! 'video/x-raw-yuv,framerate=25/1'
到管道的视频部分都按预期工作。
你的管道似乎是正确的。 然而,gst-launch是一个有限的工具 - 我会建议使用python或ruby来编写管道,以便更好地进行调试。
链接地址: http://www.djcxy.com/p/1165.html