直播时移

最近更新时间:2023-08-02 17:13:31

我的收藏
云直播对直播时移进行了全新升级,您可以在控制台创建时移模板便捷开通新版直播时移功能。按拼接规则对直播时移播放地址进行组装,可以在直播中回看直播内容。同时直播时移功能已接入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

时移鉴权参数

时移和直播鉴权参数保持一致,具体可以 参考文档(官网生成 HLS 地址的有效期为1天,1天后需要重新生成)。

时移索引查询

通过控制台直播时移-索引信息可查询某段时间内的时移流列表,查看详情可查询单个流的详情数据。 通过云 API 也可查询时移流列表和单个流详情,具体参考文档: