HLS 直播延迟优化技巧
延迟来源
标准 HLS 直播延迟通常在 10-30 秒,主要来源:
- 分片编码时长(每个 TS 分片通常 6-10 秒)
- 播放器缓冲(一般缓存 3 个分片)
- 网络传输与 CDN 分发
缩短分片时长
最直接的优化是减小分片时长。将 #EXT-X-TARGETDURATION 从 10 秒降到 2-4 秒,可显著降低延迟。代价是分片数量增多,服务器压力增大。
预加载与缓冲
- 播放器设置更小的初始缓冲(如 1-2 个分片)。
- 使用
#EXT-X-PART(部分分片)实现边传边播。 - 合理设置直播延迟上限,超过则追赶。
LL-HLS 低延迟方案
苹果推出的 Low-Latency HLS(LL-HLS) 将延迟降到 2-5 秒,核心是:
- 部分分片(Partial Segments):分片还没生成完就可以播放。
- 预加载提示(Preload Hints):提前告知播放器下一个分片。
- 阻塞播放列表加载(Blocking Playlist Reload):减少轮询开销。
如需更低延迟(亚秒级),可考虑 WebRTC 方案,适合互动直播场景。