2012-03-27 39 views
3

我使用Gstreamer來生成視頻(基本上是2×2矩陣)的「牆」視頻(MKV容器,Mjpeg編解碼器,每秒25幀,Mjpeg編解碼器,每秒25幀) 。我使用下面的管道:Gstreamer管道,視頻速率不按預期工作

#!/bin/sh 
gst-launch -e videomixer name=mix ! ffmpegcolorspace ! jpegenc ! avimux ! filesink location=$1.avi \ 
uridecodebin uri="file://${PWD}/$1/1.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200, framerate=25/1 ! videobox border-alpha=0 top=0 left=0 ! mix. \ 
uridecodebin uri="file://${PWD}/$1/2.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200,framerate=25/1 ! videobox border-alpha=0 top=0 left=-300 ! mix. \ 
uridecodebin uri="file://${PWD}/$1/3.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200,framerate=25/1 ! videobox border-alpha=0 top=-200 left=0 ! mix. \ 
uridecodebin uri="file://${PWD}/$1/4.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200,framerate=25/1 ! videobox border-alpha=0 top=-200 left=-300 ! mix. \ 

代碼工作,但最終的結果是隻有17秒長,而不是5分鐘就好源視頻,它似乎並不像我使用的videorate元素正確 - 輸出視頻似乎隨機「加速」,在幀可用時讀取幀,而不是保持原始視頻的速度。

有趣的是,當源文件是.wmv(Windows Media 9編解碼器)時,一切看起來都很好。有任何想法嗎?

回答

2

試着把你的capsfilter放在引號中... videorate! 「video/x-raw-yuv,width = 300,height = 200,framerate = 25/1」! videobox ... 也試試videomixer2