ffmpeg で H.264 と H.265 を同条件でエンコードし、サイズと PSNR、GOP、hvc1 タグ、HLS への詰め替え、hls.js と WebRTC での再生までを実測します。コマンドはそのまま手元で再現できます。
2026 年 9 月時点のブラウザ別の H.265 対応と、その差を生む特許プールの構造、再生できるかを実行時に調べる 5 つの API(canPlayType から decodingInfo まで)の使い分けを整理します。
fMP4 と MPEG-2 TS の構造、hvc1 / hev1 の違い、HLS のセグメントとプレイリスト、RTP でのパケット化を ffmpeg の実測で追います。映像は同じでも宣言の違いだけで再生できなくなる例も見ます。
H.264 からの変更点を、CTU と四分木、PU / TU、35 種類のイントラ予測、Merge / AMVP、SAO の順にアニメと数値例で追います。「同画質で約 50% 削減」がどう測られた数字かも確認します。
H.265 の土台になる H.264 を復習します。マクロブロック、NAL ユニット、SPS / PPS の役割を実際のビットストリームのバイト列で確かめ、avc1.64001F という文字列の読み方まで追います。
I / P / B フレーム、参照リスト、動き補償、GOP を図とアニメで整理します。B フレームは「P のさらに差分」ではなく参照リストを 2 本持つフレームです。キーフレーム間隔がシークの粒度と遅延を決める理由も扱います。
DCT・量子化・エントロピー符号化を 8×8 画素の実例で最後まで追い、QP を上げると何が起きるかを数字で確かめます。情報を捨てているのは DCT ではなく量子化だと分かる章です。