DASH 向けエンコーダ統合

以下は、MPEG-DASH(ISO/IEC 23009-1:2014(E))のライブまたはリニア動画ストリームとアド マネージャーのダイナミック広告挿入(DAI)との統合に関するガイドラインです。

要件全般

デジタル著作権管理(DRM)は、MPEG DASH 共通暗号化(CENC)を通じてサポートされます。

サポートされるプロファイル:

  • 同じ MPD で参照される DASH コンテンツでは、全体にわたり HTTPS を使用する必要があります

  • ISO-BMFF ライブ プロファイル

事前の条件付け

メディア プレゼンテーションを複数の期間に分割し、各ミッドロールの CUE-OUTCUE-IN を期間の境界に合わせます。各期間の始めと終わりのコンテンツ セグメントは、全フレームが 1 つの期間に含まれるように準備します。

キューポイントはキーフレームまたは IDR フレームに揃え、期間の先頭に配置します。キューポイントがセグメントの自然な境界と合致しない場合は、必要に応じて短いセグメントの期間を最後に設けます。

広告ブレークのシグナル設定に関するガイドライン

1 つの広告ブレークに関連するすべてのコンテンツは単一の期間に含めます。該当の期間には、置き換えるコンテンツ セグメントのみが含まれている必要があります。

  • 広告ブレークの期間には、DAI MPEG-DASH MPD のサンプル項目で指定されているフォーマットに基づいて CUE-OUT のシグナルを設定するとともに、広告ブレークの継続時間を含める必要があります。

MPD の更新に関するガイドライン

サポートされるプラットフォームと相互運用性

プラットフォーム

デバイスまたはブラウザ

バージョン

DRM

Chrome ブラウザ

66+

Widevine

Firefox ブラウザ

60+

Widevine

Microsoft Edge

18

PlayReady

Android

4.4+

Widevine

Chromecast

Gen2、Ultra(CAF API)

Widevine

Roku

3、4(ファームウェア 8.1)

PlayReady

 

パッケージ生成ツール

Shaka

2.1.0

複数期間のサポート

Bitmovin

1.47.3

複数期間のサポート

統合ストリーミング

保留

 

プレーヤー

Shaka

2.4.2

テストにおすすめ

Bitmovin

v7

 

Exo-Player

2.8.2

 

Dash.js

2.0

 
 

DAI MPEG-DASH MPD のサンプル項目

広告ブレークの CUE-OUT インジケータは、MPD マニフェスト内で次のいずれかの方法により設定します。

  • SCTE-35 の EventStream 要素に schemeIdUri="urn:scte:scte35:2014:xml+bin" を指定(ANSI/SCTE 214-1 2015 仕様の定義どおり)

    例:

    <Period start="PT0S" id="1">     <!-- コンテンツの期間 -->    ..    </Period> <Period start="PT32S" id="2">     <!-- 広告ブレークの期間 -->     <!‑- この期間の最初のセグメントは広告ブレークの開始時点、最後のセグメントは広告ブレークの終了時点となります ‑‑>           <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">     <Event duration="2520000" id="1">     <!‑‑ このイベントで指定される継続時間は、期間の実際の継続時間にできるだけ近づける必要があります ‑‑>        <scte35:Signal>          <scte35:Binary>            /DAlAAAAAAAAAP/wFAUAAAAEf+/+kybGyP4BSvaQAAEBAQAArky/3g==          </scte35:Binary>        </scte35:Signal>       </Event>     </EventStream>  </Period> <Period start="PT60S" id="3">     <!-- コンテンツの期間 -->    .. </Period> </MPD>  <MPD>
    <Period start="PT0S" id="1"> 
       <!-- コンテンツの期間 -->
       ..
       </Period>

    <Period start="PT32S" id="2">
        <!-- 広告ブレークの期間 -->
        <!‑- この期間の最初のセグメントは広告ブレークの開始時点、最後のセグメントは広告ブレークの終了時点となります ‑‑>
         
        <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
        <Event duration="2520000" id="1">

        <!‑‑ このイベントで指定する継続時間は、期間の実際の継続時間にできるだけ近づける必要があります ‑‑>

           <scte35:Signal>
             <scte35:Binary>
               /DAlAAAAAAAAAP/wFAUAAAAEf+/+kybGyP4BSvaQAAEBAQAArky/3g==
             </scte35:Binary>
           </scte35:Signal>
          </Event>
        </EventStream> 
    </Period>

    <Period start="PT60S" id="3"> 
       <!-- コンテンツの期間 -->
       ..
    </Period>
    </MPD>
     
  • SCTE-35 の EventStream 要素に schemeIdUri="urn:scte:scte35:2013:xml" を指定(ANSI/SCTE 214-1 2015 仕様および SCTE-35 2017 の定義どおり)例:

    <MPD>
    <Period start="PT0S" id="1"> 
       <!-- コンテンツの期間 -->
       ..
    </Period>

    <Period start="PT32S" id="2">
       <!-- 広告ブレークの期間 -->
       <!‑‑ この期間の最初のセグメントは広告ブレークの開始時点、最後のセグメントは広告ブレークの終了時点となります ‑‑>

       <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
       <Event duration="2520000" id="1">

       <!‑‑ このイベントで指定する継続時間は、期間の実際の継続時間にできるだけ近づける必要があります ‑‑>

           <scte35:SpliceInfoSection>
              <scte35:SpliceInsert outOfNetworkIndicator="true" spliceImmediateFlag="true">
              <scte35:BreakDuration autoReturn="true" duration="2520000"/>
              </scte35:SpliceInsert>
            </scte35:SpliceInfoSection>
          </Event>
        </EventStream> 
    </Period>

    <Period start="PT60S" id="3"> 
       <!-- コンテンツの期間 -->
       ..
    </Period>
    </MPD>
     

    CUE-OUT イベントで指定する広告ブレークの継続時間は、期間内の全セグメントの合計継続時間と完全に一致することが理想的です。

    また、期間の実際の継続時間より短くならないようにする必要があります。

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。