More Related Content Similar to Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット (20) Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット20. ③ 放送同時配信
20
持続可能な
運用技術が必要
放送送出
マスター
SCTE-104
INS ENC
• SDI映像
• SDI映像
• SCTE-104
本編オリジン
SSAI
CM
オリジン
CDN
視聴
端末
本編TS
CM TS
一本化m3u8
放送局 クラウド
Video
Router
• 配信映像
• SCTE-35
ADs
広告挿入
自動化システム
~ SCTE-104 ~
(Splicing Operation Message Loop)
splice_inset_type 1
splice_event_id 4 CM ID
unique_program_id 2 番組ID
pre_roll_time 2
break_duration 2 CM尺
avail_num 1 CM ID
avail_expected 1
auto_return_flag 1
SSAIを放送システム連携
完全自動化
PC・スマホ向けはHLS
21. 課題
21
端末 スマホ・PC ブラウザ Hybridcast HbbTV
再生API MSE
Native
MSE
Native
プレーヤ JS
(+コンテナ変換)
JS
(dashNX)
配信方式 HLS
(MPEG-2 TS)
MPEG-DASH
(ISOBMFF fMP4)
24. CMAF
• Common Media Application Format
• メディアファイルフォーマットを統一
• アップル・MSFTで検討開始し、CTA Wave の各社がサポート
• 2018年1月 ISO/IEC 23000-19 として発行
24
コンテナとして ISOBMFF fMP4 を採用
“Manifest formats are not specified in this
document”
25. 必要なもの(VOD)
• プレーヤ
• エンコード・パッケージング
25
iOS ブラウザ
iOS10 から対応
iOS11 & iPhone7 以降は HEVC にも対応
MSE ブラウザ
DASH DASH fMP4 サブセットとして対応
HLS hls.js など対応
DASH ffmpeg+MP4Box, AWS MediaConvert, …
HLS AWS MediaPackage, AWS MediaConvert, …
26. HEVC プロファイル
26
Media
Profile
Profile Lv
colour_p
rimaries
in VUI
transfer_characteri
stics in VUI
Max
H
Max
W
Max
FPS
HHD8
Main
MainTier
4.1 BT.709 BT.709 OETF 1080 1920 60
HHD10
Main10
MainTier
4.1 BT.709 BT.709 OETF 1080 1920 60
UHD8
Main
MainTier
5.0 BT.709 BT.709 OETF 2160 3840 60
UHD10
Main10
MainTier 10-bit
5.1
BT.709
BT.2020
BT.709 OETF
BT.2020 OETF
2160 3840 60
HDR10
Main10
MainTier 10-bit
5.1 BT.2020
BT.2100 PQ
BT. 2020 EOTF
2160 3840 60
HLG10
Main10
MainTier 10-bit
5.1 BT.2020
BT.2100 HLG OETF
BT.2020 EOTF
2160 3840 60
30. セグメント ex.10-12s
フラグメント ex.2-6s
CMAF media object model
30
Movie
Fragment
Box
(moof)
Media Data Box
(mdat)
Movie
Fragment
Box
(moof)
Media Data Box
(mdat)
フラグメント ex.2-6s
Movie
Fragment
Box
(moof)
Media Data Box
(mdat)
フラグメント ex.2-6s
Movie
Fragment
Box
(moof)
Media Data Box
(mdat)
31. セグメント
CMAFチャンクCMAFチャンクCMAFチャンク
フラグメント
CMAF media object model
31
Movie
Fragment
Box
(moof)
Media Data
Box
(mdat)
moof mdat
フラグメント フラグメント
moof mdat ... moof mdat moof mdat ... moof mdat moof mdat ...
...
Movie
Fragment
Box
(moof)
Media Data
Box
(mdat)
Movie
Fragment
Box
(moof)
Media Data
Box
(mdat)
ENC flush ENC flush ENC flush
フラグメント開始 IDR
ランダムアクセス単位 フラグメント
シームレス切替単位 フラグメント
最小チャンク単位 1f
低遅延化が可能
33. 必要なもの
① CMAF chunk 出力可能なライブエンコーダ
– harmonic Electra XOS*・MEDIAEXCEL HERO LIVE*
– 短尺フラグメントである程度代用
33
34. 必要なもの
③ ファイルサイズ確定前に逐次 PUSH 可能な配信環境
– HTTP/1.1 … chunked_transfer_encoding@HTTP/1.1対応環境
④ chunk単位で取得しながらデコーダに渡せるプレーヤ
– XHRでセグメントごと取得して再生 ⇒ Fetch API で部分取得+再生
34
エンコーダ ① と一緒
オリジンサーバ node.js + node-gpac-dash module
CDN AMD, CF, ...
DASH dash.js, THEOplayer, Shaka Player, VisualOn MediaPlayer+, ...
HLS THEOplayer, ShakaPlayer, VisualOn MediaPlayer+, ...
35. 検証
① VisualOn HTML5 Player (DASH)
https://www.visualon.com/index.php/html5-player-low-latency-
demo/ より
35
36. 検証
36
<?xml version="1.0" encoding="utf-8"?>
<MPD availabilityStartTime="1970-01-01T00:00:00Z" id="Config part of url maybe?"
maxSegmentDuration="PT8S" minBufferTime="PT1S" minimumUpdatePeriod="P100Y"
profiles="urn:mpeg:dash:profile:full:2011" publishTime="2019-02-19T12:00:12Z"
timeShiftBufferDepth="PT5M" type="dynamic"
xmlns="urn:mpeg:dash:schema:mpd:2011">
<BaseURL availabilityTimeComplete="false"
availabilityTimeOffset="7.000000">https://vm2.dashif.org/livesim-
chunked/chunkdur_1/ato_7/testpic4_8s/</BaseURL>
<Period id="p0" start="PT0S">
<AdaptationSet contentType="audio" lang="eng" segmentAlignment="true">
<SegmentTemplate duration="384000"
initialization="$RepresentationID$/init.mp4"
media="$RepresentationID$/$Number$.m4s" startNumber="0" timescale="48000" />
<Representation audioSamplingRate="48000" bandwidth="36997"
codecs="mp4a.40.2" id="A48" mimeType="audio/mp4" startWithSAP="1">
<AudioChannelConfiguration
schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"
/>
</Representation>
</AdaptationSet>
<AdaptationSet contentType="video" maxFrameRate="30" maxHeight="720"
maxWidth="1280" par="16:9" segmentAlignment="true">
<SegmentTemplate duration="122880"
initialization="$RepresentationID$/init.mp4"
media="$RepresentationID$/$Number$.m4s" startNumber="0" timescale="15360" />
<Representation bandwidth="303780" codecs="avc1.64001e" frameRate="30"
height="360" id="V300" mimeType="video/mp4" sar="1:1" startWithSAP="1"
width="640" />
</AdaptationSet>
</Period>
</MPD>
セグメント長 8s
フラグメント長 1s
ビットレート 300kbps
38. 検証
38
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
...
profiles="urn:mpeg:dash:profile:isoff-live:2011"
type="dynamic"
minimumUpdatePeriod="PT500S"
suggestedPresentationDelay="PT6S"
availabilityStartTime="2019-02-19T06:00:03Z"
publishTime="2019-02-19T08:46:51Z"
timeShiftBufferDepth="PT18.0S"
minBufferTime="PT6.0S">
<Period start="PT0.0S">
<AdaptationSet contentType="video"
segmentAlignment="true" bitstreamSwitching="true" frameRate="30000/1001">
<Representation id="0"
mimeType="video/mp4" codecs="avc1.64001f" bandwidth="2000000" width="1280" height="720"
frameRate="30000/1001">
<SegmentTemplate
timescale="1000000" duration="6000000" availabilityTimeOffset="5.967"
initialization="1550556003/init-stream$RepresentationID$.m4s" media="1550556003/chunk-
stream_t_$RepresentationID$-$Number%05d$.m4s" startNumber="1">
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet contentType="audio"
segmentAlignment="true" bitstreamSwitching="true">
<Representation id="1"
mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="96000" audioSamplingRate="48000">
<AudioChannelConfiguration
schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
<SegmentTemplate
timescale="1000000" duration="6000000" availabilityTimeOffset="5.979"
initialization="1550556003/init-stream$RepresentationID$.m4s" media="1550556003/chunk-
stream_t_$RepresentationID$-$Number%05d$.m4s" startNumber="1">
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
セグメント長 6s
チャンク長 1f
ビットレート 2Mbps
39. CMAF media object model
39
メリット
超低遅延でライブ配信を提供
大規模配信に対応
スポーツなど活用先が期待される
デメリット
設備環境の対応はこれから
少ないバッファと高い安定再生は
トレードオフ(信頼性のための遅延)
HTTP/2, HTTP/3(QUIC)への適用にも注視
※ 個人の感想です
40. 活用検討
• InterBEE2018 IPTVフォーラム(フジテレビ)展示
• 低遅延CMAF(2~5秒程度)にて、SCTE-35 に災害通知を重
畳、スタートオーバー視聴でも、通知表示と最新映像へ自動シーク
• timed media により、ネット配信でありながら負荷を抑えつつ、安
心・安全の情報伝達に配慮できる可能性を検討
40
フジテレビ InterBEE
送出設備
(番組・報道)
CMAF
エンコード
パッケージ
オリジンサーバ
iPhone
ハイブリッドキャストテレビ
デモ用遠隔制御
42. まとめ
• HLS でも DASH でも fMP4
• MSE のテレビブラウザでも hls.js で軽く動いた
• iOS も いまどき の端末はほぼ対応
• 超低遅延配信はこれから&トレードオフの要素もある
42
共通フォーマットとして期待される
適用先によっては有用