• 37阅读
  • 0回复

Qt纯原创代码实现GB28181组件/自动点播拉流并推流/支持录像回放和下载/性能凶残 [复制链接]

上一主题 下一主题
离线liudianwu
 

只看楼主 倒序阅读 楼主  发表于: 昨天 15:03


用纯Qt实现GB28181组件这条路非常难,毕竟大家都习惯各种开源的库,比如用exosip等,但是为了挑战自己,还是在这条路一直坚持了下来,为了下这个组件,把gb28181的官方文档翻了好几遍,总算是把主要的功能都实现了。随着用户数量的增加,各种其他的实际需求开始涌现,比如gb28181点播后的视频推流,刚好之前就做过推流组件,也是完善了很多年,这两者一结合,就能够满足实际的需求。

之前做的推流,是需要先双击对应通道点播后,如果用户设置了预览推流地址,那就会打开后自动推流,对应还有个回放推流地址,一样的含义,对应回放点播开始后就自动将回放的流推流分发。这个逻辑适用于调试测试,实际的需求用户往往希望是设备通过gb协议连上后,就自动点播拉流推流分发,相当于自动化处理,而不是让用户再去点播,一方面可以大大加快拉流的速度,比如用户在网页上双击了某个通道,希望能以最快的速度显示视频画面,而不是这个时候再去点播拉流推流,然后网页这边才拉的推流分发的流,这样下去1-3s估计就过去了,体验很不好。如果在上线后就把这个步骤完成了,那速度响应快多了。

那么问题来了,这么多通道一开始就拉流好了,那不是压力很大,占用很多资源,能够想到这一步,说明对整个过程还是非常熟悉的,担心一开始都是有的,这就要看自己拉流推流这边如何处理的,有些人做的是解码后再推流,其实大可不必,监控行业过来的数据都是264/265格式的,不需要解码就可以裸流直接推流,所有的压力在网络带宽而不是在CPU,所以如果路数很少带宽够的情况下,就可以开启自动推流。



欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
快速回复
限100 字节
 
上一个 下一个