読者です 読者をやめる 読者になる 読者になる

ただのノート+

自由気ままに書くブログ

GeForce Experienceで録画したファイルをAviutlで読み込む際の音ズレ対策

PC 情報 ゲーム

GeForce Experienceで録画したファイルをAviutlで編集しようとした際に音ズレが結構な頻度で起こるんですよね。

音ズレが起こる理由

GeForce Experienceで録画したデータはVFR(可変フレームレート)で、Aviutlが対応しているのがCFR(固定フレームレート)。Aviutlでは動画を全て一定のフレームレート(CFR)として扱うので、可変が起こった部分で音声とのズレが発生してAviutl上では音ズレが発生します。

詳しくは下記サイト等で解説されています。


そんでもって大抵の解析サイトでは一度HandBrakeなんかの動画エンコードソフトでCFRにエンコードしてから使おうと書かれているのですが、エンコードを行う分時間もかかるし可逆形式でエンコードした場合HDDの使用容量も膨大なものになってしまう。これはちょっと厳しい。

L-SMASH WorksにVFR→CFRに変換する機能が付いている

f:id:kamuneko:20170212232335p:plain

設定画面のVFR -> CFRと書いてあるチェックボックスの項目です。
60FPSだと「60000/1000」、30FPSだと「30000/1000」の表記が一般的みたいです
(詳しくないのでよく分かりませんが、59.94fps等細かくない、60FPSの場合「60/1」で指定しても動くんですかね?)。

この項目にチェックを入れると動画入力時に指定されたFPSVFR→CFRに変換してくれるわけですが、大抵の同じ悩みの解説サイトに書いてあるとおり、GeForce Experienceで録画したファイルを読み込ませても音ズレはするし、そもそもこの機能が動いているかすらわからない。
なので最終的にHandBrake等でエンコードしよう!で終わっているわけです。

一度動画と音声を切り離して読み込ませよう

テレビ番組を録画した.tsファイルで音ズレがする場合、動画と音声を切り離して読み込ませれば解消されると言う話はその辺の作業を行ったことがある人は聞いたことあるんじゃないでしょうか。
同じことをGeForce Experienceでもやってみたらどうなるのか気になったのが今回の発端です。

となればmp4をdemuxしてくれるソフトを探そうと意気込んだものの、思いの外良い感じのソフトが見当たらず。
…と思ったらFugFlashというソフトがmp4のdemuxにも対応しているらしい。

Flash全盛期に入っている音声と画像を抽出したくて使った記憶があるのですが、まさかmp4にも対応していたとは…

f:id:kamuneko:20170305162257p:plain

そんでもって起動します。今回は音声と動画を引っこ抜けばいいので上2つにチェックを入れて録画した動画をドラッグアンドドロップします。
出力先フォルダや名前等は設定可能なのでお好きなように。

この作業がHandBrake等で行うエンコードと違う点は、動画ファイルの音声と動画を分離してそれぞれコピーしているだけで、抽出されたファイルはオリジナルそのもの。ということでしょうか。なのでエンコードするよりも時間はかからないし、可逆形式でエンコードするよりも動画の容量は抑えられます(オリジナルファイルと同じ容量)。

抽出したものをそれぞれAviutlに取り込む

大前提としてL-SMASH Works設定画面でVFR -> CFRの項目にチェックを入れ値も設定してくださいね。
まずAviutlを起動し、抽出された動画ファイルをドラッグアンドドロップします。

f:id:kamuneko:20170305163034p:plain
インデックスファイルを作り始めた!
分離する前の動画はインデックスファイルを作らずに即反映されていたのですが、抽出後はインデックスファイルが作成されるように。L-SMASH Worksがお仕事している感じがしてちょっとテンションが上がる。

次にファイル→音声読み込みから抽出された音声ファイルを読み込みます。
すると音ズレが直っているではありませんか!

挙動から推測するに動画と音声を抽出後の動画では、L-SMASH WorksのVFR -> CFR機能が正しく動いていると思うんですよね。この機能が動く場合と動かない場合の動画の違いは分かりませんが、少なくとも上記の方法で抽出後はインデックスファイルが作成されるようになります。

本当に(精確に)音ズレ対策をしたいのであればやっぱりエンコードを挟むべきなのかな

自分の観測範囲では上記の方法で音ズレは直っているのですが、厳密に音がズレていないかは正直分かりません。
もしもGeForce Experienceの仕様等で録画開始数ミリ秒は音を録音していない場合(あるかは分からない)、この方法では一度動画と音声を一度別々にするので動画・音声のリンクが解除され、結合時に音声を動画の頭から読み込み、録画されていない開始数ミリ秒がズレることになると思います。

そういう意味では一度ちゃんとVFR→CFRにエンコードできるソフトでエンコードしたほうが精確とは思いますが、自分はこっちの方が時間的に早いのと、音ズレしている気がしないのでこの方法で音ズレ対策をしています。


ASUSTek R.O.G. STRIXシリーズ NVIDIA GeForce GTX1060搭載ビデオカード
オーバークロック メモリ6GB STRIX-GTX1060-DC2O6G

メーカー:ASUSTek
参考価格:¥ 32,378