自古以来人类就需要音视频技术。
压缩技术解决了(音频、视频压缩编解码器)、高速公路建成了(带宽提升,光纤、4/5G),接下来就是如何利用这些技术进行产品化了。
“音频频直播” 就是众多音视频应用中最亮眼,也是大家最需要的应用。
对于不同的行业和领域,在使用音视频直播时,人们往往给直播不同的称谓,例如:在教育领域中的直播称为 “在线教育直播”,在远程办公领域的直播称为 “网络音视频会议”,在娱乐领域的直播称为 “娱乐直播”,等等。
虽然所有的 直播 底层都是使用 音视频技术 + 网络传输技术,但是由于应用场景的不同、目标不同,所以它们的技术方案也有很大的区别。
由此,我们可以知道视频直播分成了两条技术路线:
一条是以 音视频会议 为代表的 实时互动直播;
另一条是以 娱乐直播 为代表的 流媒体分发。
这两种技术各有优缺点:互动直播主要解决人们远程音视频交流的问题,所以其优点是实时性强,时延一般低于500ms;而娱乐直播则主要解决音视频的大规模分发问题,因此其在大规模分发上更具优势,但实时性比较差,通常时延在3s以上。
表1.1中是目前常见的几种直播技术:
在表1.1中,只有WebRTC技术用于实时互动直播,而其他几种技术都用于娱乐直播。
实际上,最初娱乐直播也只有RTMP这一种方案可选,但后来由于苹果宣布不再支持RTMP,并推出了自己的解决方案HLS,最终导致RTMP走向了消亡。
RTMP(Real Time Messaging Protocol,实时消息传输协议),是Adobe公司开发的私有协议(没有完全公开)。该协议基于TCP,是一个协议族,包括 RTMP基本协议 及 RTMPT/RTMPS/RTMPE等多种变种。RTMP是Adobe公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。
HLS(HTTP Live Streaming,基于HTTP的自适应码率流媒体传输协议)是基于HTTP的,它首先对媒体流(文件)进行 切片,然后通过HTTP传输,接收端则需要将接收到的切片进行缓冲,之后才能将媒体流平稳的播放出来。
基于上述机制(发送端分段下发,接收端缓冲后播放),HLS在实时性方面比RTMP差很多,但使用它的好处也是显而易见的(苹果产品原生支持),而且娱乐直播本来也对实时性要求不高,因此这种方案被大家广泛采纳。
然而,将RTMP换成HLS需要付出高昂的成本,于是有人提出了 HTTP-FLV方案,即传输的内容仍然使用RTMP格式,但底层传输协议换成HTTP(RTMP原本是基于TCP底层传输),这种方案既可以保证其实时性比HLS好,又可以节约升级的成本。
但是HTTP-FLV的劣势是扩展性比较差,因此只是一个临时方案。HLS方案虽然不错,但是其他公司也有类似的方案,这导致各直播厂商不得不写多套代码,费时费力。基于这种情况,FFMPEG推出了DASH方案,DASH方案也是以 切片 的方式传输数据(与HLS类似),该方案最终成为国际标准,从而使直播厂商只要写一套代码就可以实现切片传输了。
音视频直播的现状与未来:
音视频直播有两个重要趋势:
一是实时互动直播技术与娱乐直播技术合二为一;二是WebRTC已经是直播技术的标准,大家都在积极的拥抱WebRTC。
WebRTC目前已经成为音视频实时通信的标准,而它与浏览器是深度绑定的,因此未来浏览器的功能会越来越强大,强大到我们在终端上不需要安装任何其他软件,只要有一个浏览器就可以完成我们所有的日常工作。
一个最简单的直播客户端至少包括 音视频采集模块、音视频编码模块、网络传输模块、音视频解码模块、音视频渲染模块五大部分。
3A问题:
Acoustic Echo Cancelling(AEC),回音消除;
Autimatic Gain Control(AGC),自动增益;
Active Noise Suppression(ANS),降噪。
通过上面的描述,可见自己研发一套音视频直播客户端的难度,所以使用WebRTC是有必要的。
WebRTC的架构大体分为四层:
接口层、Session层、核心引擎层、设备层。
WebRTC架构图:
音视频数据流:
由于线上与真实场景存在这样或那样的不同,因此我们可以总结出,音视频实时通信追求的本质是尽可能逼近或达到面对面交流的效果,同时这也是音视频实时通信的目标。
要实现这样的效果,就不得不提两个指标(这也是音视频实时通信中关注的两个指标):
一是实时通信中的延迟指标;
二是音视频服务质量指标。
在端到端之间,引起延迟的因素有很多,比如 音视频采集时间、编解码时间、网络传输时间、音视频的渲染时间以及各种缓冲区所用的时间等。
在众多延迟因素中,网络传输引起的延迟是动态的,所以其最难以评估、难以控制、难以解决,而其他因素引起的延迟时间则基本是恒定不变的。
业务服务质量包括 音频服务质量 和 视频服务质量。
由于音频数据量比较小,对网络的影响不大,并且3A问题非常复杂,需要专门的介绍,下面主要介绍视频服务质量指标。
与视频服务质量有关的几个基本概念:
用来评估业务服务质量好坏的指标:MOS值(Mean Option Score,平均意见值):
5 – 优秀,4 – 较好,3 – 还可以,2 – 差,1 – 很差。
举例,当分辨率为 640 * 480时,需要 1900Kbps 的码率;当分辨率为 1920 * 1080 时,需要 7Mbps的码率。
由上述指标可见,要想使在线实时通信可以逼近或者达到面对面交流的效果,就必须 尽可能的降低传输的延迟,同时增大音视频传输的码率。
然而,降低延迟和增大码率是矛盾的,除非所有用户都有足够的带宽和足够好的网络质量,但这显然是不现实的。
现实中,我们需要服务许许多多的用户,但每个用户的网络状况参差不齐,而他们却都希望享受较好的实时音视频服务质量。
这就形成了 用户“较差”的网络与接收“较好”的服务之间的矛盾。
更准确的说,是 “音视频服务质量” 与 “带宽大小、网络质量、实时性” 之间的矛盾,而这也是实时通信的主要矛盾。
如何解决这一矛盾,总结起来有以下几种方法:
参考内容:
《WebRTC音视频实时互动技术—原理、实战与源码分析》
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/ArtAndLife/article/details/122153009
内容来源于网络,如有侵权,请联系作者删除!