从gstreamer录制相机流

时间:2016-04-17 21:44:43

标签: gstreamer video-capture

我有一个gstreamer管道,可以很好地工作并拍摄相机流,将其编码为H.264视频,将其保存到文件中并按如下方式显示在屏幕上:

gst-launch-1.0 -v autovideosrc ! tee name = t ! queue ! omxh264enc ! 
'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! 
filesink location=test.mp4 t. ! queue ! videoscale ! video/x-raw, 
width=480,height=270 ! xvimagesink -e sync=false

现在,我正在尝试做一些简单的事情,只是将流记录到文件中(不在屏幕上显示),这似乎不起作用!它写一个文件但无法播放。到目前为止我尝试的是:

gst-launch-1.0 -v autovideosrc ! queue ! omxh264enc ! 'video/x-h264, 
stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink 
location=test.mp4 sync=false

我也可以删除队列元素,但结果相同:

gst-launch-1.0 -v autovideosrc ! omxh264enc ! 'video/x-h264, 
stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink 
location=test.mp4 sync=false

它没有给出任何错误,但似乎没有写一个有效的流到我的filesink,似乎。

1 个答案:

答案 0 :(得分:2)

你如何阻止流?相机是否会正确注入EOS信号?如果没有,您只需按ctrl-c即可停止操作.mp4文件将缺少正确播放所需的重要标题。

-e添加到命令行。在这种情况下,当您按ctrl-c时,管道不会停止,而是通过管道发送EOS信号正确关闭。