哈哈

简介

什么是 GA/T 1078 回放流(TF卡流)

与GB 28181区别

  • GB 28181 属于 国家标准,是面向全国的视频监控联网与信息共享规范。
  • GA/T 1078 属于 公安部行业标准,主要针对 公安视频监控系统内部传输、交换、控制 的技术要求。

工作原理

在 部标 GA/T 1078(以及类似的 GB/T 28181 国标体系) 里面,录像回放的控制流程大体是通过 信令控制 + RTP 实时流下发 来实现的。

暂停-播放-暂停逻辑

部标定义了 Pause / Resume 命令。平台在收到 Pause 时,会临时停发 RTP 流;收到 Resume 时继续按原速推送。

播放-暂停实现逻辑:

  1. 前端发起ajax请求到服务器端,服务器端通过 SIP 信令发送 Pause 命令给录像服务器。
  2. 录像服务器收到 Pause 命令后,暂停推送 RTP 流(但保持 RTP 连接不断开)。
  3. 前端在ajax回调之后,调用播放器的暂停方法,播放器停止渲染画面(流不断开)。

暂停-播放实现逻辑:

  1. 前端发起ajax请求到服务器端,服务器端通过 SIP 信令发送 Resume 命令给录像服务器。
  2. 录像服务器收到 Resume 命令后,继续按原速推送 RTP 流。
  3. 前端在ajax回调之后,调用播放器的播放方法,播放器继续渲染画面。

倍率播放

在部标里,倍率播放通常通过 控制命令(TrickPlay/PlaybackControl) 实现。

实现逻辑:

  1. 前端发起ajax请求到服务器端,服务器端通过 SIP 信令发送 TrickPlay/PlaybackControl 控制命令给录像服务器。命令里会有一个 scale 倍率参数(例如 2.0 表示 2 倍速,0.5 表示 0.5 倍速)。
  2. 录像服务器收到命令后,调整推流的速率(例如 2 倍速时,推流速度加快,0.5 倍速时,推流速度减慢)。
  3. 播放器端需要在ajax 回调之后设置播放器的播放倍率。

seek逻辑

Seek 是通过 停止当前回放流重新发起新的回放请求 来实现的。

新的请求里携带 新的起始时间点,录像服务器会从这个时间点附近的关键帧开始推流。

注意:视频必须从关键帧开始,所以即使你请求 10:01:02,实际可能会从 10:01:00 的 I 帧起播。

小结

主要业务逻辑是流媒体服务器支持的,播放器只是配合流媒体服务器的逻辑进行播放。