哈哈

简介

什么是 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/2/4/8/16)和慢速播放(0.1-0.9)

实现逻辑:

  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 帧起播。

倒序播放

暂不支持

小结

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

与点播文件的区别

点播逻辑是播放器端控制的,流媒体服务器只是提供文件的下载,播放器下载完文件后,播放器自己控制播放逻辑。

暂停逻辑

例如暂停逻辑:播放器端暂停请求文件,然后播放器端自己控制暂停逻辑。

倍率播放

例如倍率播放:播放器端按照倍率来请求文件片段,然后本地进行倍率播放。

seek逻辑

例如seek逻辑:播放器端请求seek的文件片段,然后本地进行seek播放。

回放流(TF卡流)/特殊回放流与点播文件播放器选择

回放流(TF卡流)/特殊回放流

解决方案:

  1. JessibucaPro

点播文件

解决方案:

  1. video.js
  2. xgplayer.js
  3. JessibucaProVod