活动直播嵌在页面里,画面比现场慢 18 秒,弹幕和画面完全对不上,切片列表里每段是 10 秒。日志里能对上时间点,这种反而好排。
HLS 切片 10 秒再加播放器默认缓冲 3 段,理论延迟就超过 30 秒,实测 18 秒已经算好。播放器还停在直播边缘之外的老片段上。这一点先确认清楚,后面就不用反复试。
hls.config.lowLatencyMode = true; hls.config.liveSyncDurationCount = 2; hls.config.maxBufferLength = 4;
这次卡住的地方就在「HLS 直播延迟」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。
新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
处理上按这个顺序:把切片时长降到 2 秒 并开启低延迟模式;播放器把 liveSyncDurationCount 设为 2;关掉多余缓冲 观察十分钟卡顿率。
结果对不对很好判断,直播延迟降到 6 秒以内,弹幕与画面基本同步,连续看 10 分钟不卡。
