マルチメディアコンテナ

コンテナとコーデック

動画は、映像(ビデオ)部分と音声(オーディオ)部分をコンテナという容器に入れる形でできている。これに字幕データを入れる場合もある。

映像、音声ともにいろいろな圧縮方式があり、それをコーデックという。コンテナにより入れることのできるコーデックの種類が異なり、いくつかのコーデックから選択できるようになっている場合が多い。

コンテナを保存するときに拡張子をつけて区別することが多いが、拡張子はコンテナごとにつけるので映像、音声がそれぞれどのような圧縮方式であるかは拡張子からは判別できない。コンテナの先頭部に方式を記録するようになっている。

ネットワークや放送で配信するときには、拡張子を送信するわけではない。また別の方式が取られている。

コンテナと対応するコーデックの表

最近(2013)よく目にするものの一部です。まだ発展途上なので複雑です。まだまだ変化があるでしょう。

コンテナ⇨ Ogg WebM MPEG4 FLV QuickTime 3GPP ASF MPEG PS
拡張子⇨
⇩コーデック
.ogv .oga .ogx .webm .mp4 .flv .mov .qt .3gp .3g2 .asf .wma .wmv .mpg .m2p


(v)
Theora Theora*
H.264 H.264* H.264* H.264* H.264* H.264
MPEG2 MPEG2 MPEG2 MPEG2 MPEG2*
MPEG4/DivX5 MPEG4/DivX5 MPEG4/DivX5 MPEG4/DivX5 MPEG4/DivX5
WMV2 WMV2*
VP8 VP8 VP8* VP8


(A)
Vorbis Vorbis* Vorbis*
FLAC FLAC
mp3 mp3 mp3* mp3 mp3 mp3 mp3*
AAC AAC* AAC* AAC* AAC
AC3 AC3 AC3
WMA2 WMA2*
備考 Google ISO/IEC Adobe apple 携帯 MS DVD

動画の実例

同じ動画を異なるコンテナで保存し、画質・音質とファイルの大きさを比べてみました。

ただし、Linuxにオープンソースで提供されているソフトウェアを利用して変換しているため、jpegの画質調整に相当する調整が思い通りにできない場合があり、ソフトの性能を含めて公平でない可能性があります。

OSの環境、ブラウザのプラグインの違いなどにより、見ることのできないものがあります。

動画を小さくしましたので、画質の違いははっきりしないかもしれません。

ファイル コンテナ ビデオコーデック オーディオコーデック 拡張子 大きさ
hdd320Theovorb.ogv Ogg (オッグ,オグ) Theora 30fps 800kb/s Vorbis 128kb/s .ogv(.ogg) 1.9MB
hdd320vp8vorb.webm WebM (ウェブエム) VP8 30fps N/A Vorbis 128kb/s .webm 2.2MB
hdd320h264AAC.mp4 MP4 (エムピーフォー) H.264/AVC 30fps 45kb/s AAC 124kb/s .mp4 1.0MB
hdd320MPEG2mp3.mpg MPEG-2 PS (エムペグ ツー プログラムストリーム) MPEG 2 Video 30fps 777kb/s MP3 127kb/s .mpg 5.8MB
hdd320wmv2don.asf Advanced Systems Format WMV2 MWM8 25fps N/A WMA2 WMA v.8 N/A (.asf) .wmv 2.7MB
hdd320mjpegmp3d.mov quicktime (クイックタイム)* Motion JPEG MP3 127kb/s .mov 8.5MB

* 本来quicktimeはH.264が多い。これはmp4相当。しかし、これだけ特別 Motion JPEG になっているので画質が悪い。

そもそも、ブラウザで多種のコーデックの動画を見ようとするのは無理があります。いろいろなプラグイン(ブラウザの機能を増やす追加ソフト)で動画を再生する仕組みでしたが、すべてのブラウザにすべてのコーデックのプラグインが用意されているわけではありません。html5という規格では、動画にも標準をもうけてプラグインを不要にしようという動きがあります。その候補が、Theora, VP8, H264 の3つですが、まだ決着がついておらず、firefoxはTheoraにしか対応していません。そこでこのページでは各動画を直接リンクで呼び出し、その処理をブラウザ任せにしました。あるコンテナはブラウザ内で直接再生、あるコンテナはプラグインを使って内部で再生、あるコンテナはOS内の動画再生ソフトを呼び出して再生させる、などブラウザ(やOS)によりさまざまな再生法になります。中には再生できない場合もあります。