CMAF.cmfv.cmfa.cmft.m4s.mp4

Common Media Application Format / シーマフ

HLSとMPEG-DASHの両方から同じセグメントファイルを参照できるようにする、配信用メディアファイルの形式の規格です。fMP4をもとにISO/IECが規格化し、配信の保存容量とCDNのキャッシュを節約できます。

規格
ISO/IEC 23000-19(初版 2018年)
もとになった形式
ISOBMFF(fMP4)
提案
Apple と Microsoft が 2016年に MPEG へ提案
推奨の拡張子
.cmfv(映像)、.cmfa(音声)、.cmft(字幕など文字)。実際は .m4s や .mp4 も多い
暗号化
共通暗号化(CENC)の cenc 方式と cbcs 方式
字幕
IMSC1(TTML)、WebVTT
低遅延
セグメントをさらに小さなチャンクに分けて送れる

配信システムの見積もりや仕様書で「CMAF対応」と書かれていても、HLSやDASHとどういう関係なのか分かりにくいものです。CMAFは配信方式ではなく、セグメントの形式の規格です。HLSとDASHが同じセグメントを使えるようにして、同じ映像を2通り作って保存する無駄をなくすのが目的です。

CMAFが使われる場面

多くの動画配信サービスは、iPhone向けにHLS、AndroidやWeb、テレビ向けにMPEG-DASHを出しています。以前はHLS用にMPEG-2 TS、DASH用にfMP4と、同じ映像を別々の形式で作ってサーバーに置いていました。CMAFに揃えれば、セグメントは1組で済み、m3u8とMPDの2種類のマニフェストだけを用意すれば両方の方式で配信できます。保存容量が約半分になり、CDNのキャッシュの効率も上がります。

ライブ配信の低遅延化でも使われます。CMAFのセグメントを1秒未満のチャンクに分け、できた部分から順に送り出すことで、セグメントが完成するのを待たずにプレーヤーへ届けられます。低遅延のDASHや、LL-HLSの部分セグメントは、この仕組みを前提にしています。

このとき、できたチャンクをHTTPのchunked transfer encodingで送れることが前提になります。DASH-IFの低遅延配信の指針では、パッケージャへの入力からCDNのエッジまでこの方式に対応している必要があるとされており、低遅延DASHもその上に成り立っています。

CMAFの仕組み

CMAFの土台はfMP4です。初期化の情報をまとめたヘッダーと、数秒ずつのメディアのかたまり(moof と mdat のボックス)を並べる構造で、1つのトラックには映像か音声か字幕のどれか1種類だけを入れます。コーデックや解像度の範囲、タイムスタンプの持ち方などに条件を付けることで、HLSとDASHのどちらのプレーヤーでも同じように解釈できるようにしています。

字幕も同じ考え方で、IMSC1(TTML)やWebVTTをfMP4に入れた字幕トラックとして扱えます。映像に字幕を焼き込まずに、多言語の字幕を切り替えて配信できます。

CMAFの暗号化とDRMで間違えやすい点

CMAFを採用しても、DRMの組み合わせによってはセグメントを共通にできません。共通暗号化にはcencとcbcsの2つの方式があり、AppleのFairPlayはcbcsを使います。WidevineやPlayReadyはcencで運用されてきましたが、新しい端末ではcbcsにも対応しています。すべての端末で1組のセグメントを使うにはcbcsに揃える必要があり、cbcsに対応しない古い端末が対象に残る場合は、暗号化の方式ごとにセグメントを分けることになります。

セグメントの長さとキーフレームの位置も、HLSとDASHで揃える必要があります。どちらかに合わせてセグメントを切ると、もう片方のプレーヤーで画質の切り替えがうまくいかないことがあるので、パッケージャーの設定で両方の条件を満たすようにします。

よくある質問

CMAFとfMP4の違いは何ですか

fMP4はMP4を細かいかたまりに分けて並べる一般的な形式で、CMAFはそのfMP4に配信のための条件を付けて規格にしたものです。CMAFのファイルはfMP4の一種ですが、fMP4がすべてCMAFの条件を満たすわけではありません。

CMAFの拡張子は何ですか

規格では映像に .cmfv、音声に .cmfa、字幕などに .cmft を推奨しています。実際の配信では .m4s や .mp4 のまま運用されることも多く、拡張子だけでCMAFかどうかは判断できません。

CMAFに対応していないプレーヤーはありますか

HLSのセグメントがMPEG-2 TSしか使えなかった時代のプレーヤーや、古いテレビ、セットトップボックスでは、fMP4のセグメントを再生できないことがあります。対象の端末に古い機種が多い場合は、TSのHLSを残す判断もあります。

この用語を扱ったコラム

似ている形式との違い

名前主に使う場面CMAFとの違い
fMP4配信用のMP4CMAFの土台になる一般的な形式。CMAFはfMP4のうち、HLSとDASHで共通に使えるように条件を絞ったもの
MPEG-2 TS放送・従来のHLS従来のHLSのセグメント形式。DASHのプレーヤーでは扱いにくく、HLSとDASHで共通化するならCMAFを使う
MPEG-DASH配信方式DASHはマニフェストと配り方の規格。CMAFはその中で運ばれるセグメントの形式の規格で、層が違う

関連する用語

最終更新