プレビュー用動画のコーデック設定

対象 :
個人や数人規模で映像制作される方。少しでも動画容量を軽くしたい方。

映像を制作するにあたってクライアントがいる場合は特に、プレビュー・チェック用の映像を何度も書き出しされていると思います。納品データであればproresであったりtiff連番で出しておけば良いのですが、動きやテンポ感など一連を通して見たい・見せる必要がある時に毎回低圧縮・大容量ファイルを書き出すのはストレージを圧迫するだけでなく、クライアントへデータを渡すにもアップロード、ダウンロードに時間がかかってしまいます。
自分の場合だとDropboxでデータのバックアップやリンクの共有をかけたりするので、チェック用の映像を投げる度にストレージ容量を食い、メガも積もればギガとなり納品するころには数十本のチェック用動画が残ります。納品後に消しても良いのですが、同じプロジェクトファイルを再び使う際にどのタイミングで保存したデータがどのような中身か把握するのに時間がかかるため、備忘録として残しておくようにしています。

納品時の「とりあえずprores」といった感じで、チェック用の動画も「とりあえずH.264」で、というような暗黙の了解のような空気が自分の周りにはありますが、データのやりとりと圧迫を避けるべく、自分のよく使うツール環境でいくつか比較してみました。

使用ツール


・AviUtl + x264コーデック
・Adobe Media Encoder + AfterCodecs

AviUtlはフリーの映像ソフトウェアでネット上ではボカロ系のMVやMAD動画の制作でよく使われている印象です。自分は映像変換ツールとしてよく使っています。細かいセッティングは調べてもらうと色々出てくるので割愛しますが、x264のコーデックは使用できるようセッティングしています。x264はH.264のエンコーダーでオープンソースです。圧縮率と画質のバランスがとても優秀で後述するAfterCodecsにも組み込まれています。かなり設定を細かく調整できエキスパート向けな部分もありますが、GUIで品質をスライダー1つでもコントロールできるのでよほどの拘りがなければプリセットのままで大丈夫でしょう。

Adobe Media Encoderは映像変換・書き出し専用のソフトウェアで尺を調整するぐらいしか映像の編集はできません。AfterEffectsのプロジェクトファイルが読めるので、うまく設定してあげればバラバラのプロジェクトをバッチ処理のように連続して書き出すことも可能です。標準でH.264を書き出せますがAviUtlと同様にx264を使いたいため有償ですがAfterCodecsを使います。
https://aescripts.com/aftercodecs/

H.265(x265)にも対応しているため対象にしています。

上記2つの組み合わせで、それぞれパラメータを変更したものを実際に出力し比較していきます。

使用素材


AEや3Dツールなどで出力した動画で比較するのが個人的には適切なんですが、丁度良いサイズのものがなく実写で検証することにしました。

青成分が多いですがペンギンの動きや身体の模様、床の汚れなどで品質を見極めます。
フォーマットは1920x1080、59.94fps、57秒で172MB。
sonyのミラーレス(nex-6)で収録したもので、収録時にそれなりに圧縮がかかってます。これを仮にH.264で出力したものと想定します。この画質をあまり落とさずに容量だけ落とせれば目的は達成されますので。

比較

では実際に比較をまとめてみました。

・左側のQuality、Speedは各ソフトの設定項目。それを設定した値
・Qualityは数値が高い方がより高品質
・Speedは数値が低い方が処理が遅く、その代わりに高圧縮
・その隣の高/中/低は設定時に予測した品質目安
・AviUtlのレンダリング時間は省いておりますがどれも数十秒程度。
・圧縮率が100%を切っているもののみ評価
・x264 RGBは色が崩れるため評価から除外
・proresはなんとなく参考までに

こちらは比較画像です。

ペンギンの身体の模様、輪郭、マンホールの模様を比べると違いが分かりやすいと思います。
こういう比較画像は同じ位置に揃えて表示非表示を切り替える方がわかりやすいので、もっと細かく確認されたい方はこちらからダウンロードしてください。
https://drive.google.com/drive/folders/18Vk4d8QMQkUgVPK5__E6-fSm9kk6p0bk?usp=sharing

結果

AviUtlもAfterCodecsも中間よりやや高め(60〜70%)ぐらいの品質設定がバランスが取れているように思います。x265は新しい規格というのもあり高品質を維持できてますが、レンダリング時間がかかること、また一部古いツールやOSで再生できないことがあるので、クライアントに投げる際には不向きなのかなと考えております。
AfterCodecsであればAfterEffectsのプラグイン(別途ライセンス購入が必要)で出力することができ、AvtUtlでも一手間加えるだけで容量を抑えられるので、ネットワーク環境によっては変換しないものよりも早くアップロードができます。

当たり前ですが変換する映像やPC環境によって品質や圧縮率も変わりますのであくまでご参考までに。


※追記
CG映像のデータで試したところ、AE2014からH.264で出力したファイルが12MBだったのに対し、x264では3MB程度に収まりました。公開できない映像データなので比較画像は載せられませんが、CGだと元々ノイズが乗っていない(もしくは少ない)分、圧縮効率が良いですね。