替换视频流参数

替换视频流参数是一项可选的操作。如果您想让播放器或应用在系统请求 HLS 或 DASH 播放列表时替换视频流创建参数的默认值或者替换变体的选项或默认顺序,则可执行此操作。对于 IMA SDK服务器端信标 (SSB)DAI API 实现,您都可从播放器或应用中传递这些参数。

您还可以替换其他默认广告代码参数

替换变体选项和顺序

默认的播放列表顺序由发布商决定。如果您未指定任何排序参数,系统便会按照发布商设置的原始顺序返回播放列表。

您可以替换在创建视频流的过程中指定的变体选项和排序参数,以便指定在响应主播放列表请求时应包含哪一部分变体,以及这些变体应采用何种顺序。如果您想根据内容观看者的具体情况让某个特定变体优先于另一个变体,替换视频流变体参数可能会非常有用。

这部分变体及其顺序在相应视频流的整个播放期内将保持不变。这些参数会作为以下形式被接受:adTagParameters 结构的一部分(使用 IMA SDK 参数时)、DAI API 或额外的 HTTP GET 参数(使用 SSB 时)。

参数 流式传输协议 说明 示例
dai-ot
                         
HLS

这是顺序类型信息,用于描述 dai-ov 参数所指定的值的类型。具体应是表示带宽(最接近的匹配)的“bw”,或是基于带宽和分辨率(完全匹配)的排序。必须至少指定一个带宽或分辨率。默认值为“bw”。

如果指定了 dai-ot 参数,而未指定 dai-ov 参数,播放列表将按照原始顺序返回所有变体。

dai-ot=bw
dai-ot=bw_res
dai-ov HLS

这是一系列以英文逗号分隔的值,用于指定要返回的媒体播放列表的顺序。必须和 dai-ot 搭配使用,并且每个值都应与 dai-ot 参数所述的类型相同。可使用特殊值“audio”来指定相应的音频变体。

如果多个变体具有相同的顺序值(例如,带宽相同但分辨率不同的两个变体),则这些变体会保持原始顺序。

dai-ot=bw&dai-ov=2025837,1406061

dai-ot=bw_res&dai-ov=1400000:640x360,audio

dai-sr HLS、DASH 要返回的视频变体的带宽范围。要选择所有较高带宽,请仅指定 startBandwidth。要选择所有较低带宽,请仅指定 :endBandwidth(以英文冒号“:”为前缀)。 dai-sr=1300000:2500000
dai-aor HLS、DASH 要返回的音频变体的带宽范围。若要选择所有较高带宽,请仅指定 startBandwidth。若要选择所有较低带宽,请仅指定 :endBandwidth(以英文冒号“:”为前缀)。 dai-aor=60000
dai-os HLS 要放置在主播放列表顶部的视频变体带宽。系统会选择值与 startBandwidth 最接近的变体。如果有两个值与此值同等接近,系统会选择最低值。如果提供了此参数,而未提供 dai-aor,系统将排除所有仅限音频的变体。 dai-os=1700000
dai-excl HLS、DASH 要从播放列表中排除的转译版本。支持 subtitlescodecaudio-langsubtitle-langiframe。您可使用单个值或一系列以英文逗号分隔的值来排除音频编解码器、视频编解码器以及音频和/或字幕语言。

dai-excl=subtitles
dai-excl=iframe


一个编解码器
dai-excl=codec:ec-3

多个编解码器
dai-excl=codec:ec-3,codec:ac-3


一种音频语言
dai-excl=audio-lang:en

一种字幕语言
dai-excl=subtitle-lang:en

多项选择
dai-excl=audio-lang:en,
audio-lang:es,
subtitle-lang:en,
subtitle-lang:es

其他可替换参数

参数 流式传输协议 说明 示例
dai-ah HLS、DASH 指定某个直播活动是否应该应用暂停显示广告的时长。必须在直播活动中指定暂停显示广告的时长。 启用“暂停显示广告的时长”:
dai-ah=1
dai-dvr HLS、DASH 用户可以向后滚动并保持播放流畅的直播内容和广告的 DVR 时长(以秒为单位)。

此时长的当前默认值是 100 秒,或是在直播活动设置期间指定的值。不过,您可为每个直播活动指定一个新的上限(对于 SSB,最长可以指定 100 秒;如果使用 SDK 或 API,最长可以指定 1800 秒)。如果您需要更长的 DVR 时长,请与您的客户经理联系。

指南和用法

所返回播放列表的实际 DVR 时长可能会略长或略短,具体取决于基本细分的时长。此外,不同变体之间也可能会略有不同。

实际回溯期的最大值不应高于事件中指定的 DVR 回溯期值。否则,系统会自动为此值设置上限。此外,系统也会为 SSB 视频流的 DVR 回溯期设置一个比 SDK 或公共 API 视频流更低的上限值。

虽然我们会尽最大努力返回兼容的清单,但指定非常小或非常大的值可能会导致出现播放问题。您需要使用预期的 DVR 回溯期时长全面测试播放,以确保一切正常。

请避免为不同设备使用不同的回溯期。从效果的角度来看,为一部设备指定 30 秒的回溯期时长,但为其他设备指定 31 秒或 35 秒,这种做法并不合适。您应改用不同范围的回溯期(例如,为一组设备指定 35 秒的回溯期时长,为另一组设备指定 10 分钟的回溯期时长,等等)。这样可以实现更高效的资源分配和效果。

dai-dvr=60

参数替换示例

选择两个变体

请求


https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=2025837,1406061
 

响应


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8

 
选择一个音频变体和一个视频变体

请求


https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=audio,1406061
 

响应


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8

 
根据带宽和分辨率进行匹配

请求


https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw_res&dai-ov=1400000:640x360,audio
 

响应


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8

 
根据带宽范围进行匹配

请求


https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-sr=1300000:2500000&dai-aor=60000
 

响应


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8

 
指定起始带宽

请求


https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-os=1700000
 

响应


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8

 
排除字幕

包含字幕的原始清单


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="en",NAME="English",AUTOSELECT=YES,URI="tt-en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="de",NAME="Deutsch",AUTOSELECT=YES,URI="tt-de.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8

 

请求


https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-excl=subtitles
 

响应


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8

 
排除编解码器

包含 ac-3、eac-3 的原始清单


#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6107776,RESOLUTION=1920x1080,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6107776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2212301,RESOLUTION=960x540,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2212301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-eac3.m3u8",GROUP-ID="AUDIO-EAC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES

 

排除一个编解码器

请求


http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3
 

响应


#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES

 

排除多个编解码器

请求


http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3,codec:ac-3
 

响应


#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES

 
该内容对您有帮助吗?
您有什么改进建议?