第 10 章 设备录像回放
10.1 功能说明
设备录像回放用于查询设备存储卡(或设备本地存储)上的历史录像并回放、倍速播放、下载,或将选段转存到平台(录像缓存)。
菜单路径:「设备录像回放」(路由 /gb28181/device-record-playback/:channelId,通常由通道行「录像」按钮进入,菜单本身在侧边栏中隐藏)。 所需权限:查询 gb28181:device-record:query;播放控制 gb28181:device-record:play;缓存/下载 gb28181:device-record:download。
10.2 页面结构
| 区域 | 内容 |
|---|---|
| 顶部查询栏 | 返回按钮、通道上下文与在线标识、录像时间区间、录像类型、「查询录像」 |
| 主区左侧 | 播放器 + 控制栏 |
| 主区右侧 | 「录像段」列表 |
| 底部 | 「录像时间轴」 |
界面如图 10-1 所示。

图 10-1 设备录像回放页
10.3 查询录像
10.3.1 查询条件
| 条件 | 说明 | 默认 |
|---|---|---|
| 录像时间 | 区间选择,含时分秒,格式 YYYY-MM-DD HH:mm:ss,不可清空 | 当天 00:00:00 至服务器当前时间,进入页面自动查询 |
| 录像类型 | 「全部录像」「手动录像」「报警录像」 | 「全部录像」 |
| 查询范围 | 按所选时间窗查询,不再以固定小时跨度直接拒绝;结束时间必须晚于开始时间 | 建议按实际需要选取,设备侧返回能力与查询耗时仍需留意 |
10.3.2 操作步骤
- 进入页面后自动按默认时间查询一次。
- 需要调整时,修改「录像时间」与「录像类型」。
- 点击「查询录像」。
- 查询摘要显示在列表上方:
| 摘要 | 含义 |
|---|---|
| 「正在向设备查询录像目录」 | 请求已下发 |
| 「查询完成,共 N 段」 | 查询结束 |
| 「已收到 N 段,结果可能不完整」 | 设备只返回了部分 |
| 「所选时段没有设备录像」 | 该时段无录像 |
| 「设置条件后查询设备录像」 | 尚未查询 |
- 查询成功后自动播放第一段(或上次选中的下一段)。
10.3.3 查询错误提示
| 提示 | 原因 | 处理 |
|---|---|---|
| 通道不存在或无权访问 | 通道被删除或无数据权限 | 返回列表重新选择 |
| 设备当前离线,无法查询录像 | 设备心跳中断 | 恢复设备在线 |
| 查询条件不符合要求 | 起止颠倒、时间格式不合法等查询参数错误 | 校正起止时间及查询条件后重试 |
| 查询任务较多,请稍后重试 | 设备并发查询达到上限 | 稍后重试 |
| 录像查询指令发送失败 | SIP 下发失败 | 查看 SIP 日志 |
| 录像查询服务暂不可用 | 后端服务异常 | 联系管理员 |
| 设备未返回录像目录 | 设备不支持或目录为空 | 确认设备有本地录像 |
| 查询失败,请稍后重试 | 其他 | 重试 |
界面如图 10-2 所示。

图 10-2 设备录像回放顶部的录像查询条件
10.4 录像段列表
右侧列表每行是一段录像,卡片内容:
| 元素 | 说明 |
|---|---|
| 名称 | 设备给出的录像名;为空时显示「录像段 N」 |
| 起止时刻 | 开始–结束时间 |
| 类型标记 | 「定时录像」(蓝)、「报警录像」(红)、「手动录像」(橙)、「未知类型」(灰) |
| 时长 | hh:mm:ss |
| 大小 | 文件大小 |
| 下载图标 | 点击「缓存该段到服务器」 |
列表底部显示「{已收段数} / {声明总数} 段」「耗时 N ms」。
操作:
- 单击某段:选中并开始播放该段。
- 点击行内下载图标:直接对该段发起缓存任务。
界面如图 10-3 所示。

图 10-3 设备录像回放右侧的录像段列表
10.5 播放控制
| 控件 | 类型 | 作用 | 提示 |
|---|---|---|---|
| 「播放」/「暂停」 | 圆形主按钮 | 起播或暂停/恢复 | 通道已有回放会话时「当前通道已有回放会话,请稍后重试」 |
| 「停止」 | 图标按钮 | 拆除回放会话,保留当前选中段 | 「设备未确认拆除,通道仍在后台释放中,请稍后重试」 |
| 倍速下拉 | 下拉 | 「0.25x」「0.5x」「1x」「2x」「4x」 | — |
| 「缓存到服务器」 | 图标按钮 | 对当前段发起缓存任务并弹出进度框 | 失败显示服务端原因 |
| 「全屏」 | 图标按钮 | 播放器容器全屏/退出 | — |
播放状态文案:「请选择录像段」「已选择,等待播放」「正在创建回放会话」「设备响应,正在缓冲」「正在回放」「已暂停」「回放结束」「回放失败」「正在停止」「已停止」「正在等待通道释放」。
注意 - 同一通道同一时刻只允许一个回放会话。若提示「当前通道已有回放会话」,说明其他人(或另一个浏览器标签)正在对该通道回放,需先由对方停止。 - 「停止」后会等待设备确认,若设备不响应会提示「设备未确认拆除」。此时通道在后台继续释放,稍后可重新播放。 - 回放不会影响设备上的录像文件,删除设备录像需在设备侧操作。
界面如图 10-4 所示。

图 10-4 设备录像回放画面下方的播放控制栏
10.6 录像时间轴
10.6.1 界面元素
| 元素 | 说明 |
|---|---|
| 顶部信息 | 当前录像时间段 |
| 图例 | 「定时」「报警」「手动」「其他」 |
| 缩放 | -、{N}x、+;档位 1/2/4/8/16/32,默认 4x |
| 「定位当前播放时间」 | 把视口移回播放头位置 |
| 播放头 | 竖线 + 时刻标签;落在无录像区时显示「无录像」并转为橙色 |
10.6.2 交互方式
| 操作 | 效果 |
|---|---|
| 单击色块或空白处 | 定位并跳转(seek)到该时刻 |
| 按住拖动 | 平移视口 |
| 滚轮上下 | 缩放时间轴 |
| 滚轮左右 | 平移视口 |
键盘 ←/→ | 平移视口 10% |
注意 - 时间轴是单击定位,不支持拖拽选区。需要选定区间转存时,请直接用右侧「录像段」中设备给出的段。 - 时间轴只展示已查询到的录像段。查询时段之外的区域为空白,需重新查询。
界面如图 10-5 所示。

图 10-5 设备录像回放底部的全景时间轴
10.7 缓存到服务器
10.7.1 操作步骤
- 选中一段录像,或直接点击段行内的下载图标。
- 点击控制栏「缓存到服务器」。
- 弹出「缓存到服务器 · {任务名}」窗口(宽 420px),显示:
| 元素 | 说明 |
|---|---|
| 进度条 | 百分比 + 状态文案 |
| 次行 | 「已缓存时长 / 总时长 · 已缓存大小」,有速率时追加「· x/s」 |
| 完成提示 | 「共 N 个文件,可在「录像缓存」中下载」 |
| 底部按钮 | 「取消任务」(仅排队中/缓存中)、「转后台」(进行中)、「查看缓存任务」(结束态) |
- 状态文案:
| 状态 | 文案 |
|---|---|
| 排队中 | 「排队中,等待设备通道空闲」 |
| 缓存中 | 「正在从设备拉流并缓存到服务器」 |
| 整理中 | 「录像已全部缓存,正在整理成单个文件」 |
| 完成 | 「缓存完成,可下载到本地」 |
| 失败 | 后端返回的失败原因,兜底「缓存失败」 |
| 已取消 | 「任务已取消」 |
| 已过期 | 「缓存文件已过保留期,已被清理」 |
- 可以关闭窗口让任务在后台继续,之后在「录像缓存」页查看。
- 读取状态失败时显示「任务状态读取失败,稍后自动重试」,页面每 2 秒轮询一次。
界面如图 10-6 所示(图为任务刚发起、缓存进度的实时状态)。

图 10-6 「缓存到服务器」进度窗口
10.7.2 按钮说明
| 按钮 | 条件 | 作用 | 提示 |
|---|---|---|---|
| 「取消任务」 | 排队中/缓存中 | 取消本次缓存 | 成功「已取消缓存任务」并关闭窗口;失败「取消失败」保持打开 |
| 「转后台」 | 进行中 | 关闭窗口,任务继续 | 「已转后台,可在右上角「缓存任务」查看进度」 |
| 「查看缓存任务」 | 已结束 | 关闭窗口并跳转 | 跳转至「录像缓存」页 |
点「转后台」后窗口关闭,任务继续在服务端运行:顶栏右侧的缓存任务图标(角标数字=正在缓存的任务数)随时可查看进度,如图 10-7 所示。

图 10-7 设备录像回放页面顶部的缓存任务面板
面板逐条列出进行中的任务:通道名、「缓存中」状态、进度条与「百分比 · 已缓存时长 / 总时长 · 已缓存大小 · 实时速率」。点「全部任务」跳转「录像缓存」页(第 8 章)。
注意 - 缓存需要占用设备的一路取流能力。若该通道正在实时播放或回放,任务会排队等待;建议在非值班高峰执行大批量缓存。 - 缓存速度受设备上行带宽与平台磁盘写入能力共同限制。同一设备并发缓存多段会互相抢占带宽。 - 任务完成后请及时「收藏」,否则超过保留期文件会被清理。
10.8 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 查询到了录像但播放黑屏 | 设备回放送流失败 | 查看 SIP 日志中的 INVITE 与 ACK;尝试改流传输模式 |
| 只能播一段就停 | 设备回放会话被复用 | 等待会话释放后重新播放 |
| 倍速播放无效 | 设备不支持倍速 | 以 1x 播放;倍速由设备侧实现 |
| 时间轴上没有颜色块 | 该时段设备确实无录像 | 放宽时间范围重新查询 |
| 缓存任务排队很久 | 通道正在被实时观看占用 | 停止实时播放后再试 |
| 下载的文件比录像时长 | 分片重复或设备时间戳异常 | 用「录像缓存」页的进度与大小核对 |