ZLMediaKit 实时回看怎么做:HLS 时移配置完整指南

📅 发布时间:2026/9/9 21:48:19
ZLMediaKit 实时回看怎么做:HLS 时移配置完整指南
ZLMediaKit 实时回看怎么做HLS 时移配置完整指南【免费下载链接】ZLMediaKitWebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C11项目地址: https://gitcode.com/GitHub_Trending/zl/ZLMediaKit运维同学问了一句下午 3 点的直播能回放最近 5 分钟吗传统录像模式只能干等着——毕竟直播流一直没停完整文件永远不会写出来。ZLMediaKit 的 HLS 时移实时回看能力就是为这类需求准备的直播流在播出的同时被切成小片段存下来播放器随时就能回看最近的内容无需等录像结束。为什么录完了也不能立刻看传统录制模式的逻辑是等一个完整视频文件写完才能拿去回放。对点播文件没问题但对 7x24 小时不断的直播流来说这基本等于录了也白录——安防值守、课程直播这些场景往往要求刚播完的几秒到几分钟内就能回查等不了文件生成。破局的思路其实很简单把直播流边播边存同时落成可回放的媒体文件。流没停但每一小段都已经落盘随时可看。这正是直播时移技术的核心思想。HLS 为什么天生适合做时移时移在 ZLMediaKit 里是通过 HLS 协议实现的。HLSHTTP Live Streaming会把视频流切分成一连串很小的 TS 文件片段再生成一份 M3U8 播放列表一个索引文件列着有哪些片段、按什么顺序播。这个列表 小文件的结构对时移特别友好新片段一生成就追加进 M3U8 播放列表播放器轮询到列表变化就能续播最新内容。不用等大文件也不用额外的回放协议分段存储本身就是一份天然的近实时录像带。改一个参数开启直播流实时回放在 conf/config.ini 的[hls]段里控制这个行为的开关是hls.segNum。它默认值是 3表示 M3U8 播放列表里只保留最近的 3 个片段是标准直播玩法。把hls.segNum设置为 0含义就变了系统会把直播流持续保存为录播文件切片不再滚动删除M3U8 会全量记录片段列表。这种模式下新生成的 TS 片段会立即出现在 M3U8 播放列表中播放器解析一遍最新的 M3U8 文件就能拿到最新片段实现实时回看。切片的长短由segDur决定通常设置在 2~10 秒之间片段越短回看延迟越小但文件数量和 I/O 开销越大需要按业务在延迟和性能之间取个平衡。HLS 的切片与列表生成逻辑都在 src/Record/ 目录下想深挖细节可以从这里入手。落地时移容易踩的坑⚠️ 有几个现实问题动手前最好心里有数协议范围目前 ZLMediaKit 的实时回看仅支持 HLS 协议如果你只打算用 RTMP 或 FLV 出流需要自己另想办法或自行实现。播放器要配合播放端必须能动态解析不断更新的 M3U8 文件真正支持时移播放的播放器才行只会拉一次的播放器看不出效果。存储和 I/O 压力片段持续落盘意味着磁盘占用和读写压力都会上升除了切片时长还要想好保留策略比如配合segRetain控制过期片段在磁盘上的留存别让目录越堆越大。这类播完马上查的需求在安防监控实时回查、在线教育即录即放、直播时移电视、视频会议存档回顾里都很常见HLS 时移基本都能覆盖。写在最后时移方案的好处在于一份鱼两种吃法——既是传统录像的存档又是接近实时的回看。把hls.segNum置 0、给播放器配好动态解析的 M3U8再留足磁盘余量就大功告成了。【免费下载链接】ZLMediaKitWebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C11项目地址: https://gitcode.com/GitHub_Trending/zl/ZLMediaKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考