随着直播的越来越普及,我们作为用户,对直播的要求也越来越高,比如超低延时直播,且支持手机和PC端直接播放,不安装任何播放插件。那么问题来了,如何实现低延迟、秒开的直播?
通过我们技术人员的考察,目前主流的实现方案主要有三种。
实现低延时直播方案
- 使用rtmp流媒体服务器实现直播分发,客户端用hls协议播放。
优点:集成方便,支持度高,兼容性好,主流手机都支持,是目前直播主流技术。
缺点:延时大,一般服务器可以控制切片时长(延时可以控制在10-30秒之间)。
- 基于HTML5浏览器的MSE扩展技术,采用HTTP协议的FLV直播流进行分发,客户端通过浏览器端的格式转封装进行解码播放,服务器端使用支持HTTP FLV的流媒体服务器。
优点:集成方便,兼容性一般,延时可以控制在3秒内。
缺点:部分浏览器不支持mse,iOS平台的内置浏览器不支持,iOS端的微信内也不能播放,延时稍大。
- 基于WebRTC方式实现直播功能,这方面google已经在大力支持,主流的浏览器也已经支持(Chrome、Firefox、IE11、Safari、Android移动端),直播端到端延时可以控制在0.5秒以内,网络状况好的时候可以达到0.2秒。
优点:终端兼容性好,延时超低并且可控。
缺点:当前的主流CDN还不支持,需要自建流媒体服务器。
通过以上方案比较,低延时直播第三种方案是比较好的选择。但是主要技术难点在流媒体服务器端的实现上,不同厂商有不同的技术实现方式。而EasyDSS流媒体服务器是专业的流媒体服务厂商,是一套集流媒体点播、转码、管理、直播、录像、检索、时移回看于一体的一套完整的商用流媒体服务器软件解决方案。
编码延时
其次,直播延时的产生不仅与服务器和客户端有关,还有编码延时有关。为此,我们测试了多种直播编码方案,包括:
-
硬件H.264编码器。
-
软件编码器,有“串流直播”、“OBS”、“Adobe FMLE”。
-
使用带有直播功能的IP摄像机。
其中软件编码器支持的直播协议最为丰富、编码延时最低、而且可以根据我们的特殊应用为我们提供个性化改造,包括调整GOP结构,减少H.264编码中的B帧数量,直播数据加密。