如何将uridecobin和videomixer与每个水槽的视频尺度结合起来?

时间:2013-10-28 12:29:46

标签: gstreamer gst-launch

我尝试制作一个图像矢量,我得到了很多URI。我已成功显示带有视频混合器和uridecodebin以及视频卡帽的图像。

gst-launch -e videomixer name = mixer \ 
    sink_0::xpos = 0 sink_0::ypos = 0 \
    ! xvimagesink \
    uridecodebin uri=http://www.logotheque.fr/6396-2/logo+RMC+INFO.jpg \
    ! ffmpegcolorspace  ! imagefreeze ! videoscale method = 1 \
    ! video/x-raw-yuv,width=100,height=100 ! queue ! mixer.sink_0.

但是当我在视频混音器中的另一个位置添加相同的“uri_Image”并使用相同的视频范围时:

gst-launch -e videomixer name = mixer \
   sink_0::xpos = 0 sink_0::ypos = 0 \
   sink_1::xpos = 100 sink_1::ypos = 0 \
   ! xvimagesink \
   uridecodebin uri=http://www.logotheque.fr/6396-2/logo+RMC+INFO.jpg
   ! ffmpegcolorspace ! imagefreeze ! videoscale ! \
    video/x-raw-yuv,width=100,height=100 ! queue2 ! mixer.sink_0. \
   uridecodebin uri=http://www.logotheque.fr/6396-2/logo+RMC+INFO.jpg 
   ! ffmpegcolorspace ! imagefreeze ! videoscale ! \
   video/x-raw-yuv,width=100, height=100 ! queue2 ! mixer.sink_1.

我收到此错误:“videoscale1:未经协商 gstbasetransform.c(2541):gst_base_transform_handle_buffer():/ GstPipeline:pipeline0 / GstVideoScale:videoscale1: “

所以我不明白为什么这个错误出现在第二个接收器上,因为在两种情况下都是相同的过程。

编辑:

我找到了感兴趣的人的部分解决方案。

gst-launch -e videomixer name=mix ! ffmpegcolorspace ! xvimagesink \
    uridecodebin uri=http://www.logotheque.fr/6396-2/logo+RMC+INFO.jpg ! videoscale ! video/x-raw-yuv,width=100,height=100 \
    ! videobox top=0 left=0 ! imagefreeze ! mix. \
    uridecodebin uri=http://upload.wikimedia.org/wikipedia/fr/1/14/Logo_vibration.JPG ! videoscale ! video/x-raw-   yuv,width=100,height=100 \
    ! videobox top=0 left=-100 ! imagefreeze ! mix.

但是这个解决方案不能用于png文件,我不知道为什么因为uridecodebin是一个通用的解码器...... 如果有人有想法......

1 个答案:

答案 0 :(得分:1)

好的尝试这个管道。使用管道,您可以根据需要添加png文件:

gst-launch -e videomixer2 name=mixer sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=100 sink_1::ypos=0 ! ffmpegcolorspace ! xvimagesink uridecodebin uri=http://www.logotheque.fr/6396-2/logo+RMC+INFO.jpg ! ffmpegcolorspace ! imagefreeze ! videoscale ! "video/x-raw-yuv, format=(fourcc)AYUV, width=100, height=100" ! queue2 ! mixer.sink_0. uridecodebin uri=http://www.logotheque.fr/6396-2/logo+RMC+INFO.jpg ! ffmpegcolorspace ! imagefreeze ! videoscale ! "video/x-raw-yuv, format=(fourcc)AYUV, width=100, height=100" ! queue2 ! mixer.sink_1. -v