哈哈
简介
什么是 GA/T 1078 回放流(TF卡流)
与GB 28181区别
- GB 28181 属于 国家标准,是面向全国的视频监控联网与信息共享规范。
- GA/T 1078 属于 公安部行业标准,主要针对 公安视频监控系统内部传输、交换、控制 的技术要求。
工作原理
在 部标 GA/T 1078(以及类似的 GB/T 28181 国标体系) 里面,录像回放的控制流程大体是通过 信令控制 + RTP 实时流下发 来实现的。
暂停-播放-暂停逻辑
部标定义了 Pause / Resume 命令。平台在收到 Pause 时,会临时停发 RTP 流;收到 Resume 时继续按原速推送。
播放-暂停实现逻辑:
- 前端发起ajax请求到服务器端,服务器端通过 SIP 信令发送 Pause 命令给录像服务器。
- 录像服务器收到 Pause 命令后,暂停推送 RTP 流(但保持 RTP 连接不断开)。
- 前端在ajax回调之后,调用播放器的暂停方法,播放器停止渲染画面(流不断开)。
暂停-播放实现逻辑:
- 前端发起ajax请求到服务器端,服务器端通过 SIP 信令发送 Resume 命令给录像服务器。
- 录像服务器收到 Resume 命令后,继续按原速推送 RTP 流。
- 前端在ajax回调之后,调用播放器的播放方法,播放器继续渲染画面。
倍率播放
在部标里,倍率播放通常通过 控制命令(TrickPlay/PlaybackControl) 实现。
实现逻辑:
- 前端发起ajax请求到服务器端,服务器端通过 SIP 信令发送 TrickPlay/PlaybackControl 控制命令给录像服务器。命令里会有一个 scale 倍率参数(例如 2.0 表示 2 倍速,0.5 表示 0.5 倍速)。
- 录像服务器收到命令后,调整推流的速率(例如 2 倍速时,推流速度加快,0.5 倍速时,推流速度减慢)。
- 播放器端需要在ajax 回调之后设置播放器的播放倍率。
seek逻辑
Seek 是通过 停止当前回放流
→ 重新发起新的回放请求
来实现的。
新的请求里携带 新的起始时间点,录像服务器会从这个时间点附近的关键帧开始推流。
注意:视频必须从关键帧开始,所以即使你请求 10:01:02,实际可能会从 10:01:00 的 I 帧起播。
小结
主要业务逻辑是流媒体服务器支持的,播放器只是配合流媒体服务器的逻辑进行播放。