通知

仅在 Google Ad Manager 360 中提供。

基于 HTTP 的动态自适应流式传输 (DASH)

视频点播编码 (DASH)

请参阅支持的 DASH 功能和集成详情的完整列表。

书签跳转到清单和内容要求 | 软件包、平台和播放器

多时段清单与单时段清单

Ad Manager 支持提取 DASH 的多时段清单和单时段清单。

对于单时段清单,发布商提供的 DASH 视频流只有一个时段,其中包含所有内容和插播广告投放机会,而不是使用多个时段来区分它们。DAI 会在每次提取时将单时段清单转换为多时段清单,从而支持单时段清单。

启用调节功能后,您可以将清单选为单时段清单。

为单时段 MPEG-DASH 启用调节功能

若要使用 VOD DAI,请设置一个内容来源,以便 Google Ad Manager 可以提取视频点播 (VOD) 内容。DAI 将使用 MRSS Feed 元素来确定是否应对内容进行 DASH 单时段清单调节。

  • ingestUrl 设置为 MPD 内容网址。
  • preconditioned 设置为 false。
    如果 preconditioned 设置为 true,则系统不会为中贴片广告插播时间点调节单时段 DASH 清单。
  • 清单将根据清单中的 Event@presentationTime 属性进行拆分,即使广告插入点因以下原因不一致也是如此。
  • 如果清单中没有任何 EventStream 元素,则系统会根据广告插入点拆分清单。
  • 广告插入点需要与媒体片段边界对齐,否则调节将会失败。
  • splice_insert 事件后的 100 毫秒内设置广告插入点。这由广告插入点和 Event@presentationTime 属性决定。

清单和内容要求

对于多时段清单

多时段 MPEG-DASH 清单

对多时段 MPEG-DASH 清单的预期

Google DAI 对原始 MPD 执行以下验证。

MPD 元素验证

请设置以下 MPD 元素验证:

  • type 设置为 static
  • profiles 设置为以下值:
    • urn:mpeg:dash:profile:isoff-on-demand:2011.
    • urn:mpeg:dash:profile:isoff-live:2011.
  • 对于同一 MPD 中引用的整体 DASH 内容,必须使用 HTTPS。

Period 元素验证

“Period”元素必须满足以下要求:

  • 每个时段都必须指定一个 duration 属性。
  • 每个时段都不得指定 start 属性。
  • 音频和视频自适应设置在各个时段必须保持一致。

对于单时段清单

单时段 MPEG-DASH 清单 (Alpha)

此功能目前处于 Alpha 版测试阶段
仅面向少数发布商提供。

对单时段 MPEG-DASH 清单的预期

Google DAI 对原始 MPD 执行以下验证。

内容要求

DASH 内容必须遵循 DASH-IF Interoperability Points(DASH-IF 互操作性要点)中指定的所有规则。

MPEG-DASH

Google DAI 会执行以下验证,并对原始 MPD 做出以下假设。

  1. MPD 元素验证:
    • @profiles 设置为 urn:mpeg:dash:profile:isoff-live:2011
    • @type 设置为 static
    • MPD 有且只有一个 Period 元素。

    <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" maxSegmentDuration="PT2S" minBufferTime="PT2S">

     <Period …>

     …

     </Period>

     …

    </MPD>

  1. Period 元素验证:
    • Period 至少有一个 @AdaptationSet 元素。
    • 必须至少包含一个嵌套的 EventStream 元素,且该元素包含的 Event 元素用要拆分的时段的接合点编码。如需了解接合点编码要求,请参阅 SCTE-35

    <Period id=”1” start="PT0S">

      <AdaptationSet …>

        …

      </AdaptationSet>

      <AdaptationSet …>

        …

      </AdaptationSet>

    </Period>

  1. AdaptationSet 元素验证必须满足以下条件。
    确保 AdaptationSet 至少有一个 @Representation 元素。
    支持缩略图和字幕自适应集。必须提供字幕自适应集。

    <AdaptationSet mimeType="video/mp4" startWithSAP="1" contentType="text" par="16:9" minWidth="640" maxWidth="640" minHeight="360" maxHeight="360" maxFrameRate="60/2" segmentAlignment="true">

      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"></Role>

      <ContentComponent id="0" contentType="video" />

      <Representation …>

        …

      </Representation>

      <Representation …>

        …

      </Representation>

    </AdaptationSet>

  2. 完成 Representation 元素验证:
    • 确保 @id 不为空。
    • 不得有 @SegmentBase@SegmentList 元素。

    <Representation width="640" height="360" sar="1:1" frameRate="60/2" codecs="avc1.64001e" id="V300" bandwidth="300000">

      …

    </Representation/>

  3. 使用 $Time$ 验证 SegmentTemplate
    • 确保 SegmentTemplate 元素包含一个嵌套的 SegmentTimeline 元素,以便明确指定媒体片段。
    • SegmentTimeline S 元素可以包含用于媒体网址的 S@t 属性。
      • 如果未提供值,则假定第一个 S 元素的值为0,后续 S 元素的值为前一个 S 元素的最早呈现时间和连续时长的和(即,前一个 S@t + @d * (@r + 1))。
      • 未使用 SegmentTemplate@startNumber

      <SegmentTemplate timescale="90000" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Time$.m4s">

        <SegmentTimeline>

          <S t="0" d="270000" r="20" />

        </SegmentTimeline>

      </SegmentTimeline>

  4. Google DAI 支持 ISO-8601 时长的时间分量部分,并且支持可选的整数“天”分量:P0Y0M[n]DT[n]H[n]M[n]S。系统将 1 天视为 24 小时来将“天”分量转换为时长,然后将其加到时间分量中。纳秒是我们认可的最低细分单位。

有效格式示例:

  • P0Y0M
  • P0Y0M2D
  • P2D
  • PT3H
  • PT0H3M
  • P0Y0M0DT0H0M1.000S
  • P0Y0M1DT2H4M10S
  • PT0.000000001S

无效格式示例:

  • P
  • PT
  • 2007-03-01
  • P5Y0M1DT2H4M1.000S
  • P0Y1.5M1DT2H4M1.000S
  • P0YiM1DT2H4M1.000S
  • P0Y0M.3DT0H0M1.000S
  • 3h
  • PT100,000H

字幕

  1. Google DAI 同时支持 TTML 和 WebVTT 格式的字幕。
  2. Google DAI 支持通过 MRSS Feed 提供的所有辅助信息字幕文件。
  3. 在 DASH 清单中指定的辅助信息字幕文件不会转换,也不会出现在调节后的清单中。如果需要辅助信息字幕,则必须通过 MRSS Feed 指定。

不受支持的 DASH 清单辅助信息字幕

<AdaptationSet

      id="3"

      group="3"

      contentType="text"

      lang="fr"

      mimeType="application/ttml+xml"

      startWithSAP="1">

      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />

      <Representation

        id="textstream_fra=0"

        bandwidth="0">

        <BaseURL>sub/tears-of-steel-fr.ttml</BaseURL>

      </Representation>

</AdaptationSet>

  1. 支持在 AdaptationSet 中通过 contentType="text" 和 SegmentTimeline 指定的片段式字幕,但字幕片段也需要将其片段边界与接合点标记对齐,才能通过验证。

支持的 DASH 清单片段式字幕

<AdaptationSet

      id="2"

      group="3"

      contentType="text"

      lang="en"

      mimeType="application/mp4"

      codecs="stpp.ttml.im1t"

      startWithSAP="1">

      <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle" />

      <SegmentTemplate

        timescale="1000"

        initialization="tears-of-steel-en-$RepresentationID$.dash"

        media="tears-of-steel-en-$RepresentationID$-$Time$.dash">

        <SegmentTimeline>

          <S t="0" d="4000" r="140" />

          <S d="3000" />

        </SegmentTimeline>

      </SegmentTemplate>

      <Representation

        id="texttream_eng=1000"

        bandwidth="1000">

      </Representation>

</AdaptationSet>

SCTE-35

  1. 如果接合点通过以下验证,Google DAI 只会将接合点识别为 DASH MPD@Period@EventStream@Event 元素中携带的 SCTE-35 标记:
    • 采用 Base64 编码的 SCTE-35 数据必须包含在 Event@Signal@Binary 元素中。
      仅支持 splice_insert
    • 包含带有 SCTE-35 标记的 EventsEventStream 元素必须将 schemeIdUri 设置为 urn:scte:scte35:2014:xml+bin
    • 必须设置 EventStream@timescale,否则系统会假定将其设置为 1(时间刻度为秒)。
    • 必须为每个 Event 元素设置 Event@presentationTime
    • Event@Signal@namespace 必须具有命名空间 http://www.scte.org/schemas/35/2016
    • EventStream 中的事件必须按 Event@presentationTime 进行排序。
  2. Splice_insert 假设
    EventStream 中的所有 splice_insert 标记都将被视为在广告插播时间点投放广告的机会,也就是说,单时段调节不区分 cue-out 和 cue-in,而是将所有信号都视为在广告插播时间点投放广告的机会。
  3. 用于 DASH VOD 的 Google DAI 不支持拆分片段,因此接合点的呈现时间与最近的片段边界最多只能相差 100 毫秒

VOD 支持的平台、打包器和播放器

平台

设备/浏览器

版本

DRM

Chrome 浏览器

66+

Widevine

Firefox 浏览器

60+

Widevine

Microsoft Edge

18

PlayReady

Android

4.4+

Widevine

Chromecast

第 2 代、Ultra (CAF API)

Widevine

Roku

3、4(固件 8.1)

PlayReady

 

打包器

Shaka

2.1.0

多时段支持

Bitmovin

1.47.3

多时段支持

统一流式传输

1.11.17 单时段支持
 

播放器

Shaka

2.4.2

推荐用于测试

Bitmovin

v7

 

Exo-Player

2.8.2

 

Dash.js

2.0

 
对于与 DAI 问题排查或服务中断相关的任何问题,请与发布商支持团队联系

该内容对您有帮助吗?

您有什么改进建议?
true
动态广告插播 (DAI) 入门指南

我们专为跨直播、线性和点播视频内容打造无缝广告体验而制作的指南。
查看该指南

搜索
清除搜索内容
关闭搜索框
主菜单
3812259021475417245
true
搜索支持中心
true
true
true
true
true
148
false
false