2013-10-21 68 views
0

我試圖用Gstreamer創建一個圖像矢量。要做到這一點我使用videomixer格列夫這樣的:decodebin2數據內部視頻混合器內部錯誤

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. 

但是我有一個問題,它似乎只有幾種類型的圖像的合作(經常與巴紐,但不以.jpg爲例) 。據我瞭解,decodebin應該是獨立於文件格式的,不是嗎? 我試圖把每個元素的矢量相同的PNG文件,它沒問題,所以怎麼了?我有以下錯誤:「數據流內部錯誤」。

你有什麼想法嗎?

謝謝!

+1

當您收到錯誤,您是否收到任何其他輸出?即使它看起來無害,它也可能有助於某人追查錯誤。另外,嘗試使用--verbose標誌運行gst-launch,它可能會提供更多信息。 – MJD

回答

0

首先您正在使用哪個版本的GStreamer(對不起我的英語,我是法國人)? (0.10或1.0)。 如果您使用0.10,我建議您使用videomixer2。

videomixer是關於輸入格式非常敏感,所以我recommande你在videomixer在蓋一個特定的格式類似的東西 「視頻/ X-RAW-YUV,格式=(FOURCC)AYUV的每個輸入墊添加,width = 100,height = 100「

如果你沒有透明PNG我會建議使用這個: 」video/x-raw-yuv,format =(fourcc)I420,width = 100 ,height = 100「 它應該是工程