動画をダウンロードしたら .mp4 のときもあれば .webm のときもある。X のタイムラインで動画を再生中に開発者ツールで通信を覗くと、.m3u8 というファイルが読み込まれていた。音声も MP3 だけかと思いきや Opus という形式が出てきたりする。名前は見かけるのにそれぞれ何が違うのかよく分かっていなかったので、主要な形式を一通り調べてまとめた。

コンテナとコーデックは別の話

ファイル形式の話で混乱しやすいのが「コンテナ」と「コーデック」の区別。この 2 つは役割が違う。

  • コーデック = データの圧縮・展開方式。H.264 や VP9 は映像の圧縮ルール、AAC や Opus は音声の圧縮ルール
  • コンテナ = コーデックで圧縮されたデータを格納する箱。.mp4 や .webm がこれにあたる

たとえば .mp4 という拡張子の動画でも、中身の映像が H.264 のこともあれば H.265 のこともある。逆に同じ H.264 の映像を .mp4 に入れることも .mkv に入れることもできる。「.mp4 なのに再生できない」は、コンテナは対応しているがコーデックに対応していない、というパターンが多い。

動画ではこの区別がはっきりしているが、音声は少し事情が違う。MP3 や FLAC はコーデック名がそのままファイル形式・拡張子になっていて、コンテナとコーデックが一体化している。一方で AAC は .m4a(MP4 コンテナ)に入れるのが一般的だし、Opus は .ogg(Ogg コンテナ)に入れることが多い。音声は動画ほどコンテナとコーデックを分けて考える場面が少ないため、この記事では「音声フォーマット」としてまとめて扱っている。

音声フォーマット

MP3

1993 年に登場した非可逆圧縮の音声形式。あらゆるデバイスとブラウザで再生でき、互換性では他の追随を許さない。2017 年に特許が切れてライセンス料も不要になった。ただし同じビットレートでの音質は AAC や Opus に劣るため、新規で採用する理由は減っている。

AAC

MPEG-4 規格の一部として策定された非可逆圧縮形式で、MP3 の後継にあたる。同じビットレートなら MP3 より音質がよい。YouTube の音声トラック、Apple Music(256kbps)、LINE の音声メッセージなどで広く使われている。ファイルの拡張子は .m4a や .aac。ブラウザ対応も問題ない。

Opus

2012 年に IETF が標準化したオープンな非可逆圧縮形式(RFC 6716)。Skype の音声技術 SILK と低遅延コーデック CELT をベースにしている。低ビットレートでの音質が抜群によく、遅延も小さいため音声通話との相性がいい。Discord の通話やブラウザの WebRTC で標準コーデックとして採用されている。拡張子は .opus や .ogg。

音楽用途でも 128kbps の Opus が 320kbps の MP3 に匹敵するという評価がある。音質・圧縮率・ライセンスの三拍子が揃っていて、新しいプロジェクトで音声形式を選ぶなら有力な候補。

FLAC

可逆圧縮(ロスレス)の音声形式。圧縮しても元のデータを完全に復元できるので、音質の劣化がない。ファイルサイズは WAV の 50〜60% 程度になる。Amazon Music HD や Tidal の高音質プランで採用されている。音源のアーカイブや編集素材の保存に向いている。

WAV

無圧縮の PCM データをそのまま格納する形式。CD 音質(16bit / 44.1kHz)で約 1,411kbps になり、ファイルサイズが大きい。圧縮による劣化がないため音楽制作や録音の現場で使われるが、配信やストリーミングには向かない。

Ogg Vorbis

Xiph.org が開発したオープンな非可逆圧縮形式。Spotify のデスクトップ・モバイルアプリはこの形式を採用している(Premium で 320kbps)。品質は良いが、後発の Opus が同じ Xiph.org 系でほぼ上位互換になっており、新規採用は減っている。

音声フォーマット比較表

形式 圧縮方式 典型ビットレート ライセンス ブラウザ対応
MP3 非可逆 128〜320 kbps 無料(特許切れ) IE 含むすべて
AAC 非可逆 128〜256 kbps ライセンスあり IE 含むすべて
Opus 非可逆 64〜256 kbps 無料(オープン) Chrome・Firefox・Edge・Safari
FLAC 可逆 800〜1,400 kbps 無料(オープン) Chrome・Firefox・Edge・Safari
WAV 無圧縮 1,411 kbps(CD 音質) 無料 IE 含むすべて
Ogg Vorbis 非可逆 96〜320 kbps 無料(オープン) Chrome・Firefox・Edge・Safari

動画コーデック

H.264(AVC)

2003 年に標準化された動画コーデック。現時点でもっとも広く使われている。スマートフォンからブラウザ、ゲーム機まで、ハードウェアデコードに対応していないデバイスを探すほうが難しい。無料のインターネット動画であればライセンス料がかからないこともあり、Web 動画のデフォルトの選択肢になっている。

H.265(HEVC)

H.264 の後継コーデック。同じ画質なら H.264 の約半分のビットレートで済む。4K・8K の高解像度コンテンツに向いている。ただしライセンスの仕組みが複雑で、MPEG LA と Access Advance という 2 つのパテントプールに加えて独立した特許保有者もいるため、利用コストが読みにくい。ブラウザ対応も Safari 以外は限定的で、Web 配信ではあまり普及していない。Apple のエコシステム(FaceTime、iPhone の録画)では標準的に使われている。

VP9

Google が開発したオープン・ロイヤリティフリーのコーデック。YouTube の動画配信で主力として使われている。H.264 に比べて 30〜50% ほどビットレートを削減できる。Chrome・Firefox・Edge で対応しており、ハードウェアデコードも近年のデバイスなら広く対応済み。Safari は長らく非対応だったが、最近のバージョンで対応が進んでいる。

AV1

Alliance for Open Media(Google・Mozilla・Netflix・Amazon などが参加)が策定した次世代のオープンコーデック。VP9 からさらに 30% 程度、H.264 からは約 50% のビットレート削減が見込める。YouTube や Netflix が一部コンテンツで採用を進めている。

課題はエンコード速度。H.264 の 10〜100 倍ほど時間がかかるため、大量の動画をエンコードするには計算リソースが必要になる。再生側のハードウェアデコード対応は新しめのチップ(Apple M3 以降、Intel 第 12 世代以降、最近の Snapdragon など)から広がっている。ブラウザは Chrome・Firefox・Edge・Safari 17 以降が対応済み。

動画コーデック比較表

コーデック 圧縮効率(対 H.264) ライセンス HW デコード ブラウザ対応
H.264 基準 条件付き無料 ほぼ全デバイス IE 含むすべて
H.265 約 2 倍 複雑(有料) 広く対応 Safari 中心
VP9 約 1.5 倍 無料(オープン) 近年のデバイス Chrome / Firefox / Edge
AV1 約 2 倍 無料(オープン) 新しいチップ Chrome・Firefox・Edge・Safari 17+

動画コンテナ

MP4(.mp4)

もっとも普及しているコンテナ。映像は H.264 か H.265、音声は AAC という組み合わせが定番。ブラウザ・スマートフォン・メディアプレーヤーを問わず再生できる。「とりあえず MP4 にしておけば困らない」というくらい汎用性が高い。

WebM(.webm)

Google が Web 向けに策定したオープンなコンテナ。中身は Matroska(MKV)のサブセット。映像は VP8・VP9・AV1、音声は Vorbis・Opus を格納する。YouTube が内部的に使っている形式でもある。Safari が長らく非対応だった影響で、MP4 ほどどこでも使えるわけではない。

MKV(.mkv)

Matroska。映像・音声・字幕を複数トラック持てる柔軟なコンテナ。コーデックの制約がほぼなく、H.264 でも H.265 でも AV1 でも何でも入る。映画のリッピングや動画ファイルの保存によく使われるが、ブラウザはネイティブ対応していないためそのまま Web 配信には使えない。

TS(.ts)

MPEG Transport Stream。もともとは放送用に設計されたコンテナで、各セグメントが独立して再生できるようになっている。HLS のストリーミング配信で動画を細かく分割する単位として現役で使われている。直接目にする機会は少ないが、後述する .m3u8 の裏側で動いている形式。

ストリーミング配信の仕組み

YouTube や X で動画を再生するとき、1 つの巨大な動画ファイルを丸ごとダウンロードしているわけではない。動画を短いセグメントに分割し、再生しながら順次取得する「アダプティブストリーミング」が主流になっている。回線速度に応じて画質を自動で切り替える仕組みもこの方式で実現されている。代表的なプロトコルが 2 つある。

HLS(.m3u8)

Apple が開発した HTTP Live Streaming。プレイリストファイル(.m3u8)に動画セグメント(.ts や .fmp4)の URL と順序が書かれていて、プレーヤーはこのリストに従ってセグメントを取得・再生する。

X(Twitter)の動画配信はこの HLS を使っている。開発者ツールのネットワークタブを見ると .m3u8 ファイルが読み込まれているのを確認できる。iOS が HLS をネイティブ対応していることもあり、Apple 以外のサービスでも広く採用されている。

.m3u8 ファイルの中身はこんなテキスト。

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360
360p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1400000,RESOLUTION=1280x720
720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1920x1080
1080p.m3u8

これはマスタープレイリストと呼ばれるもので、画質ごとのプレイリストへのリンクが並んでいる。プレーヤーは回線速度を見て適切な画質を選び、その先のプレイリストからセグメントを順に取得する。

各画質のプレイリストの中身はこうなっている。

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10.0,
segment_000.ts
#EXTINF:10.0,
segment_001.ts
#EXTINF:10.0,
segment_002.ts
#EXT-X-ENDLIST

10 秒ごとに分割された .ts ファイルが順番にリストされている。プレーヤーはこれを先読みしながら再生する。

MPEG-DASH(.mpd)

ISO が標準化したストリーミングプロトコル。仕組みは HLS と似ていて、マニフェストファイル(.mpd)にセグメント情報が書かれている。HLS より柔軟な設定ができ、YouTube や Netflix の配信基盤として使われている。ただし iOS の Safari がネイティブ対応していないため、Apple デバイスでは JavaScript(Media Source Extensions)経由で処理する必要がある。

プログレッシブダウンロードとの違い

HTML の <video> タグに .mp4 ファイルを直接指定する方法はプログレッシブダウンロードと呼ばれる。ファイルの先頭から順にダウンロードしながら再生する。単純で扱いやすいが、回線に応じた画質の切り替えはできない。個人サイトに短い動画を置く程度ならこれで十分だが、大量のユーザーに配信するサービスではアダプティブストリーミングが必要になる。

主要サービスの採用フォーマット

各サービスがどの形式を使っているかを一覧にした。

サービス 映像コーデック 音声コーデック 配信方式 備考
YouTube VP9 / AV1 / H.264 Opus / AAC DASH VP9 が主力。人気動画は AV1 に移行中
Netflix H.264 / H.265 / AV1 AAC / Dolby Digital DASH 4K は H.265、対応デバイスで AV1
X(Twitter) H.264 AAC HLS(.m3u8) アップロード時に H.264 に変換される
TikTok H.264 / H.265 AAC HLS / プログレッシブ 新しいデバイス向けに H.265 を配信
Instagram H.264 AAC HLS / プログレッシブ リールは HLS で配信
Spotify Ogg Vorbis / AAC プログレッシブ アプリは Vorbis、Web は AAC
Apple Music AAC / ALAC / Dolby Atmos HLS ロスレスは ALAC(Apple 独自の可逆圧縮)
Discord H.264 Opus WebRTC 音声通話は Opus で低遅延を実現
LINE H.264 AAC プログレッシブ ボイスメッセージも AAC

こうして並べると、映像は H.264 がベースラインで VP9・AV1 に移行中、音声は AAC と Opus の二強という構図が見えてくる。ストリーミングは Google 系が DASH、Apple 系と X が HLS。

用途別の選び方

迷ったときの目安をまとめた。

やりたいこと おすすめ構成 理由
Web に音声を埋め込む Opus(フォールバックに AAC) 軽くて高音質。古いブラウザ対応が要るなら AAC を併記
Web に動画を埋め込む H.264 + AAC(MP4) 全ブラウザ・全デバイスで再生できる最も安全な構成
動画をストリーミング配信する H.264 + AAC で HLS iOS 含め対応範囲が広い。CDN との相性もよい
高画質で容量を抑えたい AV1 + Opus(WebM) 圧縮率は最高だがエンコード時間とデバイス対応を要確認
音声を劣化なく保存したい FLAC 可逆圧縮で WAV の半分程度のサイズに収まる
動画ファイルをローカル保存 MKV コーデックの制約がなく複数トラックを保持できる

ファイル形式の変換

「MP3 を AAC に変換したら音質は上がるのか」「FLAC を MP3 にしたい」など、形式を変換したい場面は多い。ただし変換の方向によっては意味がなかったり、むしろ悪化する。

変換の方向と結果

変換の方向 結果
非可逆 → 非可逆 MP3 → AAC 劣化が重なるだけ。やらないほうがいい
非可逆 → 可逆 MP3 → FLAC ファイルが大きくなるだけで音質は戻らない
可逆 → 非可逆 WAV → MP3、FLAC → AAC 正しい方向。元データから圧縮するので品質を制御できる
可逆 → 可逆 WAV ↔ FLAC 劣化なし。サイズ調整や互換性のために自由にできる

非可逆圧縮は名前のとおり不可逆な処理で、一度捨てた情報は取り戻せない。MP3 の 128kbps を AAC の 256kbps に変換しても、128kbps 時点で失われた情報が復元されるわけではない。AAC のエンコード処理がさらにかかって劣化が重なるだけ。「高音質な形式に変換すれば音質が上がる」というのはよくある誤解。

音質を維持したまま形式を変えたいなら、元の無圧縮・可逆データ(WAV や FLAC)から変換するのが原則。手元に可逆データがない場合は、今の形式のまま使うのが一番マシな選択になる。

動画も同じ考え方

動画のコーデック変換(トランスコード)も同じで、H.264 の動画を VP9 に変換すると、一度デコードした映像を VP9 で再圧縮するため画質が落ちる。

ただし動画にはコンテナの変更だけで済むケースがある。たとえば H.264 + AAC の MKV ファイルを MP4 に変えるとき、コーデックはそのままでコンテナだけ入れ替える「リマックス」ができる。再エンコードしないので劣化しないし、処理も一瞬で終わる。

変換ツール

音声・動画の変換には FFmpeg がほぼ万能。コマンドラインツールだが、対応フォーマットの広さと変換品質では他のツールを大きく上回る。GUI がほしければ HandBrake(動画向け)や fre:ac(音声向け)がある。どちらも内部で FFmpeg を使っている。

関連記事

よくある質問

MP3 と AAC はどちらを使えばいい?
新しく音声を用意するなら AAC のほうがおすすめ。同じビットレートなら AAC のほうが音質がよく、YouTube や Apple Music など主要サービスも AAC を採用している。ただし MP3 のファイルをわざわざ変換する必要はない。
Opus はなぜ Discord や WebRTC で標準になっている?
Opus は低ビットレートでも音質が良く、遅延が小さい。音声通話のように「軽くてリアルタイム」が求められる用途に向いている。ライセンス料が不要なオープン形式である点もブラウザ標準に採用された理由の一つ。
.m3u8 ファイルとは何?
HLS(HTTP Live Streaming)で使われるプレイリストファイル。動画本体ではなく、分割された動画セグメント(.ts ファイル)の URL と再生順を記述したテキストファイル。X(Twitter)の動画配信などで使われている。
AV1 はもう使える段階?
YouTube や Netflix が一部のコンテンツで採用しており、Chrome・Firefox・Edge・Safari 17 以降のブラウザが対応済み。ただしエンコードに時間がかかるため、個人で使うにはまだハードルがある。視聴側は問題ない。