このページでは、
- 「動画形式ってなに?」
- 「音声形式ってなに?」
- 「コーデックとコンテナってなに?」
- 「どれがどう違うの?」
など悩んでいる人向けに、これら全般のことをわかりやすく解説したいと思います。
動画形式(音声形式)とは?
まず最初に、「動画の仕組み」ってご存知ですか?
「動画の仕組み」というのは実は単純で、
- 映像ファイル
- 音声ファイル
の2つを1つのファイルにまとめて、それを同時に再生して「動画だよ!」としているだけなのですが、
この時、「映像ファイル」と「音声ファイル」をまとめるのに使用するファイルフォーマット(動画形式とも言う)のことを「コンテナ」と言います。
ファイルを「コンテナ」にまとめる事を、
- 「多重化」
- 「コンテナ化」
- 「カプセル化」
などと呼んだりします。
「映像」ファイルがなくて「音声」ファイルだけの場合、「コンテナ」は使われないの?
と思う方がいるかもしれませんが、音声ファイルだけの場合は、音声ファイル専用のコンテナが使われます。
例えば「MP3」などです。
「動画ファイル」と「音声ファイル」は、まったく違うもののようで、仕組みは同じです。
「動画ファイル」から「映像」を取り除いたものが「音声ファイル」です。
動画ファイル | 音声ファイル | |
音声 | ○ | ○ |
映像 | ○ | ✕ |
コンテナの種類
コンテナの種類には、
- 映像+音声が入るコンテナ
- AVI
- MP4
- MOV
- MPEG
- MKV
- WMV
- FLV
- ASF
- ・・etc
- 音声のみが入るコンテナ
- MP3
- MP2
- M4A
- OGG
- FLC
- ・・etc
などがあります。
例えば、AVIコンテナなら、ファイル名の最後に.aviという拡張子が付きます。
コンテナとコーデックの違い
「コンテナ」と「コーデック」を混同する人が多いですが、
↑で紹介した「AVI」などは「コンテナ」であって「コーデック」ではありません。
図で表すと以下の様な感じです。
▲「コンテナ」の中に「コーデック」で圧縮された「映像」と「音声」が入っているイメージ |
コーデックとは?
「コーデック」は「データを圧縮するアルゴリズム」のことを指します。
ただ、これだけ聞いても「よくわからん」状態だと思いますので、噛み砕いて説明していきます。
まず最初に、
「映像」の仕組みというのは、複数の画像をパラパラ漫画みたいにパラパラめくっていって「映像」に見せかけているだけなのですが、
この紙芝居に使われている1枚1枚の画像を、全く圧縮せずに1つの映像として繋げてしまうと、膨大なデータサイズになってしまいます。
▲映像のイメージ |
例えば、私たちが普段見ている動画のほとんどは30fps(1秒間に30枚のパラパラ漫画)ですが、
画像1枚のサイズが3MBだとすると、
30枚 × 3MB/枚 = 90MB
という風に、「たった1秒の動画なのに容量が90MB」という超巨大なファイルになってしまいます。
なので通常、このパラパラ漫画に使われている画像1枚1枚を圧縮します。
具体的には、
- 単純に1枚1枚を圧縮する(JPEG画像みたいに)
- 前後の画像で似た部分を圧縮する(例えば夜景の映像みたいに「似た映像が連続している部分は簡略化しよう!」みたいな感じに)
という2パターンの圧縮を、複雑なアルゴリズムを使って行います。
このとき、圧縮するときに使われるアルゴリズムのことを「コーデック」と呼ぶのです。
例えば、代表的な「映像」のコーデックだと「H.264」という名前のコーデックがあったりします。(ニコニコ動画などで使われているコーデックです)
これは「音声」でも同じことです。
圧縮していない「音声」は大きなサイズになってしまうので、「音声」のコーデックを使用して圧縮します。
例えば、代表的な「音声」のコーデック」だと「MP3」などがあります。
それぞれのコンテナにすべてのコーデックが入るわけじゃない
ただ、ここでややこしいのが、
それぞれの「コンテナ」ですべての「コーデック」が使用できるわけではないという点です。
例を挙げると以下の様な感じです。
- 「MP4」コンテナには「H.264」コーデックを使用できるが「WMV9」コーデックなどは使用できない
- 「WMV」コンテナには「WMV9」コーデックを使用できるが「H.264」コーデックなどは使用できない
- 「MPEG2-PS」コンテナには「MPEG-2」「MPEG-1」「MPEG-4」コーデックなどは使用できるが「H.264」コーデックなどは使用できない
「どの『コンテナ』にどの『コーデック』を使用できるか」というのは覚えるしかありません。
コンテナによる機能の違い
「MP4とAVI、どっちにも入れれる映像と音声ならどっちに入れても同じなの?」
と思うかもしれませんが、同じではありません。
なぜなら、コンテナによって機能が異なるからです。
例えば、AVIとMP4では、以下のように機能が異なったりします。
AVI | MP4 | |
字幕表示に対応しているか? | ✕ | ○ |
ストリーミング再生に対応しているか? | ✕ | ○ |
古いWindowsでも再生できるか? (互換性があるか?) | ○ | ✕ |
古いMP3プレイヤーでも再生できるか? (互換性があるか?) | △ | ○ |
なので、
「どのコンテナに入れても同じ」というわけではありません。
詳しくは以下のページを参考にしてみて下さい。
関連:動画形式の種類と違い(AVI・MP4・MOV・MPEG・MKV・WMV・FLV・ASF等)
まとめ
コンテナ:
コーデックで圧縮された「映像」や「音声」ファイルを入れる箱。コンテナによって機能は違う。
(「動画形式」「ファイルフォーマット」などとも言う)
コーデック:
「映像」や「音声」を圧縮するためのアルゴリズム。
コーデックによって「圧縮率」が異なる。
多重化:
コーデックを使って「映像」や「音声」を圧縮すること
(「コンテナ化」「カプセル化」などとも言う)
このページの情報は以上です。
\一緒に読むと理解が深まるページです/
関連:動画コーデック(H.264・VP9・MPEG・Xvid・DivX・WMV等)の種類と違い
コメント