直播回看和时移实现
回看和时移的实现方式都一样,通过修改播放源地址的链接,追加时间段参数,达到请求服务器输出历史视频的功能,
时间段分两种:UTC yyyyMMddHHmmss 或 13位绝对毫秒级时间戳
字段分: start / starttime / playseek / lookback
m3u格式的
看m3u文件顶部,有没有catchup="append" catchup-source="?playbackbegin=${(b)yyyyMMddHHmmss}&playbackend=${(e)yyyyMMddHHmmss}"
只需要根据catchup-source的参数格式在原播放地址后面拼接回放时间段,样本如下:
PLTV/TVOD格式
如果源地址中包含PLTV或TVOD,即符合这种格式,
1. 若包含 "rtsp":认为是 RTSP-smil 代理流,强制替换为 "/TVOD/",时间使用 UTC 格式化为 yyyyMMddHHmmss(不含 "T" / ".00Z"),追加参数:?playseek={begin_UTC}-{end_UTC};
2. 若不包含 "rtsp":时间使用 13 位绝对毫秒级时间戳,追加参数:?starttime={begin_ms}&endtime={end_ms}。
样本如下:
RTSP格式
如果源地址中同时包含rtsp和r2h-token,则符合这种格式,
把源地址中的r2h-token= 改为r2h-token: 然后再追加回放时间段,格式为?playseek={yyyyMMddHHmmss}-{yyyyMMddHHmmss},样本如下:
Ysten 易视腾
包含 "ysten-business",即视为此格式
1. 将 URL 路径中的 "/live" 替换为 "/lookback";
2. 时间转换为 UTC 格式,格式化为 yyyyMMdd'T'HHmmss'.00Z';
3. 拼接输出:.../lookback/{begin_UTC}/{end_UTC}/{channel_id}。
Migu 咪咕
包含 "itv.cmvideo.cn"或 "channel-id="
1. 将查询参数中的 &livemode=1 替换为 &livemode=4(切至回看模式);
2. 移除签名尾部的 "==";
3. 时间转换为 UTC 格式,格式化为 yyyyMMdd'T'HHmmss'.00Z';
4. 在尾部追加拼接参数:&playseek={begin_UTC}-{end_UTC}(时移模式下结束时间自动减去 60 秒安全缓冲)。
爱上 CDN
包含 "aishang.ctlcdn"
1. 将 URL 中的路径字符 "/live" 替换为 "/lb";
2. 时间转换为 13 位绝对毫秒级时间戳;
3. 追加拼接参数:?start={begin_ms}&end={end_ms}。
Suma 数码视讯
包含 "/live/program/live/"
1. 时间使用 13 位绝对毫秒时间戳;
2. 追加拼接参数:?starttime={begin_ms}&endtime={end_ms}。
CMS
包含 "/cms001/"
1. 时间使用 13 位绝对毫秒时间戳;追加拼接参数:?playseek={begin_str}-{end_str}
#EXTM3U x-tvg-url="https://mg.28985.xyz:2026/playback.xml" catchup="append" catchup-source="?playbackbegin=${(b)yyyyMMddHHmmss}&playbackend=${(e)yyyyMMddHHmmss}"
#EXTINF:-1 tvg-id="CCTV1综合" tvg-name="CCTV1综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2201/057/821/202204010054_1626677671392_H32_1080.webp" group-title="央视",CCTV1综合
https://mg.28985.xyz:2026/608807420
#EXTINF:-1 tvg-id="CCTV2财经" tvg-name="CCTV2财经" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/346/945/202205311432_1626678578843_H32_1080.webp" group-title="央视",CCTV2财经
https://mg.28985.xyz:2026/631780532http://bt.66.xyz:8887/rtsp/115.233.43.70/PLTV/88888913/224/3221228083/10000100000000060000000002633372_0.smilhttp://iptvcun.cc:5140/rtsp/123.147.112.17:8089/04000001/01000000004000000000000000000231?AuthInfo=xxx&userid=&r2h-token=Lj@45430770
转换后:
http://iptvcun.cc:5140/rtsp/123.147.112.17:8089/04000001/01000000004000000000000000000231?AuthInfo=xxx&userid=&r2h-token:Lj@45430770?playseek=20260722101011-20260722101050