Gstreamer多个水槽不工作

时间:2017-08-30 13:42:00

标签: gstreamer tee

我正在尝试从网络摄像头获取流,然后使用tee获得两个接收器(filesink和autovideosink),这样我就可以在窗口中显示视频,同时将其保存到文件夹中。当我运行此命令时,我只在窗口中获得冻结的图像,而不是视频流。它适用于两个autovideosinks(我得到两个带有两个视频流的窗口),所以我猜问题是在filesink部分。 filesink完全可以单独使用。

gst-launch-1.0 -v v4l2src device=/dev/video0 ! tee name=t \
    t. ! queue ! videoscale ! video/x-raw,framerate=30/1,width=320,height=240 ! \
    videoconvert ! autovideosink \
    t. ! queue ! video/x-raw,framerate=30/1,width=320,height=240 ! \
    x264enc ! mpegtsmux ! filesink location=~/Videos/test1.mp4

1 个答案:

答案 0 :(得分:2)

尝试将async=0属性添加到filesink。

    gst-launch-1.0 -v v4l2src device=/dev/video0 ! tee name=t \
    t. ! queue ! videoscale ! video/x-raw,framerate=30/1,width=320,height=240 ! \
    videoconvert ! autovideosink \
    t. ! queue ! video/x-raw,framerate=30/1,width=320,height=240 ! \
    x264enc ! mpegtsmux ! filesink **async=0** location=~/Videos/test1.mp4