非常に厄介な状況です...
フレームレートが 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を試しました3位フレームレートオプション:
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