MISONLN41's Blog

怪文書置き場

AviUtlでVP9な動画を読み込むと映像が崩れる現象の対策

追記

修正済みのL-SMASH Worksのビルドを配布されている方が居るとTwitterにて教えていただきました。L-SMASH-Works_r1031+libdav1d+libvpx.7z - Google ドライブ よりダウンロードできるみたいです。なので以下に書いてあることは無意味です。

AviUtlの入力プラグインといえばL-SMASH Works。バックエンドにffmpegを用いているのでどんな動画でも読み込める最強のプラグインですよね。

しかし,RePOPn氏がビルド・配布しているL-SMASH Worksには二つ,致命的なバグがあります。それは,VP9動画を読み込むとフレームレートが誤認されることと,映像が崩れることです。今回は,その対策を紹介します。

Steps to reproduce

f:id:MISONLN41:20200316112419p:plain

VP9な動画として,youtube-dlを用いて無劣化ダウンロードした”きららファンタジア”のCMを用意しました。

f:id:MISONLN41:20200316111657p:plain

確かにVP9+Opusになっていますね。フレームレートは23.976fpsです。

早速AviUtlで読み込んでみます。

Actual Result

f:id:MISONLN41:20200316111741p:plain

 

🤔🤔🤔(オタク特有の :thinking: 地獄)

 

映像が完全に崩壊してしまっています。これでは編集どころではありませんね。その上本来23.976fpsの映像が21.445fpsと誤認されています。

How to fix

f:id:MISONLN41:20200316111852p:plain

[ファイル] / [環境設定] / [入力プラグインの設定] / [L-SMASH Worksの設定] から,Preferred Decodersに libvpx-vp9 を追記してやるだけです。

f:id:MISONLN41:20200316115934p:plain

(桃色魔法少女かわいい)

この設定を追記するとVP9動画でも崩れることなく正常に再生できるようになります。

しかしフレームレートの誤認はこの方法では修正できません。

こちらのフォークのコミットでフレームレートの誤認は修正されているのですが,配布されているバイナリはAviSynth等で使うdllファイルのみです。RePOPn氏のビルドは長らく更新されていないし,おそらく今後も修正される見込みはないのかな...と思っています。自前でビルドすることも可能でしょうが,MSYS2やMinGWの環境構築,ffmpegからビルドする必要があるなど,結構面倒そうなのであきらめてしまいました。

フレームレート誤認に対して今すぐできる対策としては,事前にMediaInfo等でフレームレートを確認して,AviUtlで読み込む際にそのフレームレートを指定してやることでしょうか。

気が向いたら自前でビルドして配布しようかと思っています。

上記フォークのL-SMASH Worksのビルドを配布されている方が居るとTwitterにて教えていただきました。L-SMASH-Works_r1031+libdav1d+libvpx.7z - Google ドライブ よりダウンロードできるみたいです。

試してみたら,上記ビルドではlibvpx-vp9の記述を追加しなくても映像が崩壊することもありませんでした。じゃあ何のための記事だこれは。

余談ですが,SisvelがAV1の特許リストを公開したらしいですね。ロイヤリティフリー・パテントフリーを目指していたAOMediaの方針に反する行動でしょうが,果たしてどうなることやら。HEVCのように特許絡みで闇に飲まれないことを祈るばかりです。

今回のエントリは以上です。では,楽しいAviUtlライフを。

 

参考: VP8_and_VP9.webm problems · Issue #79 · VFR-maniac/L-SMASH-Works · GitHub