1

我想使用视频混合器将来自互联网的多个图像文件与 Gstreamer 0.10 结合起来。我在下面写了命令行:

gst-launch videomixer name=mixer ! xvimagesink \
    uridecodebin uri=http://www.geocyclab.fr/wp-content/uploads/2011/10/linux_crystalized_tux.jpg ! \
                videoscale ! video/x-raw-yuv,width=200,height=200 ! \
                ffmpegcolorspace ! \
                imagefreeze ! \
                videobox border-alpha=0 top=0 left=0 ! mixer. \
    uridecodebin uri=http://www.thetechherald.com/media/images/201148/Security-vendors-warn-against-leaked-Windows-7-downloads-windowslogo_1.jpg ! \
                videoscale ! video/x-raw-yuv,width=200,height=200 ! \
                ffmpegcolorspace ! \
                imagefreeze ! \
                videobox border-alpha=0 top=-200 left=0 ! mixer. \
    uridecodebin uri=http://www.colins-it.co.uk/images/Apple-App-Store_21.jpg ! \
                videoscale ! video/x-raw-yuv,width=200,height=200 ! \
                ffmpegcolorspace ! \
                imagefreeze ! \
                videobox border-alpha=0 top=0 left=-200 ! mixer.

这个命令行有两个问题:

  1. 当我想合并 2 个图像文件时,这个命令行效果很好,但是当我添加第三个时,出现黑屏而不是第一张图片。如果我添加更多图片,这些图片会按我的预期出现,但在某些时候(我不记得确切的时间,可能在第 7 或第 8 张图片),除了一张之外的所有图片都将隐藏在黑屏后面。

  2. 只有删除'video/x-raw-yuv'命令才能使用PNG文件,但我想调整图片大小...我尝试了souphttpsrc + pngdec而不是uridecodebin,但我没有成功结果。

谁能帮我 ?谢谢你。

编辑:如果我以相反的顺序(从右下角到左上角)添加视频框,我的大多数图片上不再有黑屏,但我在第一张图片上仍然有一个(top=0 和左=0)。

4

1 回答 1

1

好的,试试这个,告诉我它是否有效:

gst-launch videomixer2 sink_0::ypos=200 sink_2::xpos=200  name=mixer ! ffmpegcolorspace ! xvimagesink uridecodebin uri=http://www.geocyclab.fr/wp-content/uploads/2011/10/linux_crystalized_tux.jpg ! videoscale ! ffmpegcolorspace ! imagefreeze !  "video/x-raw-yuv, format=(fourcc)AYUV, width=200, height=200" ! mixer. uridecodebin uri=http://www.thetechherald.com/media/images/201148/Security-vendors-warn-against-leaked-Windows-7-downloads-windowslogo_1.jpg ! videoscale ! ffmpegcolorspace ! imagefreeze ! "video/x-raw-yuv, format=(fourcc)AYUV, width=200, height=200" ! mixer. uridecodebin uri=http://www.colins-it.co.uk/images/Apple-App-Store_21.jpg ! videoscale ! ffmpegcolorspace ! imagefreeze ! "video/x-raw-yuv, format=(fourcc)AYUV, width=200, height=200" ! mixer.

使用此管道,您应该根据需要将 jpg 文件替换为 png。但是对于现在的位置,您应该像在此管道中一样更改 videomixer2。

于 2013-10-30T14:21:44.907 回答