音视频直播的两条技术路线
压缩技术解决了,高速公路建成了,接下来就是如何利用这些技术进行产品化了。音视频直播就是众多音视频应用中最亮眼,也是大家最需要的应用。对于不同的行业和领域,在使用音视频直播时,人们往往给直播不同的称谓,比如:在教育领域中使用的直播称为在线教育直播,在远程办公领域的直播称为网络音视频会议,在娱乐领域则称为娱乐直播,等等。
虽然所有的直播底层都是使用音视频和网络传输技术,但由于应用的场景不同、目标不同,所以它们的技术方案也有很大的区别。
对于音视频会议来讲,它关注的是实时通话的质量,也就是说当你开启摄像头、打开麦克风后,远端的用户就可以立即看到你的视频、听到你的声音。同样,你也可以立即看到对方的视频、听到对方的声音。而娱乐直播则与音视频会议不同,它追求的目标是可以让尽可能多的用户观看到节目,视频清晰、不卡顿。但它对音视频延迟要求不高,因此这类直播的实时性比较差。
由此,我们可以知道音视频直播分成了两条技术路线:一条是以音视频会议为代表的实时互动直播;另一条是以娱乐直播为代表的流媒体分发。
所谓实时互动直播,就是指以实时互动为目标的直播。其中 1996 年朱敏创建的 WebEx
公司应该是这个领域中影响最广泛的一家公司。在 20 世纪 90 年代末就可实现多人实时互动聊天,可见它当时的技术有多么前沿。WebEx
仅用四年时间就成功在美国上市,当时引起了不小的轰动。现在大家熟知的 Zoom
创始人袁征、声网创始人赵斌都是 WebEx
的早期员工。
而娱乐直播是从 2002 年开始真正发展起来的,当时 Adobe
推出了基于 RTMP
的流媒体服务器 FMS
,它推动了媒体分发技术的广泛应用。从 FMS
之后,各种流媒体服务器相继上市,如 Wowza
、Red5
、Nginx-Rtmp Module
、SRS
等。之后各大 CDN
厂商看到了这个巨大的市场,纷纷推出了各自的直播系统,从而形成了现在以阿里、腾讯为首,多家 CDN
并存的市场格局。
这两种技术各有优缺点:互动直播主要解决人们远程音视频交流的问题,所以其优点是实时性强,时延一般低于 500ms;而娱乐直播则主要解决音视频的大规模分发问题,因此其在大规模分发上更具优势,但实时性比较差,通常时延在 3s 以上。表 1.1 中给出了目前常见的几种直播技术。

在表 1.1 中,只有 WebRTC
技术用于实时互动直播,而其他几种技术都用于娱乐直播。实际上,最初娱乐直播也只有 RTMP 这一种方案可选,但后来由于苹果宣布不再支持 RTMP,并推出了自己的解决方案 HLS,最终导致 RTMP 走向了消亡。HLS 是基于 HTTP 的,它首先对媒体流(文件)进行切片,然后通过 HTTP 传输,接收端则需要将接收到的切片进行缓冲,之后才能将媒体流平稳地播放出来。基于上述机制,HLS 在实时性方面比 RTMP 差很多,但使用它的好处也是显而易见的(苹果产品原生支持),而且娱乐直播本来也对实时性要求不高,因此这种方案被大家广泛采纳。随着 Adobe
公司宣布不再维护 RTMP,那些已经广泛使用 RTMP 的公司不得不变更方案。然而,将 RTMP 换成 HLS 需要付出高昂的成本,于是有人提出了 HTTP-FLV 方案,即传输的内容仍然使用 RTMP 格式,但底层传输协议换成 HTTP,这种方案既可以保障其实时性比 HLS 好,又可以节约升级的成本,因此也受到各方的欢迎。不过 HTTP-FLV 的扩展性比较差,因此它只是一种临时方案。HLS 方案虽然不错(有大量的用户使用),但其他公司也有类似的方案,这使得各直播厂商不得不写多套代码,费时费力。于是,FFMPEG 推出了 DASH 方案,该方案与 HLS 类似,也是以切片的方式传输数据,最终该方案成为国际标准,从而使直播厂商只要写一套代码就可以实现切片传输了。