直播时移功能让观众可以像观看点播视频一样,自由控制直播进度。无论直播正在进行还是已经结束,只要在设定的时间范围内,观众就可以随时暂停并无缝续播、回看任意片段或从头开始播放,确保不会错过任何精彩内容。本文介绍如何配置直播时移并生成时移播放地址。
时移可以理解为边推流边录制。启用时移后,服务端会执行以下操作:
timeshift 参数,或使用 start 和 end 参数向服务端请求指定时间点的内容。AppName 下添加触发方式为推流转码的转码配置。详见转码配置。AppName 下添加协议类型为 HLS-ABR 的 ABR 配置。详见ABR 配置。

说明
如果页面显示复用录制到 TOS 配置复选框,请确保未选中该复选框。
| 参数 | 说明 |
|---|---|
AppName | 指定该时移配置的
|
StreamName | 指定该时移配置的
说明
|
录制内容 | 选择用于生成时移内容的流类型。
说明
|
TS 切片时长 | HLS 视频流中每个 TS 分片的时长,单位为秒。取值范围为 3-20 秒。 该值主要影响定位精度和播放稳定性,调整时需要权衡两者:
|
时移天数 | 直播结束后时移内容的保留时长。保留期从直播实际结束时间开始计算。 到期后,系统会自动清理已存储的时移文件,观众无法继续观看时移内容。删除时移配置不会改变已有时移文件的到期时间。 例如,直播在 1 月 1 日 19:00-20:00 进行,时移天数为 1 天时,观众可在 1 月 2 日 20:00 前观看时移内容。 支持选择以下时移天数:
|
| 分发域名 | 选择当前域名空间下的拉流域名,用于生成直播时移播放地址。观众可使用该域名观看时移内容。 |

添加时移配置后,生成时移播放地址并将其传入播放器。
要启用时移播放,播放器需要先使用直播拉流地址播放。观众回看、从头开始观看或选择过去的时间点观看时,生成时移播放地址并传入播放器,以拉取和播放所请求的内容。
说明
如使用 Web 拉流 SDK 播放时移内容,详见直播时移。
相对时移:适用于直播期间,观众需要回看当前直播时间点之前的内容。观众拖动进度条时,播放器计算目标位置与当前直播位置的时间差,单位为秒,并将该值作为 timeshift 参数值生成时移播放地址。
仅在拉流域名开启 URL 鉴权时,在播放地址中追加 &{鉴权参数}。详见配置 URL 鉴权。
原始流和转码流的时移播放地址格式如下:
http(s)://{PullDomain}/{AppName}/{StreamName}{Suffix}.m3u8?timeshift={时间}&{鉴权参数}
原始流的 {Suffix} 留空。转码流的 {Suffix} 为转码配置中的转码后缀,例如 _hd。
HLS-ABR 流的时移播放地址格式如下:
http(s)://{PullDomain}/{AppName}/{StreamName}/abr.m3u8?timeshift={时间}&{鉴权参数}
例如,观众拖动进度条回看 5 分钟前的内容:
http://pull.example.com/live/test.m3u8。http://pull.example.com/live/test.m3u8?timeshift=300。http://pull.example.com/live/test_hd.m3u8?timeshift=300。http://pull.example.com/live/test/abr.m3u8?timeshift=300。播放器使用时移播放地址拉取内容后,会跳转到 5 分钟前的内容并从该位置继续播放。
绝对时移:适用于直播期间或结束后观看指定时间范围内的内容。为播放地址添加 mode、start 和 end 参数。start 和 end 支持秒级 RFC3339 UTC 时间、秒级 Unix 时间戳和 YYYYMMDDHHMMSS 格式。YYYYMMDDHHMMSS 按 UTC+0 解析。例如,20260325153000 表示 2026 年 3 月 25 日 UTC+0 15:30:00。
典型场景包括观众在直播中途进入并希望从头观看,或在直播结束后回看指定时间段的内容,例如 19:00 至 19:30。
mode 决定播放器如何播放请求的时间范围,以及播放到 end 时间后的行为。默认值为 1。
mode=1:按点播方式播放,适用于直播结束后的完整回放或精彩片段回放。服务端返回包含 #EXT-X-ENDLIST 的 M3U8 播放列表。播放器到达 end 时间后自动停止播放,观众可像观看点播视频一样自由拖动进度条。mode=3:按直播方式播放,适用于直播期间,观众从直播开始或此前的某个时间点回看,并在回看结束后继续观看后续直播内容。服务端返回不包含 #EXT-X-ENDLIST 的 M3U8 播放列表。播放至 end 指定的时间后,如直播仍在进行,播放器会继续播放后续直播内容。注意
当 mode=3 时,start 的取值不能早于直播实际开始时间前 2 小时。例如,直播于 2026 年 3 月 25 日 15:00 开始时,最早有效的 start 取值为当天 13:00。更早的值会返回 404 错误。
start:播放开始时间。end:播放结束时间。仅在拉流域名开启 URL 鉴权时,在播放地址中追加 &{鉴权参数}。详见配置 URL 鉴权。
原始流和转码流的时移播放地址格式如下:
http(s)://{PullDomain}/{AppName}/{StreamName}{Suffix}.m3u8?mode={mode}&start={UTC/Unix/Human}&end={UTC/Unix/Human}&{鉴权参数}
原始流的 {Suffix} 留空。转码流的 {Suffix} 为转码配置中的转码后缀,例如 _hd。
HLS-ABR 流的时移播放地址格式如下:
http(s)://{PullDomain}/{AppName}/{StreamName}/abr.m3u8?mode={mode}&start={UTC/Unix/Human}&end={UTC/Unix/Human}&{鉴权参数}
例如,直播在 2026 年 3 月 25 日 15:00-17:00(UTC+0)进行。直播结束后提供完整回放时,可使用以下播放地址:
http://pull.example.com/live/test.m3u8?mode=1&start=20260325150000&end=20260325170000。_hd:http://pull.example.com/live/test_hd.m3u8?mode=1&start=20260325150000&end=20260325170000。http://pull.example.com/live/test/abr.m3u8?mode=1&start=20260325150000&end=20260325170000。参数说明如下表所示。
| 参数 | 说明 | 示例值 |
|---|---|---|
| PullDomain | 配置直播时移时选择的拉流域名。 | pull.example.com |
| AppName | 与推流地址中的 AppName 相同。 | live |
| StreamName | 与推流地址中的 StreamName 相同。 | test |
| 鉴权参数 | 鉴权信息。仅在拉流域名开启 URL 鉴权时追加。例如,使用 A 类鉴权时,鉴权信息为 auth_key={timestamp}-{rand}-{uid}-{md5hash}。详见配置 URL 鉴权。 | auth_key=1758296819-123e4567-0-fbe5e26c0b****1431c3c897f7bdc278 |
| timeshift | 在相对时移模式下,观众拖动进度条回看内容时,目标位置与当前直播位置的时间差,单位为秒。取值范围为 (0,604800]。例如,300 表示回看 5 分钟前的直播内容。 | 300 |
mode | 在绝对时移模式下,决定播放器如何播放请求的时间范围,以及播放到
|
|
start | 播放开始时间。
|
|
end | 播放结束时间。支持以下格式:
|
|