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を試しました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_modeautofps が自動的に変更される可能性があります。たとえば、元のソースは可変フレーム レートですが、ffmpeg は自動的に固定フレーム レートに変更することを決定する場合があります。その結果、フレームが重複したり、ドロップされたりする可能性があります。

fps の変化を防ぐには、 を設定します。(または-fps_mode passthroughと同じです)。-vsync 0-vsync passthrough

詳細については、ffmpeg ドキュメント

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

関連情報