web-dev-qa-db-ja.com

映画の-0.5秒の音声遅延を修正

一部のビデオエディターでムービーを編集して、オーディオとビデオを完全に一致させることができますが、その場合、ビデオ全体を再エンコードする必要があり、時間がかかります。次のようなコード:

ffmpeg -i my_movie.mp4 -c:v copy -c:a aac -af "audio_filter_help_me_guys" fixed_movie.mp4

私の時間を節約します。または、Kdenliveなどのビデオエディターを使用する必要があるだけですか?

1
mk1024

ビデオもオーディオも再エンコードしないでください。オーディオストリームを遅延させるだけです。 ffmpeg-itsoffsetオプションは、ストリームのタイムスタンプにオフセットを追加して、遅延させる目的で使用されます。したがって、コマンドは次のようになります。

ffmpeg -i my_movie.mp4 -itsoffset 0.5 -i my_movie.mp4 -map 0:v -map 1:a -c:copy fixed_movie.mp4
  • -itsoffset 0.5 -i my_movie.mp4は、2番目の入力ファイル(この場合、たまたま最初のファイルと同じになる)を0.5秒遅らせることを指定します。
  • -map 0:v -map 1:aは、最初の入力ファイルからビデオのみを選択し、2番目の(遅延)ストリームからオーディオのみを選択します。ビデオストリームのみとオーディオストリームのみを含む2つのファイルがある場合、これらは必要ありません。
  • -c:copyは、すべてのストリームをコピーする必要があることを示します(これは-c:v copy -c:a copyと同等のショートカット表記です)

グラフィカルツールAvidemuxでもこれを実現できるはずですが、私の経験では、常に確実に機能するとは限りません。コマンドラインは、オプションを見つけると、はるかに高速になります。

2
vanadium