哈哈
简介
什么是特殊回放流
与GB 28181、gat 1078的区别
- GB 28181、gat 1078 只能通过信令控制暂停、播放、倍率、seek等操作,而特殊回放流可以直接在播放器端实现这些功能。
- 特殊回放流的控制逻辑更简单,播放器端可以直接调用暂停、播放、设置倍率等方法,而不需要通过服务器端发送信令命令。
- 特殊回放流不支持seek操作,因为它是流,无法知道具体的时间点。
工作原理
特殊回放流的控制逻辑主要在播放器端实现,播放器通过控制缓冲区和渲染逻辑来实现暂停、播放和倍率等功能。
特殊回放流主要是针对于一些NVR或者设备端直接推送的回放流,这些流不支持通过信令控制,只能在播放器端实现控制逻辑。
暂停-播放-暂停逻辑
- 前端调用播放器的暂停方法,播放器停止渲染画面,但继续接收和缓存流数据。
- 前端调用播放器的播放方法,播放器继续渲染画面,从缓冲区读取数据进行播放。
- 前端再次调用播放器的暂停方法,播放器再次停止渲染画面。
注意:暂停时流数据仍在接收,缓冲区会继续填充数据。如果长时间暂停,可能会导致缓冲区溢出。
倍率播放
支持倍速播放(1/2/4/8/16)和慢速播放(0.1-0.9)。
播放器端通过调整渲染速度来实现倍率播放。
如果缓存区数据不足,可能会出现卡顿现象。
seek逻辑
暂不支持
定制化开发
实现思路:
- 当切换到某个时间点的时候,流媒体服务器要支持播放地址上面带请求参数,例如开始时间,将拖拽时间直接发送到http服务。
- 流媒体服务器根据拖拽时间定位发送文件的偏移量,再把流发给web端播放,这样就实现了seek功能。
小结:seek功能需要流媒体服务器和播放器端配合实现,播放器端发送请求参数,流媒体服务器根据参数定位数据进行发送。从实现逻辑来说,seek就是重新播放一个新的流。
倒序播放
暂不支持
定制化开发
实现思路:
- 流媒体服务器支持倒序读取文件数据,然后按照一个一个gop的方式发送给播放器端。
- 播放器端通过解码器解码一个完整的gop数据,然后倒序渲染画面。
小结:倒序播放功能需要流媒体服务器和播放器端配合实现,流媒体服务器负责倒序读取数据,播放器端负责解码和渲染。
与点播文件的区别
点播逻辑是播放器端控制的,流媒体服务器只是提供文件的下载,播放器下载完文件后,播放器自己控制播放逻辑。
暂停逻辑
例如暂停逻辑:播放器端暂停请求文件,然后播放器端自己控制暂停逻辑。
倍率播放
例如倍率播放:播放器端按照倍率来请求文件片段,然后本地进行倍率播放。
seek逻辑
例如seek逻辑:播放器端请求seek的文件片段,然后本地进行seek播放。
回放流(TF卡流)/特殊回放流与点播文件播放器选择
回放流(TF卡流)/特殊回放流
解决方案:
点播文件
解决方案:
Jessibuca