2013-10-30 55 views
1

我想多個圖像文件從互聯網在GStreamer 0.10下使用videomixer結合將多個圖像文件。 我寫了下面的命令行:使用videomixer [GStreamer的]

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. 

我有2個問題,使用此命令行:

  1. 當我想結合2個圖像文件,這個命令行非常順利,但是當我添加第三個,出現黑屏而不是第一張照片。如果我添加更多圖片,這些圖片將按照我的預期顯示,但在某些時候(我不記得是什麼時候,可能是第7或第8張圖片),除了一張圖片之外的所有圖片都將隱藏在黑色屏幕之後。

  2. 只有刪除'video/x-raw-yuv'命令,但我想調整圖片大小時,纔可以使用PNG文件...我試過souphttpsrc + pngdec而不是uridecodebin,但是我沒有取得好成績。

任何人都可以幫助我嗎?謝謝。

編輯: 如果我按照相反順序(從右下角到左上角)添加視頻盒,大多數照片沒有更多黑屏,但第一張照片上仍然有一個黑屏(top = 0,left = 0)。

回答

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. 

有了這條管道應該由一個PNG,如果你想更換JPG文件。但是對於現在的位置,您應該像在這條管道中一樣更換videomixer2。

+0

謝謝! 但是如果我想添加更多圖片,如何在沒有視頻盒的情況下更改他們的位置?我嘗試添加和更改一些sink_i :: ypos和xpos來移動我的照片,但它不起作用... – user2935617

+0

您可以使用sink_i :: ypos或sink_i :: xpos移動帶有videomixer2的每個圖像。如果你有3個元素,第一個元素是sink_1,第二個是sink_2,最後一個是sink_0。如果您添加2張圖像,因此5張圖片可以移動它,您可以使用sink_1,sink_2,sink_3,sink_4,sink_0。 sink_1是源和視頻混合器之間的第一個鏈接...執行最後一個始終是sink_0。 – martien9

+0

好的...因爲我知道sink_0不是第一個元素,而是最後一個元素,所以我理解videomixer2是如何工作的。 真的,謝謝你的幫助! – user2935617