curl -I -H 'Range: bytes=0-1023' https://cdn.example.com/v/clip.mp4
# 期望 HTTP/1.1 206 Partial Content

视频拖动进度条要等 8 秒才继续,Network 里请求返回 200 而不是 206,整个文件被重新下载了一遍。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,源站没支持 Range 请求,返回 200 带完整文件,播放器无法跳到指定位置。前面也没挂 CDN,每次拖动都直接回源。

围绕「视频 Range 请求」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。

处理上按这个顺序:确认源站和 CDN 都返回 Accept-Ranges: bytes;CDN 缓存键带上 Range 或开启分片回源;用 curl 带 Range 头验证返回 206。

改完只确认一件事:拖动进度条 1 秒内继续播放,Network 里视频请求返回 206。

作者 9823189