在视频混合器内解码bin2数据内部错误

时间:2013-10-21 22:01:27

标签: gstreamer

我正在尝试用Gstreamer创建一个图像矢量。要做到这一点,我使用像这样的videomixer gref:

gst-launch -e \videomixer name = mixer \
 sink_0::xpos = 0 sink_0::ypos = 0 \
 sink_1::xpos = 100 sink_1::ypos = 0 \
 sink_2::xpos = 200 sink_2::ypos = 0 \
 sink_3::xpos = 300 sink_3::ypos = 0 \
 sink_4::xpos = 400 sink_4::ypos = 0 \
 sink_5::xpos = 500 sink_5::ypos = 0 \
 sink_6::xpos = 600 sink_6::ypos = 0 \
 sink_7::xpos = 700 sink_7::ypos = 0 \
 sink_8::xpos = 0 sink_8::ypos = 0  \
! xvimagesink \
filesrc location = 0.jpg \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_0. \
filesrc location = 1.jpeg \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_1. \
filesrc location = 2.png \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_2. \
filesrc location = 3.png \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_3. \
filesrc location = 4.png \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_4. \
filesrc location = 5.png \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_5. \
filesrc location = 6.JPG \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_6. \
filesrc location = 7.png \
! decodebin2 ! ffmpegcolorspace  \
! imagefreeze ! videoscale method = 1 ! video/x-raw-yuv, width = 100, height = 100 ! mixer.sink_7. \
filesrc location = bg.jpg \
! decodebin2 ! ffmpegcolorspace \
! imagefreeze ! mixer.sink_8.

但是我有一个问题,它似乎仅适用于几种类型的图像(通常使用.png,但不能使用.jpg)。我理解,decodebin应该是独立的文件格式,不是吗? 我试图为矢量的每个元素添加相同的png文件,这没关系,所以有什么问题?我有以下错误:“数据流内部错误”。

你有什么想法吗?

谢谢!

(抱歉我的英文,我是法国人)

1 个答案:

答案 0 :(得分:0)

首先是你使用的gstreamer版本? (0.10或1.0)。 如果您使用0.10,我建议您使用videomixer2。

videomixer对输入格式非常敏感,所以我建议你在你的大写字母中添加一个特定格式的视频混音器的每个输入板。 " video / x-raw-yuv,format =(fourcc)AYUV,width = 100,height = 100"

如果你没有PNG的透明度,我会建议使用这个: " video / x-raw-yuv,format =(fourcc)I420,width = 100,height = 100" 它应该是有效的