2017-06-14 74 views
0

我有49個渲染的png幀。我這些幀轉換爲使用ffmpeg視頻:用ffmpeg重複一幀填充視頻的中間部分

ffmpeg -r 24 -f image2 -s 1920x1080 -i %04d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p test2.mp4

但是,這只是讓所有的幀序列。現在我嘗試實現以下序列:

frame 1...24 - frame 25 - frame 26...49 

當幀25需要重複120幀。這可能與ffmpeg

它甚至會更好,如果有可能實現:

frame 1...24 - frame 25 - frame 24...1 

回答

2

假設你用50幀序列工作,

ffmpeg -framerate 24 -i %04d.png 
-filter_complex "[0]trim=end_frame=25,split=2[fo][re];[fo]loop=118:1:24,setpts=N/24/TB[fo]; 
        [re]reverse,setpts=N/24/TB[re];[fo][re]concat=n=2:v=1:a=0" 
-c:v libx264 -crf 25 -pix_fmt yuv420p out.mp4 

[0]trim=end_frame=25 - >保持第25幀。幀的編號從0開始

split=2[fo][re] - >具有的這兩個副本修剪段

[fo]loop=118:1:24 - 在端>循環單幀124118倍。所以最後一幀有119個實例。長篇小說,ffmpeg是爲了與定時媒體一起工作,所以這個過濾器是爲了確保現在帶有循環的段具有平滑連續的時間戳。 24是輸入的幀率。

[re]reverse - >反轉修剪段的第二個副本。

setpts=N/24/TB[re] - >與上面相同。

[fo][re]concat=n=2:v=1:a=0 - >加入兩個部分 - 環狀的和反轉的。由於第25幀是反向序列的第一幀,因此第25幀有120個實例。

+0

感謝您的回答!但out.mpg只顯示開始和結束,但錯過了單幀的重複。有什麼想法嗎? –

+0

需要查看完整的控制檯輸出。 – Mulvya

+0

我在https://pastebin.com/gp4P6uCJ粘貼了輸出,我需要稍微改變長度爲12幀。因此它變成1..12 - 12 - 12..1 –