用纯Qt实现GB28181组件这条路非常难,毕竟大家都习惯各种开源的库,比如用exosip等,但是为了挑战自己,还是在这条路一直坚持了下来,为了下这个组件,把gb28181的官方文档翻了好几遍,总算是把主要的功能都实现了。随着用户数量的增加,各种
其他的实际需求开始涌现,比如gb28181点播后的
视频推流,刚好之前就做过推流组件,也是完善了很多年,这两者一结合,就能够满足实际的需求。
之前做的推流,是需要先双击对应通道点播后,如果用户设置了预览推流地址,那就会打开后自动推流,对应还有个回放推流地址,一样的含义,对应回放点播开始后就自动将回放的流推流分发。这个逻辑适用于
调试测试,实际的需求用户往往希望是设备通过gb协议连上后,就自动点播拉流推流分发,相当于自动化处理,而不是让用户再去点播,一方面可以大大加快拉流的速度,比如用户在网页上双击了某个通道,希望能以最快的速度
显示视频画面,而不是这个时候再去点播拉流推流,然后网页这边才拉的推流分发的流,这样下去1-3s估计就过去了,体验很不好。如果在上线后就把这个步骤完成了,那速度响应快多了。
那么
问题来了,这么多通道一开始就拉流好了,那不是压力很大,占用很多资源,能够想到这一步,说明对整个过程还是非常熟悉的,担心一开始都是有的,这就要看自己拉流推流这边如何处理的,有些人做的是解码后再推流,其实大可不必,监控行业过来的
数据都是264/265格式的,不需要解码就可以裸流直接推流,所有的压力在
网络带宽而不是在CPU,所以如果路数很少带宽够的情况下,就可以开启自动推流。