Help us understand the problem. What is going on with this article?

AviUtl に読み込むと音ズレする動画を ffmpeg で修復する

More than 1 year has passed since last update.

tl; dr

AviUtl に動画を読み込んだときに音ズレするときは、問題の動画を次のようにして ffmpeg で変換すると直るかもしれない。
ただし、ファイル名は input.mp4、フレームレートは 60 だとする。cfr.mp4 というファイル名で出力される。

ffmpeg -i input.mp4 -r 60 cfr.mp4

経緯

AverMedia のキャプチャーボード (AVT-C878) で 60 fps の動画を撮って AviUtl で読み込んだところ、キャプボが不安定なときに起きたフレームの抜け落ちのせいで以降の映像が音声に先行し、いわゆる音ズレが起こってしまった。

Media Player Classic などのプレーヤーで見ると抜け落ちている部分を補うように映像が止まるので、その部分がカクカクするだけで全体として音ズレは無いが、AviUtl で読み込むとそのような補正が無いため落ちたフレームの数だけ音ズレしているように見える。

素人が見た目から想像して言っているので間違っているかもしれない。

試行錯誤

調べてみると大きく分けて以下の 3 つの修復方法があるらしい。

  1. AviUtl で読み込むときの設定を変える
  2. 読み込んだ後に動画を適当なタイミングでぶつ切りにして手動で音声に下駄を履かせる
  3. フレームが抜け落ちているところに直前のフレームを補間するとこで動画自体を修復する

1.は見つかった方法をいくつか試したがどれも効果がなく、AviUtl の UI でそれ以上試行錯誤する気になれなかったので諦めた。
2.はキャプボの動作が不安定になった時間を探し、そこで動画と映像を分割し、そこで手動でずらし…という操作をずれた箇所の数だけする必要があり、あまりにも面倒だったので諦めた。

結局どうすればいいのか

すんなりうまくいったのは 3. だけで、適当なエンコーダで前述した補間をすれば良い。
ffmpeg を使う場合は次のようにする。ただし、入力の動画のファイル名は input.mp4 、フレームレートは 60 だとする。

ffmpeg -i input.mp4 -r 60 cfr.mp4

本来は可変フレームレート (VFR) を固定ビットレート (CFR) に変換したりするときに与えるオプションだと思うが、とりあえずこれで AviUtl に入力しても音ズレしなくなった。
デフォルトで CPU の数だけ並列で実行してくれるので思ったよりも時間がかからなかった。

感想

AviUtl の UI/UX は難しいので結局 ffmpeg でどうにかするのが私にとっては最適解でした。
フリーであれだけのことができるのは素晴らしいと思うのですが、90 年代 UI や頻繁にヌルポらしきエラーで落ちるのはどうにかなるといいなあと思いました...

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away