单个MP4不够稳定时,改用自适应播放



Nginx对静态文件通常原生支持字节范围请求,不要在视频目录中配置禁用Range的规则。检查时不要要求首次请求一定返回206,因为播放器首次获取完整文件信息时可能返回200;更重要的是,拖动进度条或从中间开始播放后,响应是否出现206 Partial Content、Content-Range🌈是否正确,以及服务器是否只传输请☀️求的片段。



HLS或DASH只能解决“根据网络选择码率”的问题,不能修复源文件损坏、服务器带宽不足或播放器逻辑错误。Ngin📚x在这里主要负责稳❤️定地发送播放列表和分片,真正的转码、切片和码率规划应在发布流程中完成。



直播HLS的m3u8播放列表会持续变化,不能使用与固定视频分片相同的长缓存🌈策略。一个常见的静态分发思路如下:



HLS、反向代理与缓存要分开设置



Nginx编译并加载了MP4模块时,可以使用mp4指令处理部分MP4伪流式场景,例如根据start参数读取指定位置。但这个模块不是转码器,也不能替代faststart和Range请求;如果只是普通HTML5视频播放,先把索引前置并验证分段请求,通常比盲目启用模块更稳妥。使用前应通过Nginx编译信息确认模块是否存在,否则加入该指令会导致配置检查失败。



上面的分片缓存策略只适用于分片文件名不会被重复覆盖的情况。如果系统会用同一个文件名替换旧分片,就不能随意设置immutable,否则用户可能持续读取旧💡内容。点播👍列表可以采用更长缓存,但直播列表通常需要及时重新请求。



举报/反馈