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を残す判断もあります。
この用語を扱ったコラム
似ている形式との違い
関連する用語
最終更新
