コンテナは「箱」
動画ファイルは、実際には複数の中身をまとめた包みです。1つの.mp4や.mkvの中には、たいてい1本の映像ストリームと1本以上の音声ストリームが入っており、さらに字幕・チャプターマーカー・撮影日時などのメタデータが加わることもよくあります。コンテナ(ラッパーとも呼ばれます)は、これらのストリームを1つのファイルに詰め込み、再生中も同期を保つための形式です。音声と映像がずれないのも、ファイル全体を読み込まずに12分の地点へシークできるのも、コンテナの働きによるものです。
MP4・MKV・MOV・WebM・AVIは、いずれもコンテナです。どんな種類のストリームを収められるか、メタデータをどこまで扱えるか、どのプレーヤーが理解できるかがそれぞれ異なります。たとえばMKVは実質何でも収められ、複数言語の音声、いくつもの字幕トラック、これまでに作られたあらゆるコーデックに対応するため、アーカイブ用途で人気があります。一方のMP4は中身に対して厳格で、その制約こそが、ほぼすべての端末で再生できる理由になっています。
コーデックは「箱の中身」
コーデック(coder–decoder)は、コンテナの中にある映像や音声のデータそのものに使われている圧縮方式です。非圧縮の映像は非常に巨大で、1080p・30フレーム毎秒の映像はわずか1分で10 GB規模になります。だからこそ、あなたがこれまで見てきた動画はすべて、コーデックで圧縮され、再生時に展開されてきたのです。
代表的な映像コーデックはH.264(AVCとも呼ばれます)、H.265(HEVC)、VP8、VP9、AV1です。音声ではAAC、MP3、Opus、Vorbis、FLACがよく使われます。それぞれが圧縮効率・エンコード速度・ハードウェア対応のバランスの取り方で異なります。互換性の王者はH.264です。ここ10年ほどに作られたスマートフォン・ノートパソコン・テレビ・ブラウザのほぼすべてが専用ハードウェアでデコードできるため、再生が滑らかでバッテリーにもやさしいのが特長です。H.265やAV1といった新しいコーデックは、同じ画質を目に見えて小さいファイルに収められますが、古い端末はソフトウェアでデコードするしかなく、まったく再生できない場合もあります。
「MP4だから再生できる」とは限らない理由
実際の現場で最も混乱を招くのはここです。拡張子が示しているのはコンテナであって、コーデックではありません。.mp4ファイルの中身はたいていH.264映像とAAC音声ですが、MP4コンテナはH.265を収めることも認められていますし、.mkvの中にMP4なら問題なく再生できたはずのH.264ストリームがそのまま入っていることもあります。プレーヤーが「非対応のファイル」と表示したり、映像は出るのに音が出なかったりするとき、原因はほぼ必ず端末がデコードできないコーデックであって、コンテナではありません。
同じ拡張子のファイルがまったく違う振る舞いをするのも、これが理由です。H.265で.mp4に記録するドローンのファイルは古いノートパソコンでは重すぎて再生が詰まりますが、H.264で.mp4に書き出す画面録画ソフトのファイルはどこでも再生できます。箱は同じでも、中身が違うのです。
互換性の早見表
| コンテナ | よく使われるコーデック | 快適に再生できる環境 | 弱いところ |
|---|---|---|---|
| MP4 | H.264 + AAC | ほぼすべて — ブラウザ、スマートフォン、テレビ、ゲーム機 | 字幕やマルチトラックの対応が限定的 |
| WebM | VP8/VP9 + Opus | Chrome、Firefox、Edge、Android | Safari/iOS、古いテレビ、編集ソフトで不安定 |
| MOV | H.264/ProRes + AAC/PCM | Appleのエコシステム、編集ソフト | プロ向けツール以外のWindowsアプリ |
| MKV | ほぼ何でも | VLCなどのデスクトッププレーヤー | ブラウザ、iPhone、多くのスマートテレビ |
| AVI | 古めのコーデック(MPEG-4 ASP、MJPEG) | レガシーなWindowsソフトウェア | 最新コーデック、ストリーミング、モバイル |
リマックスと再エンコード
箱と中身を分けて考えられるようになると、変換はまったく性質の異なる2つの操作に分かれます。
リマックスは、圧縮済みのデータには一切手を触れず、既存のストリームを別のコンテナに移し替える操作です。H.264とAACを収めたMKVは、数秒でMP4に詰め替えられ、画質の劣化もゼロです。デコードが起きず、ストリームをそのまま入れ直しているだけだからです。中身のコーデックには問題がなく、コンテナだけが都合が悪いという場合には、これが理想的な選択肢になります。
再エンコードは、映像をいったんデコードしてから圧縮し直す操作です。別のコーデックに変える場合(WebM化のためのH.264 → VP8など)も、設定を変える場合(解像度を下げる、圧縮を強める)も、これに当たります。再エンコードには相応の時間がかかり、非可逆コーデックは処理のたびに情報を捨てるため、必ずわずかに劣化します。その代わり、画質・サイズ・解像度・コーデックを変えられるのは再エンコードだけです。リマックスでファイルを小さくすることは決してできません。
目安として、あるプレーヤーではファイル自体が拒否されるのに、VLCなど別のプレーヤーでは問題なく再生できるなら、必要なのは別のコンテナかコーデックです。変換しましょう。どこでも再生できるのにサイズが大きすぎるなら、必要なのは圧縮を強めた再エンコードです。動画ファイルを小さくするガイドをご覧ください。
実際にどう役立つか
- スマートフォン・テレビ・ブラウザで再生できない? MP4に変換しましょう。この変換は、ほぼ常にH.264 + AACという最も広くデコードできる組み合わせに近づくために行っています。MKVをMP4に変換やAVIをMP4に変換といったツールが実際にやっているのは、まさにこれです。
- 自分のウェブサイトで公開する? MP4が安全な既定の選択肢です。対応ブラウザ向けにより小さいファイルを届けるため、WebMを併せて用意することもできます。判断の流れは動画フォーマットの選び方ガイドで解説しています。
- 映像は出るのに音が出ない(またはその逆)? どちらか一方のストリームのコーデックが非対応です。変換すれば両方が主流の組み合わせに再エンコードされ、解決します。
- 字幕や複数音声トラックごとアーカイブしたい? それはMKVの得意分野です。共有したり幅広く再生したりする必要が出たときに、コピーをMP4に変換しましょう。
この言葉づかいを覚えるだけで、すぐに効果が出ます。「ファイル形式」ではなく「箱」と「中身」で考えるようになれば、.mkvを.mp4にリネームしても何も解決しない理由、ある変換は一瞬で無劣化なのに別の変換には数分かかる理由、そして新しく効率的なコーデックが少しずつ広がっている今でもMP4 + H.264が互換性の問題への答えであり続ける理由が、自然に見えてきます。