在浩如烟海的生命长河中,人类文明已经有几千年的历史。从远古时期,人类就梦想着有一天可以听到、看到千里之外的声音和景象,当时的人们认为只有神仙(千里眼和顺风耳)才能做到。
其实在这漫长的时间里,真正推动人类大跨度进步的时期只是最近几百年。到了第二次工业革命期间的1876年,贝尔电话的发明,使人类可以听到千里之外声音的梦想终于成真。
此后,音视频技术不断发展。一方面,视频压缩技术从H261到H264,再到现在的 H265 及未来不久将出现的 AV1,视频压缩率越来越高;音频压缩技术也从电话使用的 G.711、G.722等窄带音频压缩技术,发展到现代的 AAC、OPUS等宽带音频压缩技术。
另一方面,从中国 3G 网络正式商用开始,移动网络也发生了翻天覆地的变化。从 3G 到 4G ,再到马上要落地的 5G,移动网络的带宽和质量越来越高,为音视频数据传输打下了坚实的基础。
我有幸于2010年初,参与研发了当时所在公司自主知识产权的音视频引擎系统,自此便一直从事音视频方面的研发工作,到现在已经将近十年的从业经验。
在此期间,我所开发的直播系统既可以支持上万人同时在线,又可以进行多人实时音视频互动,此外还可以与固话、MCU等硬件设备互联互通。
这套系统可以用于多种场景,如音视频会议、在线教育(大班课、小班课、1对1)、即时通讯等。
在开发直播系统期间,我既做过大负载高并发的音视频流媒体服务器的设计与开发,也做过客户端音视频引擎的设计与开发。经过这么多年的洗礼,可以说对音视频技术及未来的发展已了然于胸。
音频技术发展到今天,可以说已经非常成熟了,如我们上面所讲的,H264/H265、VP8/VP9 以及后面的 AV1 编解码器,解决了视频压缩率的问题;而5G的商用,解决了带宽的问题。这两个问题解决后,使得各行各业都开始使用音视频技术以实现更佳的用户体验,如音视频会议、在线教育、远程医疗、娱乐游戏等。
尤其是2011年Google推出 WebRTC 技术后,大大降低了音视频技术的门槛。有了 WebRTC,你就不必自己去实现回音消除算法了;有了WebRTC ,你也不必自己去实现各种音视频的编解码器了;有了 WebRTC,你更不必去考虑跨平台的问题了。因此,可以说WebRTC 的出现大大加速了音视频技术的应用与推广。
WebRTC有个特别有诱惑力的愿景:可以在浏览器上快速开发出各种音视频应用。其实,这一愿景已经实现。通过本专栏的学习,你就可以轻松实现浏览器之间的音视频通话,是不是很酷?
可以预见,未来音视频技术将会作为一种基础技术应用到更广泛的场景中。它可以与 AR/VR 结合,让你在远端体验虚拟与现实,如虚拟服装体验;也可以与人工智能结合用于提高服务质量,如用于教学上帮助老师提高教学质量;它还可以与物联网结合,用在自动驾驶、家庭办公等领域。
随着各种音视频技术的完善、5G的落地,以及各种音视频应用的出现,在未来两三年内,音视频必定会像当年移动互联网一样出现井喷的人才需求。
然而,音视频技术本身纷繁、复杂,需要很深的专业及技术背景。举个简单的例子,当进行音视频互动时,经常会听到自己的回音,这是什么原因引起的呢?再比如说,用户进入教室后经常看到老师的视频卡顿、花屏,这是什么原因造成的?你又该如何解决呢?如果你没有很深的背景知识,对音视频编解码原理不清楚,对音视频处理流程不了解的话,你是根本无法解决上述问题的。
另外,如果你想开发一款音视频产品,不仅需要有最基础的音视频知识(如音视频的编码、解码),往往还需要多层级的技术栈,涉及移动端开发、PC端开发、各种协议规范、网络协议、socket开发等。所以,要想成为一员合格的音视频开发工程师,你需要对各领域的知识都有一些掌握才行。
看到上面这些困难,是不是很多同学开始打退堂鼓了?
其实你不必担心。音视频技术虽然门槛高,但我所开的这个专栏是从 0 开始讲解音视的相关知识,一步一步,循序渐进:首先,让你学会如何使用浏览器相关API调用WebRTC实现1对1通话;然后,再逐步深入学习其他音视频知识。
因此,在本专栏中,我将通过下面三大主题来进行讲解,并且在整个的讲解过程中,我会采取循序渐进、各个击破的办法来介绍各个知识点,最终不仅让你掌握到音视频的核心知识,而且真正能依靠这些知识做出你想要的音视频产品。
通过本主题的学习,你最终将学会如何在浏览器间实现1对1通话。比如一个人在北京,另一个人在上海,他们打开浏览器进入同一个房间后,就可以进行音视频通话了。
本主题我精编了 22 篇文章,这 22 篇文章环环相扣,每篇文章会介绍一个主题,而每个主题的内容都是实现WebRTC 1对1通话的一部分。当你读完这 22 篇文章后,一个即学即用的1对1实时通话的例子就展现在你面前了。
学完WebRTC 1对1 通话这部分内容后,你对 WebRTC 就有了一定基础。接下来,我将为你介绍如何实现多人音视频实时互动。
在这个主题里,我会首先介绍几种多人音视频实时互动的架构,以及这几种架构的优劣。然后,重点讲解如何使用 SFU 架构实现多人音视频实时通话(SFU是现在最流行的多人实时互动架构)。当你阅读完本部分知识后,就可以亲手实现多人音视频实时通话了。
支持上万人同时在线的直播系统主要使用 CDN 技术,它是一种比较老的直播架构,使用的底层传输协议是 RTMP 和 HLS。
在本主题中,我会重点介绍 CDN 原理、RTMP、HLS 协议,以及如何使用各种播放器从 CDN 拉取媒体流。同样地,你阅读完本主题内容后,就会清楚地知道上万人同时在线直播的原理,并可以自己实现一套这样的直播系统。
下面就是这个专栏的目录,你可以快速了解下整个专栏的知识结构体系。
到这里,依然可能会有同学质疑说:“做音视频给人的感觉就是个小众市场呀!发展前景会好吗?”
我觉得这里我有必要再强调和说明下。那是过去,由于网络带宽的限制,以及音视频技术本身的一些原因,音视频技术无法被广泛地应用。但现在不一样了,随着近几年技术的发展,音视频已经越来越被广泛地应用于各行各业,比如平时常见的抖音、微信短视频、娱乐直播、教育直播、音视频会议等,已经逐渐渗透到我们工作和生活的各个角落。就连大热的AI技术也与音视频技术联系非常紧密,像现在的智能音箱、自动驾驶、人脸识别、表情识别等都离不开音视频技术。
另外,让人欣喜的是随着Google对WebRTC的推动,在浏览器下实现音视频应用变有极为简单,这大大降低了非音视频专业的开发人员学习成本,并且其应用前景也变得更加广阔。
可以说,这么有前景的技术非专业人员也可以很快学习和上手,而掌握了音视频技术的核心技术,一定可以让你在未来职场上获得丰厚的回报和满满的成就感。
5G的时代马上到来,它将会为音视频插上飞翔的翅膀,让我们共同起飞吧!你准备好了吗?
评论