L-SMASH および Libav ライブラリを使用した AviUtl 入力プラグイン・ライブラリ「lsmashinput」を VFR-maniac(muken)氏が先日公開しました。seraphy氏作の「MP4 File Reader」に代わるMP4(mov等)コンテナファイルリーダーとして注目されるプロジェクトです。
AviUtl Plug-in SDK に MIT License が適用された事をうけ、「lsmashinput」をビルドした「Libav-SMASH File Reader」を公開するに至りましたが、一点だけ改良を加えてあります。
これにより「ありのまま」の状態で映像データを取得でき──
■プラグインフィルタ(拡張色調補正など)でTVスケールへ変換して編集・出力
■H.264ストリームの格納レンジをチェック
といった処理手法のフレキシビリティを確保しています。
もちろん、TVスケールな MPEG-4/AVC H.264 ストリームはスケール無変換で(TVスケールなまま) AviUtl に渡されます。これはオリジナルと同様です。
注釈:
オリジナルの Libav(ffmpeg) の挙動は、視聴といったRGB色空間変換を前提とした処理において間違いではなく、フルレンジをどう処理すべきかは考え方次第です。Libav の実装は「YCbCr/YPbPr(YUV)ならTVスケールに合わせてからRGB色空間変換時にYC伸張すれば良い」という真っ当な考え方ですし、一方で「YCbCr/YPbPr(YUV)がフルレンジなら、それを保持したほうが階調損失しないうえに、データもそのまま見られ、RGB色空間変換するにしてもストレート変換すれば良い」という考え方もあります。AviUtlで編集する用途(意味)を考慮した場合は後者のほうが良いだろうというだけで、Libav(ffmpeg)の実装が間違っているわけではありません。
なお「Libav-SMASH File Reader」の詳細はアーカイブ内の Readme.txt をご覧ください。
Libav-SMASH File Reader ソースコード
・VFR-maniac/lsmashinput - GitHub ・l-smash - A simple tool for mp4. - Google Project Hosting
・Get ffmpeg