AviUtlに限らずですが、動画編集をしていると音ズレがおきることがあります。
原因と対策について解説していきます。
AviUtlでの音ズレの原因やパターン
音ズレにはいろんな原因があります。
- 読み込む動画が可変フレームレート(VFR)である【多い】
- AviUtlのシステム設定が間違えている
- 入力プラグインの問題
- サンプリングレートの問題
- フレームレートやサンプリングレートが違う動画を繋げた
- 動画オブジェクトと音声オブジェクトがズレている
- 音声エンコーダによる遅延
などなどです。
特に動画が可変フレームレート(VFR)であることが音ズレの原因として多いです。
一口に音ズレといっても色んなパターンがあります。
- 素材となる元の動画が音ズレしている
- 録画した動画を読み込んだら音ズレした
- 動画をカットしたら音ズレした
- 編集中のプレビューでは問題なかったが、エンコードした動画が音ズレしていた
- 動画の形式を変換したら音ズレした
また、ズレ方にも色んな種類があります。
- 動画の最初から最後までずれている
- だんだん音がズレてくる
- 途中からズレている
- 出力したらズレていた
こういう色んな音ズレの解消方法を見ていきましょう。
まずはコーデックチェッカーで音ズレする動画を調べる
音ズレした時にまずチェックしたいのが、動画の情報を調べることです。
コーデックチェッカーと言われるソフトを使って調べることで、その動画のコーデックやファイルサイズや解像度はもちろん、音ズレの原因となる「動画がVFRなのかCFRなのか」や「音声のサンプリングレート」など色んな情報がわかります。
コーデックチェッカーにも色んなものがありますが、一般によく使われているのは「MediaInfo」です。
MediaInfoのダウンロード方法・使い方について
VFR(可変フレームレート)が原因の音ズレについて
AviUtlで音ズレの原因として特に多いのが
「L-SMASH WorksでVFR(可変フレームレート)の動画を読み込んでいる」
というものです。
コーデックチェッカーで見ると、ビデオの項目の中にある「モード」の部分が「VFRモード」となっています。
ここがCFRモードとなっていれば、他の部分に原因があると考えられます。
フレームレートは、動画の1コマ1コマのことです。
動画はこの1フレーム1フレームがパラパラ漫画のように連続して再生されることで動画となります。
参考記事
そして、フレームレートには可変(VFR)と固定(CFR)があります。
固定フレームレート(CFR)では、1秒間のフレームの数が最初から最後まで一定です。
可変フレームレート(CFR)では、動きが激しいシーンではフレーム数を増やし、動きが少ないシーンではフレーム数を減らす。といった感じになっています。
AviUtlではVFR(可変フレームレート)に対応していないので、全てCFR(固定フレームレート)として読み込んでしまい、映像と音声にズレが生じてしまいます。
また、キャプチャーソフトには初期設定でVFR(可変フレームレート)になっているものや、CFR(固定フレームレート)では録画できないソフトも結構あり、そのまま録画すると音ズレの原因となる動画ができあがったりします。
動画がCFRかVFRか調べてもわからなかった時の対処方法
例えば動画がaviだったりすると、MediaInfoで調べてもCFRかVFRかは表示されません。
参考ページ:MediaInfo
そういう時は、1度「XMedia Record」などでコンテナをmp4などに変換してみましょう。
変換時は「映像」はコピーに設定して変換しましょう。
mp4に変えてからもう1度MediaInfoで調べるとフレームレートがCFRかVFRか表示されます。
VFRだった時の音ズレの直し方
動画がVFR(可変フレームレート)だと、AviUtlでL-SMASH Worksで読み込んだ時に音ズレしてしまいます。
これを直すには以下の方法をとります。
- DirectShow File Readerで読み込む
- L-SMASH Worksの設定を調整する
- VFRの動画を外部ソフトでCFRに変換する
上の1を試したら直ることもあれば、1ではうまくいかなかったけど2を試したら直ったりなどするので、1つ1つ試していきましょう。
まずは、AviUtlにどの入力プラグインで読み込まれているかを調べます。
音ズレする動画をAviUtl本体に読み込ませ、本体上部の「その他」から「ファイルの情報」を開きます。
拡張編集を使用して編集する場合でも、1度本体に読み込ませて調べます。
※拡張編集で読み込ませた場合は、必ず「拡張編集 File Reader」になります。
下の画像が開いたファイル情報画面です。
ファイル制御のところに読み込んだ入力プラグインが表示されます。
1.DirectShow File Readerで読み込む
L-SMASH File Readerで読み込んで音ズレしている場合は、DirectShow File Readerで読み込むと音ズレしないで読み込めたりします。
「入力プラグインの優先度」でDirectShow File Readerを上にして、AviUtlを再起動してから読み込ませましょう。
2.L-SMASH Worksの設定を調整する。
AviUtl本体から「ファイル」→「環境設定」→「入力プラグインの設定」と進み「L-SMASH Works File Readerの設定」をクリックして開きます。
開いたら、次の項目を設定し直します。
- 「Libav+L-SMASH」のチェックを外す
- 「VFR-CFR」にチェックを入れ、右側の「□/□」に数値を入力する。
Libav+L-SMASHのチェックは入れたままでも音ズレが直るケースもあったり、VFR->CFRも数値は特に変更しなくてもチェックを入れるだけで音ズレが直ったりするケースもあります。
VFR->CFRに入力する数値は、AviUtl本体に動画を読み込ませ、ファイル情報を開いた中にある「フレームレート」を見て決定します。
以下の数値が一般的です。
- 23.976fps 24000/1001
- 24fps 24000/1000
- 29.97fps 30000/1001
- 30fps 30000/1000
- 59.94fps 60000/1001
- 60fps 60000/1001
ただ、VFRで録画された動画などフレームレートの数値が半端な動画も中にはあります。
そういう時は、AviUtl本体の「その他」→「ファイル情報」のフレームレートの右側にある()の中に、数値が表示されているのでそれを参考に入力しましょう。
「L-SMASH Works File Readerの設定」で「VFR->CFR」にチェックを入れたままの状態で、AviUtl本体に動画を読み込ませると、ファイル情報のフレームレートは「L-SMASH Works File Readerの設定」で入力した数値が表示されるので注意しましょう。
3.外部ソフトでCFRに変換する
HandBrakeやAvisynthなどのソフトを使って、VFRをCFRに変換してからAviUtlに読み込ませることで音ズレを防ぎます。
詳しい使い方は別ページで解説します。
AviUtlの設定が間違えている
AviUtlの設定を間違えていても音ズレの原因となります。
- ロード時に29.97fpsに近いものは自動的に29.97fpsに変換する。にチェックが入っている
- ロード時に映像と音声の長さが0.1秒以上ずれているものは自動的にfps調整する。にチェックが入っている
- 音声の位置調整がONになっている
システム設定
- ロード時に29.97fpsに近いものは自動的に29.97fpsに変換する。
- ロード時に映像と音声の長さが0.1秒以上ずれているものは自動的にfps調整する。
この2つは、AviUtl本体の「ファイル」→「環境設定」から開いた「システムの設定」の中にあります。
自分で音ズレを解消しようと何かする時に、こういう機能が有効になっていると、逆にやりにくくなってしまうのでチェックを外した状態にしておきます。
最大フレーム数よりもフレーム数が多い動画を読み込んでいる時
最大フレーム数よりも大きいフレーム数の動画を読み込んでも音ズレやエラーの原因となります。
設定してある最大フレーム数よりもフレーム数が多い動画を、AviUtl本体に読み込むと下の画像のようなエラーが出ます。
※拡張編集プラグインの方に読み込んだ時は、この表示は出てきません。
タイムラインのフレーム数が自分で設定した最大フレーム数になっている場合は、「システムの設定」を修正して下さい。
音声の位置調整の設定
AviUtl本体の「ファイル」または「設定」に「音声の位置調整」の項目があります。
これが有効になっていると音声の再生位置がずれるので、チェックがついていたら外しておきましょう。
複数の動画を読み込んだ時に、読み込んだ各動画のサンプリングレートやフレームレートが違う
複数の動画ファイル(音声ファイル)を読み込むときに、それぞれのサンプリングレートやフレームレートが違うものを読み込むと、音ズレの原因となることがあるようです。
サンプリングレートは読み込んだファイルの中で1番高いものに合わせられます。
参考サイト:気持ち悪い!「音ズレの原因とは?」|ソーシャルキャスト
再現してみようと思い、サンプリングレートやフレームレートが違う動画をタイムラインに読み込んで並べてみたりしましたが、特に音ズレもなく再現できませんでした。
AviUtlのタイムライン上でオブジェクトの位置がずれている(拡張編集)
動画オブジェクトと音声オブジェクトの位置がズレている
拡張編集プラグインのタイムライン上にある動画オブジェクトと音声オブジェクトの位置がずれていると当然音はずれます。
上の画像は極端な例ですが、カットを多用したりオブジェクトをいっぱい使ったりしていると、自分ではちゃんと合わせていたつもりが実はズレていたということもあったりします。
単純なミスですが、意外とそういう時ほど気付きにくいものです。
音声(動画)オブジェクトの設定ダイアログの再生位置や再生速度の設定
音声オブジェクトや動画オブジェクトの設定ダイアログで、再生位置や再生速度が初期状態から別の数値に変更されていると、当然音声と映像はズレます。
もし、この辺の数値をいじった可能性があるなら確認しておきましょう。
音声エンコーダーの遅延問題
使用した音声エンコーダの種類によっては、エンコーダの制限によって遅延が発生します。
詳しくは下記サイトで検証されています。
音声エンコーダによる遅延についてと、x264guiExのディレイカット機能について
色んなエンコーダでの遅延の有無や音声の変動時間の検証など