第 8 章 录像缓存
8.1 功能说明
录像缓存解决「设备存储卡容量有限、历史录像会被覆盖」的问题:把指定时间段的设备录像转存到平台服务器,形成可长期保存、可下载的文件。
与「云端录像」的区别:云端录像录的是「从现在开始」的实时流;录像缓存搬的是「过去某一段」的设备录像。
菜单路径:「录像缓存」(路由 /gb28181/record-cache)。 所需权限:查看 gb28181:record-cache:view;创建任务在「设备录像回放」页发起,需 gb28181:record-cache:create(同时受 gb28181:device-record:download 控制);取消 :cancel;下载 :download;删除 :delete;收藏 :favorite。
创建入口: 缓存任务不能在「录像缓存」页创建,必须在「设备录像回放」页选段后点击「缓存到服务器」(见第 10 章)。
8.2 页面结构
| 区域 | 内容 |
|---|---|
| 查询筛选区 | 「任务状态」「关键词」「收藏状态」+「查询」「重置」+ 刷新图标 |
| 数据表格 | 横向可滚动,关键列固定 |
| 分页条 | 10/20/50/100,默认 20 |
界面如图 8-1 所示。

图 8-1 录像缓存任务列表
8.3 筛选条件
| 条件 | 选项 | 默认 |
|---|---|---|
| 任务状态 | 「排队中」「缓存中」「整理中」「已完成」「失败」「已取消」「已过期」 | 空 |
| 关键词 | 通道名/设备名/编码 | 空 |
| 收藏状态 | 「已收藏」「未收藏」(三态:不选则不筛) | 空 |
8.4 表格列
| 列 | 说明 |
|---|---|
| 「任务 ID」 | 等宽字体,左固定 |
| 「设备」 | 名称 + 编码 |
| 「通道」 | 通道名称 |
| 「录像区间」 | 起止时间两行 |
| 「状态」 | 彩色标签,见下表 |
| 「进度」 | 进度条 + 百分比 + 「已缓存 / 总时长」,运行中且速率有效时追加「· x/s」 |
| 「大小」 | 已缓存大小 |
| 「倍速」 | 如「8×」 |
| 「操作人」 | 发起人 |
| 「创建时间」 | — |
| 「过期时间」 | 到期后文件被清理 |
| 「操作」 | 右固定 |
8.4.1 状态与可执行操作
| 状态 | 颜色 | 含义 | 行操作列实际出现的按钮 |
|---|---|---|---|
| 排队中 | 蓝 | 等待设备通道空闲 | 收藏、取消(无「删除」) |
| 缓存中 | 蓝 | 正在从设备拉流写盘 | 收藏、取消(无「删除」) |
| 整理中 | 橙 | 全部片段已缓存,正在合并为单个文件 | 收藏、删除(无「取消」——录像已拉齐,后端会拒) |
| 已完成 | 绿 | 可下载 | 收藏、下载、分段(分片数 > 1 时)、删除 |
| 失败 | 红 | 设备拉流失败、录像段已被覆盖或磁盘写入失败 | 收藏、删除 |
| 已取消 | 灰 | 用户取消或系统终止 | 收藏、删除 |
| 已过期 | 灰 | 超过保留期,文件已清理 | 收藏、删除 |
注意 - 「取消」与「删除」互斥:只有排队中/缓存中能取消,此时不显示「删除」;其余状态(含整理中)可以删除,但不再显示「取消」。想删掉一个正在跑的任务,先点「取消」,状态变为「已取消」后再点「删除」。 - 「整理中」必须留着「删除」:合并万一卡住,取消不让点、删除又藏起来,这一行就再也清不掉了。
8.5 进度说明
| 元素 | 说明 |
|---|---|
| 百分比 | 向下取整显示 |
| 次行文案 | 「已缓存 00:12:30 / 01:00:00」,运行中追加「· 2.4x/s」 |
| 整理中文案 | 「录像已全部缓存,正在整理成单个文件…」 |
| 刷新机制 | 页面每 5 秒轮询一次;列表接口不返回实时进度,前端对进行中的行单独查询详情回填 |
| 进度单调 | 进度只增不减,即使后端短暂返回更小值也不会回退显示 |
注意 - 进度在整段录像收尾时才写入数据库,因此「进度长时间停在某个百分比」可能是正常的收尾阶段,不一定代表卡死。判断是否卡死应观察「大小」是否继续增长。 - 「整理中」状态可能持续较久(片段越多越久),期间不可取消,请耐心等待。
界面如图 8-3 所示。

图 8-3 进度与倍速列
8.6 操作说明
| 按钮 | 位置 | 前置条件 | 行为 | 提示 |
|---|---|---|---|---|
| 「收藏」/「取消收藏」 | 行操作 | :favorite | 切换收藏标记 | 收藏成功「已收藏,该录像不会被自动清理」;取消「已取消收藏」;失败「操作失败,请重试」 |
| 「取消」 | 行操作 | 状态为排队中/缓存中,且 :cancel | 取消任务 | 「已取消缓存任务」/「取消失败」 |
| 「下载」 | 行操作 | 状态为已完成,且 :download | 原生下载整段(多分片已合并) | 「已开始下载」;整理中「录像正在整理,请稍候再试」;无文件「暂无可下载的文件」 |
| 「分段」 | 行操作 | 分片数 > 1 | 下拉列出「第 N 段 · 大小」,选择某段下载 | 「该分片暂不可下载」 |
| 「删除」 | 行操作 | 非排队中/缓存中(即可取消状态之外) | 删除服务器缓存文件 | 确认「删除缓存」,正文「将删除”{通道名}“这段录像的服务器缓存文件,且不可恢复。」 |
| 「查询」「重置」 | 筛选区 | — | 查询/清空条件 | 失败「加载录像缓存任务失败」 |
| 刷新图标 | 筛选区 | — | 静默重载 | — |
注意 - 「收藏」的核心作用是防止自动清理。重要录像务必先收藏,否则到期后文件会被删除。 - 「删除」只删除平台服务器上的缓存文件,不影响设备存储卡上的原始录像。
8.7 空态与提示
| 场景 | 文案 |
|---|---|
| 无任何任务 | 「还没有缓存任务。在「设备录像」页面选一段录像点「缓存到服务器」即可。」 |
| 筛选无结果 | 表格空态,可按「重置」清空条件 |
8.8 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 任务一直「排队中」 | 设备通道被占用(有实时点播或回放) | 停止该通道的实时播放后等待调度 |
| 「缓存中」但进度不动 | 收尾阶段,或设备送流中断 | 观察「大小」是否增长;若长时间不变,取消后重建 |
| 任务失败 | 设备离线、录像段已被覆盖、磁盘空间不足 | 列表只显示「失败」;具体原因在「缓存到服务器」进度窗口中显示(见 10.7),重新发起一次即可看到 |
| 下载得到多个文件 | 任务尚未「整理」完成 | 等待状态变为「已完成」后下载 |
| 文件不见了 | 超过「过期时间」且未收藏 | 需重新发起缓存任务 |