最近遇到好几个低延时场景的需求,大概列举给大家:
- 家用安防领域,用户在手机上需要跟家里人或者家里的宠物进行交互对话,这里的实时性十分影响体验,所以,持续稳定的低延时是非常需要的;
- 低空经济越来越发达了,后面相信无人机不会只是单向的监视查看的用途,双向的互动也将会是大势所趋,比如高速公路、高架路上的事故快速处置,通过无人机派飞到现场,再与指挥中心的处置人员进行双向互动,而这个互动就需要持续的低延时保障!
- 同样,我们国家现在的机器人、机器狗产业也越来越发达了,例如机器狗在一些现场处置的场景中,极低的延时以及通过4G/5G等信号进行远距离视频传输的时候,持续的、低延时的、双向的、可控的交互,是未来必将会面临的问题;
那么,这么多场景的需求,有什么样的方案能解决这些需求呢?我们简单做一些分析:
-
RTSP ?
答案是否定的,1、RTSP属于一种单向的流传输协议,音视频流只能从设备端传向控制端(或者客户端),当有对讲或者控制数据需要发向设备的时候,需要再开通道;2、RTSP可以做到低延时,但做不到持续的、高QoS的视频低延时; -
RTMP ?
答案跟RTSP一样,也是否定的,可能RTMP比RTSP还要差一点,不但协议晦涩,而且纯TCP基础上的RTMP是肯定无法做到持续低延时的,双向对讲就更不可能了; -
GB28181 ?
这个协议就更不可能了,GB28181的流协议部分用的是RTP,但也是单向的RTP,虽然GB28181规定了对讲的协议,但那也是像我们在RTSP描述中所说的,临时新开的传输通道,只能勉强完成这个功能,属于直播数据和对讲数据各干各的,达不到真正对讲所需要的应用要求,我们且称之为“喊话”!
那还有什么流媒体协议能满足我们提的需求呢?
WebRTC
可以说WebRTC能将上面所有协议的流传输部分全部替代,为啥没替代呢?只能说是诸多的历史原因,像RTSP、RTMP都是因为占据了天时,因为用的早!RTSP协议现在除了从摄像机取流用,其他场景也越来越少了,RTMP除了做直播推流,其他也没啥用了,实际RTMP不是最好的推流选择,就因为用的人多;
WebRTC协议具备了RTSP、RTMP、GB28181流媒体传输所需的所有特点:
- WebRTC可以做到持续的超低延时,以其优秀的QoS策略支持,WebRTC支持基于TCP或者UDP进行数据传输;
- WebRTC可以做到双向互通,WebRTC实际就是为可视通话而推出的协议;
- WebRTC还可以通过DataChannel发送各种控制指令,那么在VideoChannel和AudioChannel低延时同级别的,还有DataChannel,同样能以最低的延时、最高的可靠性进行双向互通,就好比一边视频通话,还可以一边发送消息;
为什么WebRTC没有被普及?
- 开发难度大;
- 很少有能放到IPC里面跑的WebRTC,尤其是flash较小的IPC;
- H.265还未完全支持;