我已经搜遍了整个地方,并没有找到任何人使用gstreamer的视频混合器功能和树莓派的生动。
我正在尝试复制raspivid输出并将它们并排合并,然后最终通过tcp发送流。但就目前而言,我只是在寻求一些帮助,让视频混合工作。
对于我的特定应用,生成的视频应为1280x568,我不在乎视频之间是否有任何角度来创建" 3d效果"因为我不需要特定的应用程序。
我正在使用gstreamer 1.2所以函数调用是gst-launch-1.0而且我不能使用ffmpeg b / c我相信它已经被删除了,所以我假设我只是使用videoconvert来实现相同的结果。
我不确定我是否应该使用h264parse而不是decodebin。所以这是我到目前为止所得到的:
gst-launch-1.0 fdsrc | raspivid -t 0 -h 568 -w 640 -fps 25 -hf -b 2000000 -o - ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 right=-640 ! videomixer name=mix ! videoconvert ! autovideosink fdsrc | raspivid -t 0 -h 568 -w 640 -fps 25 -hf -b 2000000 -o - ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 left=-640 ! mix.
我试图根据这两个来源建模这个(第一个链接中的raspivid命令对我有效): http://www.raspberry-projects.com/pi/pi-hardware/raspberry-pi-camera/streaming-video-using-gstreamer http://www.technomancy.org/gstreamer/playing-two-videos-side-by-side/
我知道我可能已经离这么远了,但我很难找到如何做到这一点的例子,尤其是使用了raspivid函数。我非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
您可以找到一个示例,并解释如何使用视频混音器using videomixer
答案 1 :(得分:0)
使用视频混合器组合 3 个视频的示例
注意:本例中使用了 UNIX 路径
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