云直播对直播时移进行了全新升级,您可以在控制台创建时移模板便捷开通新版直播时移功能。按拼接规则对直播时移播放地址进行组装,可以在直播中回看直播内容。同时直播时移功能已接入API3.0,请参见 新版直播时移相关接口。通过本文,您将了解新版直播时移的原理和播放请求方式。
注意事项
新版直播时移目前支持3万人同时观看,如有更大并发时移播放需求,请 提交工单 与我们联系。
如播放域名配置了播放鉴权并设定了有效期,鉴权有效期到期后该时移播放地址将失效。
实现时移播放,需要为时移模板绑定推流域名,同时在播放地址的基础上追加 时移播放参数。
原通过点播域名拉取时移方式需要通过工单方式评估,相关文档请参见 旧版直播时移,为了更好的时移体验,推荐使用当前直播时移方案。
前提条件
时移原理
直播时移通过在直播过程中将媒体流转换成 TS 存储、同时在云端建立 TS 和直播流实时时间的索引关系实现直播回看功能。常用于电视台重播、赛事精彩回看等场景。客户端通过 HLS 协议分发,在 M3U8 请求参数中指定回看的时间(详细参数见 播放请求)。
播放请求
一般 HLS 直播播放地址格式为
http://domain/appname/stream.m3u8
,要支持时移播放需要在此地址上追加时移参数,下文按时移回看方式分别介绍两种时移相关参数:回看 指定时间区间:可用于播放赛事精彩画面场景,播放内容截止到指定时间。
回看 相对当前时间的偏移:可用于延迟直播场景,播放内容截止到直播结束。
播放指定时间区间参数
字段名称 | 含义 | 是否必选项 | 例子 |
txTimeshift | 取值 on - 开启直播新时移 | 是 | txTimeshift=on |
tsStart | 时移开始时间,tsStart 与 tsEnd 间隔不能小于1个 Ts 分片时长,不能大于6小时 | 是 | tsStart=20121010010101 |
tsEnd | 时移结束时间,tsStart 与 tsEnd 间隔不能小于1个 Ts 分片时长,不能大于6小时 | 是 | tsEnd=20121010010102 |
tsFormat | tsStart 和 tsEnd 的格式,取值格式 {timeformat}_{unit}_{zone} timeformat 取值: unix - unix 时间戳, 选了 unix 后面的时区 zone 可以忽略 human - 人类可以读的时间 20121010010101 unit:s/ms,单位: s/ms zone:时区分为东区和西区: 东区的取值范围为1~12 西区的取值范围为 -12~-1 | 是 | tsFormat=unix_s tsFormat=human_s_8 |
tsCodecname | 转码流需要指定模板名称,原始流和水印流不带这个字段 | 否 | tsCodecname=hd |
请求示例1(unix 格式时间)
http://example.domain.com/live/stream.m3u8?txTimeshift=on&tsFormat=unix_s&tsStart=1675302995&tsEnd=1675303025&tsCodecname=test
请求示例2(human 格式时间)
http://example.domain.com/live/stream.m3u8?txTimeshift=on&tsFormat=human_s_8&tsStart=20230202095635&tsEnd=20230202095705&tsCodecname=test
播放相对当前时间的偏移参数
字段名称 | 含义 | 是否必选项 | 例子 |
txTimeshift | 取值 on - 开启直播新时移 | 是 | txTimeshift=on |
tsDelay | 相对当前时间早多少秒 | 是 | tsDelay=30 播放当前时间30s之前的内容 |
tsCodecname | 转码流需要指定模板名称 | 否 | tsCodecname=2000 |
请求示例
http://example.domain.com/live/stream.m3u8?txTimeshift=on&tsDelay=30&tsCodecname=test
时移鉴权参数
时移索引查询
通过控制台直播时移-索引信息可查询某段时间内的时移流列表,查看详情可查询单个流的详情数据。
通过云 API 也可查询时移流列表和单个流详情,具体参考文档:
查询时移流列表