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編解碼器)時,一切看起來都很好。有任何想法嗎?