哈哈

简介

什么是特殊回放流

与GB 28181、gat 1078的区别

  1. GB 28181、gat 1078 只能通过信令控制暂停、播放、倍率、seek等操作,而特殊回放流可以直接在播放器端实现这些功能。
  2. 特殊回放流的控制逻辑更简单,播放器端可以直接调用暂停、播放、设置倍率等方法,而不需要通过服务器端发送信令命令。
  3. 特殊回放流不支持seek操作,因为它是流,无法知道具体的时间点。

工作原理

特殊回放流的控制逻辑主要在播放器端实现,播放器通过控制缓冲区和渲染逻辑来实现暂停、播放和倍率等功能。

特殊回放流主要是针对于一些NVR或者设备端直接推送的回放流,这些流不支持通过信令控制,只能在播放器端实现控制逻辑。

暂停-播放-暂停逻辑

  1. 前端调用播放器的暂停方法,播放器停止渲染画面,但继续接收和缓存流数据。
  2. 前端调用播放器的播放方法,播放器继续渲染画面,从缓冲区读取数据进行播放。
  3. 前端再次调用播放器的暂停方法,播放器再次停止渲染画面。

注意:暂停时流数据仍在接收,缓冲区会继续填充数据。如果长时间暂停,可能会导致缓冲区溢出。

倍率播放

支持倍速播放(1/2/4/8/16)和慢速播放(0.1-0.9)。

播放器端通过调整渲染速度来实现倍率播放。

如果缓存区数据不足,可能会出现卡顿现象。

seek逻辑

暂不支持

定制化开发

实现思路:

  1. 当切换到某个时间点的时候,流媒体服务器要支持播放地址上面带请求参数,例如开始时间,将拖拽时间直接发送到http服务。
  2. 流媒体服务器根据拖拽时间定位发送文件的偏移量,再把流发给web端播放,这样就实现了seek功能。

小结:seek功能需要流媒体服务器和播放器端配合实现,播放器端发送请求参数,流媒体服务器根据参数定位数据进行发送。从实现逻辑来说,seek就是重新播放一个新的流。

倒序播放

暂不支持

定制化开发

实现思路:

  1. 流媒体服务器支持倒序读取文件数据,然后按照一个一个gop的方式发送给播放器端。
  2. 播放器端通过解码器解码一个完整的gop数据,然后倒序渲染画面。

小结:倒序播放功能需要流媒体服务器和播放器端配合实现,流媒体服务器负责倒序读取数据,播放器端负责解码和渲染。

与点播文件的区别

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

暂停逻辑

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

倍率播放

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

seek逻辑

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

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

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

解决方案:

  1. JessibucaPro

点播文件

解决方案:

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