Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット

2.871 Aufrufe

Veröffentlicht am

動画配信の課題とCMAF活用のメリット・デメリットと題して、標準化されたメディアファイルフォーマットCMAFについてデモを交えて解説

Veröffentlicht in: Technologie
  • Paid To Write? Earn up to $200/day on with simple writing jobs.  http://t.cn/AieXSfKU
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Tokyo Video Tech #2 動画配信の課題とCMAF活用のメリットデメリット

  1. 1. 動画配信の課題と CMAF 活用のメリット・デメリット maitou@fujitv Tokyo Video Tech #2 UNTITLED
  2. 2. 2 自己紹介
  3. 3. 自己紹介 • まいとう(伊藤 正史) • 浜松市出身 42歳 • 技術開発 • 放送・通信連携 • 動画配信 • 視聴データ • 標準化 3
  4. 4. 趣味 4 北海道 プログラミング
  5. 5. 5 北海道+プログラミング
  6. 6. 6 暗号
  7. 7. 経歴 7 送出 回線
  8. 8. 8 臨時災害放送局への技術協力 技術開発(5年目)
  9. 9. アジェンダ • 背景 • CMAF ① 概要 ② デモ ③ メリット・デメリット • まとめ • 今後の取り組み 9
  10. 10. 10 背景
  11. 11. Hybridcast1.0 HbbTV 同様の 放送・通信連携 テレビ画面を HTML5ブラウザ化 提示URLや遷移範囲・動作権限等を 放送マネージ 放送拡張 API 等により 放送と Web を同居可能 IPTV Forum Japan(2013.3)
  12. 12. イメージ 12 放送 通信 (Web) HTML5ブラウザ 放送映像要素 (TV object 要素) 放送API (TV control API)
  13. 13. Hybridcast2.0 13 2014年12月 Hybridcast ブラウザに MSE API 追加 MPEG-DASH が運用可能に
  14. 14. 標準化 ① IPTV Forum ② ARIB (電波産業会) 14 MPEG-DASH への 広色域・HDRに対応検討 主任 4K8Kファイルフォーマット JTG 主任
  15. 15. 技術開発 15 ① 4Kサイマル配信 ② アドレッサブルTV ③ 放送同時配信
  16. 16. ① 4Kサイマル配信 16 ①切替 ②復帰 通信放送 あたかもサイマル放送されているかのように4K視聴
  17. 17. ① 4Kサイマル配信 17
  18. 18. ② アドレッサブルTV 18 • 放送でありながら広告等を視聴者単位で差替 映像新聞より (10月22日号) 総務省 放送を巡る諸課題に関する検討会 放送サービスの未来像を見据えた周波数有効活用に関する検討会(6月5日)報告書案より 配信視聴中 放送視聴中 MPEG-DASHマルチピリオド (SourceBuffer.timestampOffset) 動画CM挿入 SCTE-35風の放送メッセージ受信 XHR へのプリキャッシュ機能追加 「放送⇒配信CM」 切替
  19. 19. ② アドレッサブルTV 19
  20. 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. 課題 21 端末 スマホ・PC ブラウザ Hybridcast HbbTV 再生API MSE Native MSE Native プレーヤ JS (+コンテナ変換) JS (dashNX) 配信方式 HLS (MPEG-2 TS) MPEG-DASH (ISOBMFF fMP4)
  22. 22. 課題 • 両方対応するには・・・ – コンテナ – マニフェスト テキストなので変換は容易 22 JSでコンテナ変換 パッケージャでJIT等 組込機器には厳しい場合も 手間・負荷・コスト
  23. 23. 23 CMAF
  24. 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. 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. 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
  27. 27. AWS MediaConvert 27
  28. 28. AWS MediaConvert • MSE PC 28 • iOS • TV
  29. 29. ファイルフォーマットの統一 29 メリット 一つのメディアファイルで済む CDN キャッシュヒット率向上 ストレージコスト低減 MSE ブラウザのテレビで HLS 運用しても軽い HEVC 対応 デメリット HLSネイティブプレーヤ対応は 端末依存 HLS/TS エンコード済コンテンツの 再パッケージ化 広告挿入方法の統一が見えない ※ 個人の感想です
  30. 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. 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 低遅延化が可能
  32. 32. 超低遅延配信 32 seg#1 seg#2 seg#3 ライブエンコード (2sセグメント) 視聴者① (バッファなし) 2s 1s seg#4 seg#4 一瞬で取得しても 1秒待って2秒遅延 seg#1 seg#2 seg#3 視聴者② (3segバッファ) 一瞬で取得すれば 待ちは無いが6秒遅延 seg#1 seg#2 seg#3 seg#4 a b c d a b c d a b c d a b c d 視聴者③ (バッファなし) seg#4 a b 一瞬で取得すれば 待ち無く1秒遅延 1s ライブエンコード (0.5sチャンク) セグメント 2s GOP 2s フレーム構造 後方参照なし CMAFチャンク 0.5s
  33. 33. 必要なもの ① CMAF chunk 出力可能なライブエンコーダ – harmonic Electra XOS*・MEDIAEXCEL HERO LIVE* – 短尺フラグメントである程度代用 33
  34. 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. 35. 検証 ① VisualOn HTML5 Player (DASH) https://www.visualon.com/index.php/html5-player-low-latency- demo/ より 35
  36. 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
  37. 37. 検証 ② dash.js(DASH) http://mediapm.edgesuite.net/will/dash/lowlatency/low-latency- public-example.html より 37
  38. 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. 39. CMAF media object model 39 メリット 超低遅延でライブ配信を提供 大規模配信に対応 スポーツなど活用先が期待される デメリット 設備環境の対応はこれから 少ないバッファと高い安定再生は トレードオフ(信頼性のための遅延) HTTP/2, HTTP/3(QUIC)への適用にも注視 ※ 個人の感想です
  40. 40. 活用検討 • InterBEE2018 IPTVフォーラム(フジテレビ)展示 • 低遅延CMAF(2~5秒程度)にて、SCTE-35 に災害通知を重 畳、スタートオーバー視聴でも、通知表示と最新映像へ自動シーク • timed media により、ネット配信でありながら負荷を抑えつつ、安 心・安全の情報伝達に配慮できる可能性を検討 40 フジテレビ InterBEE 送出設備 (番組・報道) CMAF エンコード パッケージ オリジンサーバ iPhone ハイブリッドキャストテレビ デモ用遠隔制御
  41. 41. 41 まとめ
  42. 42. まとめ • HLS でも DASH でも fMP4 • MSE のテレビブラウザでも hls.js で軽く動いた • iOS も いまどき の端末はほぼ対応 • 超低遅延配信はこれから&トレードオフの要素もある 42 共通フォーマットとして期待される 適用先によっては有用
  43. 43. IPTVFJ 規格での対応検討 実運用への検証・技術開発 有効な活用法検討 W3C, IETF に加えて CTA Wave の動向も注視 今後の取り組み 43
  44. 44. 44 おわり

×