こんにちは、管理人の高田です(@eizo_memo)。
この記事では QuickTimeのMOV形式でh.264コーデックの動画を書き出す際に覚えておきたいポイントを紹介しています。
はじめに
先日、納品物のひとつとして、h.264の動画ファイルを書き出すことになりました。
コンテナ(動画形式)はクライアントの指定で「MOV」形式。
私の環境では 普段 h.264で書き出す際のコンテナは「mp4」を用いることが多く、Media Encoderには「MP4&h.264」用の独自プリセット(テンプレート)も用意してあるのですが、MOVで書き出すのは久しぶりでした。
書き出した映像が汚い・・・
とはいえ、特に面倒な指示があるわけでもなかったので、あまり深くも考えず Adobeのメディアエンコーダで以下のような設定で書き出しました。
- 形式:MOV
- ビデオコーデック:H.264
- 品質:100
- ビットレート設定:2000kbsに制限
ビットレートの設定に関して、具体的な数値の指定はなかったのですが 「動画ファイル全体の容量を20MB以内に抑えてほしい」との要望。
何度か試行錯誤することを前提に、とりあえず2,000kbにして書き出してみたのですが・・・

そのようにして書き出したのが↑上の画像。
赤いカーテンの前に紙ふぶきが降り注ぐ映像なのですが、圧縮ノイズ(モスキートノイズ)が激しくてとても見れたものではありません。
ビットレート設定の数値をあげれば、それなりに画質は向上するのですが、それだと、とんでもなく容量が増えてしまいます。
また、いつものMP4コンテナで書き出すh.264映像に比べると、明らかに圧縮率がよろしくない(画質も汚いしデータ量も多い)感じです。
しかし、MOVやMP4といった「コンテナ」は、その名のとおり あくまで「容器(いれもの)」に過ぎないはずで、その違いだけで画質や容量にそこまで差が出るとも思えません。
原因は「キーフレーム」の設定
そこであれこれ調べてみたところ、どうも「キーフレーム」の設定が鍵になっているらしいことがわかりました。
「キーフレームの間隔」に数値をいれてみた
最初は、詳細設定項目で「キーフレームの間隔:」にチェックを入れていなかったのですが、ここにチェックをいれて「キーフレームの間隔:5フレーム」にしたところ・・・

一気に画質が向上しました。

キーフレームに関して
キーフレームというと、PremiereやAfterEffectsで「タイムライン上に打ちこむ アニメーションの基点」のことを思い浮かべる方が多いと思いますが、ここで問題となっているのは、それとはまったく別のお話です。
H.264などのコーデックは「フレーム間圧縮」といって、動画を構成している各静止画の共通要素を間引くことによってデータ容量を軽減しています。
この場合、映像を構成する静止画は大きく以下の2つの種類に分けられます。
- 100%の情報を持ったベース画像(Iフレーム)
- そのベース画像同士の差分情報だけを持つ参照データ(P/Bフレーム)
このうち(1)が、ここで「キーフレーム」と呼ばれているものです(以下の「AviUtlの易しい使い方」さんの記事が分かりやすいです)。
キーフレームとは?Iフレーム・Pフレーム・Bフレームの違い【GOP】
動画の於ける「 キーフレーム 」の意味について紹介します。 ※動画をエンコードする際や、無劣化(再圧縮なし)で動画をカットしたい際などに役立つ知識です…
つまり「キーフレームの間隔」というのは、100%の情報を持ったベース画像同士の間に何枚の参照フレームをいれるか?・・・という意味なわけです。
Adobe Media Encoder CS4 * ビデオとオーディオのエンコードについて
ネイティブフレームレート(ビデオが最初に撮影されたときのフレームレート)では、ビデオが最適な状態で表示されるため、配信チャンネルと再生プラットフォームに余裕がある場会は、フレームレートを高いままにすることをお勧めします。
「キーフレームの間隔」に入れ込む数値と画質・データ容量との関係性は以下のような感じになります。
- キーフレームの間隔の数値が「小さい」・・・高画質だがデータ容量は大きくなる
- キーフレームの間隔の数値が「大きい」・・・低画質だがデータ容量は小さくなる
「キーフレームの間隔:」にチェックをいれない場合、メディアエンコーダ側で 自動的に「キーフレームの間隔」の数値が割り振られるはずなのですが、どうも その数値があまりよろしくないようです。
まとめ
ちなみに、コンテナをMP4にして書き出す際は「キーフレームの間隔」の設定をしなくても(自動設定であっても)高画質で書き出されます。
なので、MOV形式で「キーフレームの間隔」にチェックをいれない場合の「自動設定」の数値が、結構大きいもの(=画質が低いもの)になっているのかも知れません。
Mov形式でH.264を書き出す際に「映像が汚いな・・・」と感じた方は「キーフレームの間隔」の項目を調整してみましょう。
Adobe CreatveCloudの導入/更新を検討している方には、たのまなの「アドビオンライントレーニング通信講座」がおすすめ。
Adobeアプリの動画講座に加えて、CreatveCloud コンプリートプラン(全アプリが利用可能なプラン)が付属し、なんと"学割価格" で利用できてしまいます。
※私が 実際にトレーニング講座を受講した際の感想を記事にしていますので、興味がある方はそちらも合わせて読んでみてください。
コメントを残す