AviUtl(2含め)でL-Smash Worksを使うならLibavはオフにしよう(一敗)

完璧にハマった()

何があったか

AviUtl2+L-Smash Works File Reader(LSW)で、iPhoneで撮った8GBの画面録画を読み込んでみたら、思わぬ挙動が発生。
動画時間が「1989時間」と表示され、総フレーム数も214885094フレーム・・・えっ?

動画時間1989時間40分36秒43、総フレーム数214885094f
わ、わぁ

最初はファイルが壊れてるのかと思ったけど、MediaInfoやffprobeで確認したら普通に問題なし。
つまり、読み込み時にLSW側で何か異常が起きていたということ。
ちなみにMediaFoundation FileReaderに読み込ませたら普通に開けたので、LSW特有の問題だと断定。

解決法

結論から言うと、LSWの設定にある「Libav+L-SMASH」のチェックを外すだけで直った。

ここ

細かい原因は不明だけど、とりあえずチェックを外すとiPhone画面録画でも正しく読み込める。
同じ現象に遭遇したら、まずここを確認するといいかも。

補足: Libav+L-SMASHとは

動画のデコーダー(読み込み)に「libavcodec」というライブラリを使い、demuxer(音声と動画の分離)にL-Smashを用いる方式のこと。

規格に沿って作成された多くの動画ファイル/コンテナファイルを読み込めるようになる代わりに、規格破壊ファイルだと稀におかしくなる。今回の例も多分これ。
読み込みの効率も悪いらしいので、バグが起きなくても無効にしておいたほうがいいかも🦆

余談

  • 変に2億フレームも読み込んでるもんだからタイムライン激重だった(PCよく耐えたな)
  • MediaFoundationだと問題なかったけど、全部MediaFoundation File Readerで済ませるわけにもいかない(下手したらMediaFoundationのほうがバグ多い)しAviUtl2版はBeta10で内蔵MFが削除されてるので、大人しくLSW使おうぜ

まとめ

  • L-Smash Worksは神。これがないと基本的にAviUtl1でも2でも動画は読み込めないので、使おう
  • ただ、「Libav+L-SMASH」にはバグがあるっぽいので、チェックを外しておこう

ってことで、いい動画編集ライフを~(@^^)/~~~

コメント

タイトルとURLをコピーしました