GStreamer并排播放3个视频

时间:2018-10-16 07:53:08

标签: gstreamer gstreamer-1.0

这是在视频框中播放2个mp4视频的代码。

  

gst-launch-1.0 filesrc位置= 1.mp4!解码器!排队!   视频转换! videobox border-alpha = 0 right = -100!混音器   名称=混合!视频转换! autovideosink filesrc位置= 2.mp4!   解码器!排队!视频转换! videobox border-alpha = 0 left = -100!   混合。

我尝试使用此代码播放3个视频

  

gst-launch-1.0 filesrc位置=下载/1.mp4!解码器!排队!   视频转换! videobox border-alpha = 0 right = -100!混音器   name = mix!

     

videoconvert! autovideosink filesrc位置=下载/2.mp4!   解码器!排队!视频转换! videobox border-alpha = 0 left = -100!   混合!

     

videoconvert! autovideosink filesrc位置= Downloads / 3.mp4!   解码器!排队!视频转换! videobox border-alpha = 0 left = -200!   混合。

我收到语法错误:(

2 个答案:

答案 0 :(得分:0)

实例化具有名称的元素(例如videomixer name=mix)后,您可以稍后使用进行连接。 (例如mix.)。之后,您无需重复autovideosink 3次。

gst-launch-1.0 filesrc location=Downloads/1.mp4 ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 right=-100 ! videomixer name=mix ! videoconvert ! autovideosink 

               filesrc location=Downloads/2.mp4 ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 left=-100 ! mix. 

               filesrc location=Downloads/3.mp4 ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 left=-200 ! mix.

在这里,我们初始化了3个管道,并将其中三个与mix元素合并。

答案 1 :(得分:0)

videomixer 类似的东西

gst-launch-1.0 -e \
videomixer name=mix background=0 \
        sink_1::xpos=0   sink_1::ypos=0 \
        sink_2::xpos=200 sink_2::ypos=0 \
        sink_3::xpos=100 sink_3::ypos=100 \
    ! autovideosink \
uridecodebin uri='file:///data/big_buck_bunny_trailer-360p.mp4' \
    ! videoscale \
    ! video/x-raw,width=200,height=100  \
    ! mix.sink_1 \
uridecodebin uri='file:///data/sintel_trailer-480p.webm' \
    ! videoscale \
    ! video/x-raw,width=200,height=100  \
    ! mix.sink_2 \
uridecodebin uri='file:///data/the_daily_dweebs-720p.mp4' \
    ! videoscale \
    ! video/x-raw,width=200,height=100  \
    ! mix.sink_3