新手搞懂 HLS 的 DVR 回看,直播时移常见踩坑

发布时间:2026/9/24 9:20:48

新手搞懂 HLS 的 DVR 回看,直播时移常见踩坑 一、什么是直播 DVR 时移回看很多监控直播、网课直播产品有回看功能也就是 DVR 时移。通俗讲直播正在播出用户可以拖动进度条回看几分钟、几十分钟之前已经播过的历史画面。点播视频全部分片提前生成好而直播 DVR 是在直播运行过程中服务器保留最近一段时间的历史 TS 分片M3U8 清单里面带上历史分片播放器就可以往回拖动。很多新手会把 DVR 直播和点播搞混。DVR 本质依旧是直播流M3U8 没有#EXT‑X‑ENDLIST结束标记只是服务器多保存了一部分旧分片回看窗口有时间上限不能无限往前面拖动。比如业务配置保留 30 分钟回看用户最多只能回看过去 30 分钟更早的分片服务器已经删除。实际开发测试经常遇到问题直播实时画面播放正常但是拖动回看就黑屏、花屏、报错。很多测试只看实时直播画面从来不测试拖动回看上线之后才收到用户反馈。遇到 DVR 回看类问题我会使用 m3u8live.cn 网页调试工具加载直播 M3U8尝试拖动进度条做回看操作快速确认回看功能是否正常。二、DVR 回看高频踩坑现象坑 1hls_list_size 设置过小回看窗口很短hls_list_size 控制 M3U8 清单保存分片的数量。分片数量少能回看的时间就短。业务需要 30 分钟回看但是分片数量设置太少只能回看几分钟。很多新手只关心实时直播流畅忽略这个参数会影响回看时长。坑 2推流断连重连缺少 #EXT‑X‑DISCONTINUITY 标记直播中间推流断开再恢复服务器没有写入不连续标记。往回拖动到断流的时间段播放器时间基准错乱出现花屏、音画不同步。坑 3DVR 回看窗口配置过大为了能看很久的历史把 hls_list_size 设置巨大。M3U8 索引文本体积暴涨每次播放器下载 M3U8 要下载大量文本增加请求耗时起播变慢服务器 CPU、内存压力上涨。回看不是越大越好按照产品需求设置合理窗口。坑 4前端播放器不做限制用户无限制往前拖拽服务端只保留 30 分钟历史分片但是前端进度条没有做时间限制用户拖到 30 分钟之前请求已经被删除的旧分片返回 404直接黑屏。坑 5CDN 缓存干扰 DVR M3U8 清单直播 DVR 的 M3U8 是动态不停变化的清单如果给 M3U8 设置较长 Cache‑Control 缓存浏览器拿到老旧清单回看分片不全拖动失败。三、DVR 回看简单排查步骤第一步把直播 M3U8 放到网页调试工具先确认实时直播画面正常再尝试拖动进度条往回看。如果工具拖动回看就黑屏花屏优先排查切片服务 hls_list_size、推流重连标记如果工具回看正常业务页面异常排查前端播放器是否做了进度条时间限制、hls.js 配置。第二步查看原始 M3U8 文本观察分片数量推流断开重连的位置有没有#EXT‑X‑DISCONTINUITY标记。第三步确认 M3U8 动态清单 Cache‑Control不能设置长缓存。四、业务开发测试建议hls_list_size 根据产品需要的回看时长计算不要过小也不要盲目设置超大。推流中断恢复切片服务务必输出不连续标记防止回看花屏。前端进度条要做时间范围限制不让用户拖动超出服务端保留的回看窗口避免请求过期分片 404。直播 DVR 的 M3U8 动态清单max‑age 设置很短禁止长缓存。测试直播不能只看实时画面一定要增加拖动回看的测试用例。五、总结DVR 时移回看是直播业务很实用的能力但它并不是点播回看窗口受服务器保存分片数量限制。hls_list_size、断流标记、CDN 缓存、前端进度限制任何一环出错拖动回看就会黑屏花屏。很多测试只测实时直播漏掉回看场景。借助网页调试工具做拖动回看测试可以提前发现 DVR 相关隐患上线少出问题。
延伸阅读

更多相关文章

2026/9/24 10:25:56

ARM学习笔记(8)

今天整理 i2c 的笔记,总线这个东西看着简单,把时序捋清楚也就通了大半。I2C 是什么I2C 是两根线的串行通信总线,一根 SCL 时钟线、一根 SDA 数据线。靠地址寻址从机,地址是 7 位,最多能挂 127 个从机。起始信号之后发的…

2026/9/24 10:25:56

ESP8266与KiwisIoT实现低成本远程水位监测与告警系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 10:25:56

Tinkercad电路仿真实战:从点亮LED到Arduino闪烁与555定时器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 10:20:55

2026好用H5工具测评:人人秀易企秀MAKA等主流平台的5大差异

2026年,H5工具选型已经进入“付费价值验证”阶段。企业不再只问“能不能做H5”,而是更关心:付费之后,能不能把创意设计、互动营销、私域获客、数据追踪、团队协作和系统部署串成一条闭环。本文只对比各平台付费版本,围…

2026/9/23 12:07:00

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/24 0:00:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:21

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:21

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码