一個非常煩人的情況...
我有一個幀率為 29.97 的 MPG2 視頻,但轉換為 MP4 時幀會重複。
該命令(直接轉換,無選項):
ffmpeg -i ~/Desktop/file.mpg ~/Desktop/file.mp4
導致重複的幀...
設定幀速率時:
ffmpeg -i ~/Desktop/file.mpg -framerate 29.97 ~/Desktop/file.mp4
也不起作用!
引導我嘗試:
ffmpeg -i ~/Desktop/file.mpg -r 29.97 ~/Desktop/file.mp4
仍然有重複的幀!
最後我嘗試了 ffmpeg第三名幀率選項!
ffmpeg -i ~/Desktop/file.mpg -vf fps=fps=29.97 ~/Desktop/file.mp4
只是,當它輸出時,音訊/視訊不同步!
我應該使用哪個 FPS 選項?
答案1
使用
ffmpeg -i ~/Desktop/file.mpg -vsync 0 ~/Desktop/file.mp4
這會跳過重複。
-vsync passthrough
是 的同義詞-vsync 0
。
答案2
-vsync
現已棄用,因此您應該改用-fps_mode
。
預設情況下,fps_mode
是auto
,因此它可能會自動更改您的 fps。例如,原始來源是可變幀速率,但 ffmpeg 可能決定自動將其更改為恆定幀速率,這可能會導致重複和丟失。
若要防止任何 fps 更改,請設定-fps_mode passthrough
。 (與-vsync 0
或相同-vsync passthrough
)。
欲了解更多信息,請參閱ffmpeg 文檔。
ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4