随着互联网技术的快速发展,视频直播技术也得到了进步。用户在视频直播过程中的强互动需求,也推动着低延迟直播技术的发展和应用。传统直播技术的延迟非常大,通过流媒体音视频技术降低直播延迟、提高实时互动效率是我们研究低延迟直播技术的初衷。
我们对当前主流的直播技术做了一个简单的分析。常见的直播大部分采用RTMP、HLS、FLV协议,技术成熟、兼容性较好、支持大规模并发等特点,但端到端延时最低只能控制在4-6秒,降低了直播的互动体验,也阻碍了直播在一些场景的落地应用。
1、HLS (HTTP Live Streaming)
HLS的延迟主要来自编码/解码时产生的延迟、网络延迟、CDN分发延迟等。由于HLS是切片协议,所以延迟主要在于两方面:一是服务端有切片缓冲延迟,另一个是在播放端防抖缓冲会有延迟。切片的大小和数量都会影响HLS的延迟大小,一般来说延迟会在10秒以上。
2、RTMP(Real Time Messaging Protocol)/HTTP-FLV
目前国内大部分厂家均在使用的RTMP协议,它相对于HLS在服务端做了一定的优化。RTMP在服务端不再进行切片,而是分别转发每一帧,在CDN分发延迟非常小。RTMP的延迟主要来自播放端的防抖缓冲,为提升弱网环境下抖动时直播的流畅度,缓冲延迟一般有5~10秒。
以上这两类协议都是基于TCP协议,国内厂商基本上已经将RTMP over TCP的延迟做到了极致。如果一个协议仍然基于TCP优化延迟,效果上很难优于目前的RTMP。然而,TCP由于其自身的一些特性,并不适用于低延迟直播场景,主要原因如下:
1)重传慢
TCP的ACK确认机制,丢包后发送侧超时重传,超时时间一般在200ms,会造成接收侧帧抖动。
2)拥塞判断不准确
基于丢包的拥塞控制算法无法准确判断拥塞,丢包并不等于拥塞;也会造成发送链路 bufferbloat,链路RTT增大,延迟增加。
3)灵活性差
这是最主要的原因,TCP拥塞控制算法在操作系统内核层实现,优化成本较高,移动端只有利用系统已有的优化。
目前,实现直播数据流的低延时需要以下几类技术:
1)超低数据缓存技术
2)高性能流媒体处理技术
3)多终端适配技术
基于上述分析,我们需要开辟一条新的道路来解决视频直播的低延时需求:通过WebRTC技术来进行低延时直播。
WebRTC(Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。日渐发展成熟的WebRTC技术已经在业界被广泛采用,它可以实现端到端延迟在300ms~600ms之间,不需要额外的插件,还能支持自适应比特流的传输来适应复杂的网络状况。
作为音视频流媒体领域的深耕者,我们对视频直播低延迟建议的处理流程是:
在现场进行设备接入,拉取设备流,云端部署我们最新服务(EasyCVR视频融合云平台),接入现场传输过来的视频流。通过WebRTC技术进行低延时优化处理。根据目前内部测试的效果,对于普通的安防设备,延时可以有效控制在300毫秒以内,可极大满足视频安防监控等场景的低延迟直播需求。
效果展示:
EasyCVR视频融合云平台支持多类型的协议接入,包括市场主流标准协议,如国标GB28181协议、RTMP/RTSP/Onvif协议的接入,以及厂家私有协议与SDK接入,如海康EHOME、海康SDK、大华SDK等,对外可分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。
随着安防视频监控市场不断趋向于智能化、深度化、融合化方向发展,EasyCVR平台也积极拓展丰富的视频功能,为用户提供个性化的视频直播需求解决方案。平台可拓展性强、开放度高、部署轻快,支持海量视频汇聚管理,支持与第三方集成。
标签:视频,安防,HLS,技术,EasyCVR,直播,RTMP,延时,延迟 From: https://blog.51cto.com/tsingsee/5754591