ffmpeg 複製幀

ffmpeg 複製幀

一個非常煩人的情況...
我有一個幀率為 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_modeauto,因此它可能會自動更改您的 fps。例如,原始來源是可變幀速率,但 ffmpeg 可能決定自動將其更改為恆定幀速率,這可能會導致重複和丟失。

若要防止任何 fps 更改,請設定-fps_mode passthrough。 (與-vsync 0或相同-vsync passthrough)。

欲了解更多信息,請參閱ffmpeg 文檔

ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4

相關內容