从 0 打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
32579 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
WebRTC 1对1通话 (23讲)
从 0 打造音视频直播系统
15
15
1.0x
00:00/13:11
登录|注册

开篇词 | 5G的到来将会为音视频插上飞翔的翅膀

讲述:李超大小:12.07M时长:13:11
5G时代带来发展机遇
WebRTC降低学习成本
音视频技术广泛应用
主题三:支持上万人同时在线的直播系统
主题二:WebRTC多人音视频实时通话
主题一:WebRTC 1对1通话
专栏从0开始讲解音视频知识
人才需求增加
音视频技术门槛高
未来音视频技术应用场景
WebRTC技术降低门槛
5G商用解决带宽问题
视频压缩率问题解决
移动网络发展
音频压缩技术
视频压缩技术
音视频技术发展前景
如何学习音视频技术
行业及学习痛点
音频技术的现在与未来
作者音视频研发经验
音视频技术发展
人类文明历史
5G的到来将会为音视频插上飞翔的翅膀
参考文章

该思维导图由 AI 生成,仅供参考

在浩如烟海的生命长河中,人类文明已经有几千年的历史。从远古时期,人类就梦想着有一天可以听到、看到千里之外的声音和景象,当时的人们认为只有神仙(千里眼和顺风耳)才能做到。
其实在这漫长的时间里,真正推动人类大跨度进步的时期只是最近几百年。到了第二次工业革命期间的 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 通话;然后,再逐步深入学习其他音视频知识。
因此,在本专栏中,我将通过下面三大主题来进行讲解,并且在整个的讲解过程中,我会采取循序渐进、各个击破的办法来介绍各个知识点,最终不仅让你掌握到音视频的核心知识,而且真正能依靠这些知识做出你想要的音视频产品。

主题一:WebRTC 1 对 1 通话

通过本主题的学习,你最终将学会如何在浏览器间实现 1 对 1 通话。比如一个人在北京,另一个人在上海,他们打开浏览器进入同一个房间后,就可以进行音视频通话了。
本主题我精编了 22 篇文章,这 22 篇文章环环相扣,每篇文章会介绍一个主题,而每个主题的内容都是实现 WebRTC 1 对 1 通话的一部分。当你读完这 22 篇文章后,一个即学即用的 1 对 1 实时通话的例子就展现在你面前了。

主题二:WebRTC 多人音视频实时通话

学完 WebRTC 1 对 1 通话这部分内容后,你对 WebRTC 就有了一定基础。接下来,我将为你介绍如何实现多人音视频实时互动
在这个主题里,我会首先介绍几种多人音视频实时互动的架构,以及这几种架构的优劣。然后,重点讲解如何使用 SFU 架构实现多人音视频实时通话(SFU 是现在最流行的多人实时互动架构)。当你阅读完本部分知识后,就可以亲手实现多人音视频实时通话了。

主题三:支持上万人同时在线的直播系统

支持上万人同时在线的直播系统主要使用 CDN 技术,它是一种比较老的直播架构,使用的底层传输协议是 RTMP 和 HLS。
在本主题中,我会重点介绍 CDN 原理、RTMP、HLS 协议,以及如何使用各种播放器从 CDN 拉取媒体流。同样地,你阅读完本主题内容后,就会清楚地知道上万人同时在线直播的原理,并可以自己实现一套这样的直播系统。
下面就是这个专栏的目录,你可以快速了解下整个专栏的知识结构体系。
到这里,依然可能会有同学质疑说:“做音视频给人的感觉就是个小众市场呀!发展前景会好吗?”
我觉得这里我有必要再强调和说明下。那是过去,由于网络带宽的限制,以及音视频技术本身的一些原因,音视频技术无法被广泛地应用。但现在不一样了,随着近几年技术的发展,音视频已经越来越被广泛地应用于各行各业,比如平时常见的抖音、微信短视频、娱乐直播、教育直播、音视频会议等,已经逐渐渗透到我们工作和生活的各个角落。就连大热的 AI 技术也与音视频技术联系非常紧密,像现在的智能音箱、自动驾驶、人脸识别、表情识别等都离不开音视频技术。
另外,让人欣喜的是随着 Google 对 WebRTC 的推动,在浏览器下实现音视频应用变有极为简单,这大大降低了非音视频专业的开发人员学习成本,并且其应用前景也变得更加广阔。
可以说,这么有前景的技术非专业人员也可以很快学习和上手,而掌握了音视频技术的核心技术,一定可以让你在未来职场上获得丰厚的回报和满满的成就感。
5G 的时代马上到来,它将会为音视频插上飞翔的翅膀,让我们共同起飞吧!你准备好了吗?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

音视频技术在5G时代迎来了飞速发展,为各行各业带来了广泛应用和前景。文章作者具有丰富的音视频研发经验,深刻了解音视频技术及未来发展趋势。他指出,5G网络的商用解决了带宽问题,使得音视频技术得以广泛应用于音视频会议、在线教育、远程医疗、娱乐游戏等领域。特别是WebRTC技术的出现降低了音视频技术的门槛,使得其应用前景更加广阔。文章将通过三大主题进行讲解,包括WebRTC 1对1通话、WebRTC多人音视频实时通话以及音视频技术的未来发展。通过这些主题的学习,读者将能够掌握音视频的核心知识,并且真正能够依靠这些知识开发出自己想要的音视频产品。文章内容丰富,涵盖了音视频技术的发展历程、现状和未来趋势,对于对音视频技术感兴趣的读者具有很高的参考价值。文章强调了音视频技术的广泛应用和前景,以及5G时代为其发展带来的巨大机遇,鼓励读者积极学习和掌握相关知识,以迎接未来的挑战。

2019-07-1526人觉得很赞给文章提建议

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(67)

  • 最新
  • 精选
  • IT蜗壳-Tango
    老师,我们用什么语言实现啊

    作者回复: 大部分用 JS,服务端会介绍 C /C++。

    2019-07-15
    23
  • 大魔王
    老师,为什么移动端app 直播用rtmp啊,为什么都不统一成用webrtc

    作者回复: “为什么移动端app 直播用rtmp啊”,不知你是如何得到这个结论的?真实的情况是,技术的选择是根据不同的应用场景而来的。对于娱乐直播都是使用 rtmp协议,它的客户端包括 APP, PC...; 对于音视频会议/在线教育这种场景,普遍都使用的 webrtc,在 webrtc底层用的是 RTP/RTCP/UDP协议。所以你的根本问题是你对音视频技术有误解。

    2019-11-14
    20
  • C家族铁粉
    是不是有C/C++基础就可以学习这个专栏呢?

    作者回复: 有 JS 基础就可以了,有 C/C++基础更好,后面在讲多人互动时会用到。

    2019-07-15
    3
    7
  • 神经旷野舞者
    谢谢老师解答,思路清晰多了。我大概明白作为技术人员合理的研究方向应该是ffmpeg个webrtc的源码,这里面的技术难点是什么呢?里面核心不需要编解码的的数学之类研发能力吗? 留言里看待老师提到服务器的流媒体转发也是技术难点,是不是和ffmpeg,webrtc并列?适合作业个人的职业技术优势吗?

    作者回复: ffmpeg和webrtc是做音视频两个最重要的库,ffmpeg在处理音视频时有一套自己的流程,可以说这套流程的使用ffmpeg大大降低了人们利用音视频的难度。如果你熟练的撑握了ffmpeg,就可以做出很多非常酷炫的事儿了。但学习这套流程本身就有难度;对于webrtc来讲也是如此,它最大的优势是在实时通信及音频通话方面。对于这两个库的学习其实不用专门学习数据知识的。对于刚入门的同学来说,先将这两块学好再研究webrtc流媒体服务器吧。

    2019-11-15
    6
  • 神经旷野舞者
    很好的视频,其实原来没想做这方面,但是工作做了,感觉也不错,反正都是编程,要做就做好,现在工作内容涉及视频监控系统,职务做ffmpeg的转码调用和其他边角功能,老师有什么职业建议吗,可以主动涉及一些高级的技术主题,这方面需要博士之类吗,听着好像编解码比较高级,但我也不可能像搞学术那样去研究这个,老师有什么音视频的发展看法,可以形成有较大优势的职业竞争力呢?

    作者回复: 实际上音视频编解码在真正工作中的开发量并不大。对于音视频的应用而言,理解编解码的基本原理,熟悉它的API如何使用就可以了。像音视频的算法之类的工作,全世界也没有多少人在搞,除非你数学特别牛,算法特别牛,否则的话不建议去专门搞音视频算法。对于音视频的发展,目前业界有比较统一的观点,就是 WebRTC 会引领未来,现在几乎所有的大厂都在研究 WebRTC , 而 ffmepg作为 WebRTC 处理音视的工具在 WebRTC内部使用。所以你要想在音视频方面深入的话,这两个库是你必须要深入研究的。

    2019-11-14
    5
  • Ace
    打卡打卡,一起飞吧

    作者回复: 哈哈,一起飞!

    2019-07-15
    2
    5
  • 湛卢
    老师又出新课了 强烈支持 主要是前端的吧。

    作者回复: 对,主要是前端。不过增加了多对多互动+高并发同时在线

    2019-07-15
    3
  • Shershon
    最开始学习PHP,只想开发一个属于自己的网站;后来,觉得要写出高性能、抗住大负载的网站,必须知道底层的知识,于是开始学习操作系统、网络、数据库、设计模式、c/c++等,研读了PHP底层源码。再后来,心里琢磨着结合自己的爱好,和技术的前景(最好是和网络相关,开发语言涉及到c/c++的),好好精通一个方向(最好是文娱方向和生活消费方向的),但是一直迷茫不已,飘忽不定。今年,入职了一家新公司,现在参加直播相关的开发工作,然后想买课买专栏买书,然后遇到了这么好的专栏和老师,然后结合自己的兴趣和技术储备,心里想说一句:终于等到了你,终于找到了你,rtc技术!

    作者回复: 哈哈,加油💪

    2020-05-03
    2
    2
  • Guarantee
    老师,我使用brew install nginx-full —with-rtmp-module 的时候报错,显示:ChecksumMismatchError:SHA256 mismatch ,怎么解决呀

    作者回复: 这应该是你系统环境问题,你自己再查查哈!

    2019-12-07
    2
  • J.Smile
    老是,我们是JAVA的,学习起来有障碍吗

    作者回复: 没障碍,只要有一门语言就可以了

    2019-07-18
    2
收起评论
大纲
固定大纲
音频技术的现在与未来
行业及学习痛点
如何学习音视频技术
主题一:WebRTC 1 对 1 通话
主题二:WebRTC 多人音视频实时通话
主题三:支持上万人同时在线的直播系统
显示
设置
留言
67
收藏
95
沉浸
阅读
分享
手机端
快捷键
回顶部