结束语 | 路漫漫其修远兮,吾将上下而求索

时间过得真快,转眼本专栏就进入了尾声,不得不说这是一段让人难以忘怀的“旅程”。在这段“旅程”中,我也力求对每一篇文章都能做到“精雕细琢”,将要讲的内容说清楚、写透彻。

音视频直播技术是一个非常小众的领域。一方面,音视频相关知识的学习成本确实要比学习其他知识高出很多,需要你花大量的时间去理解、去积累;另一方面,音视频相关技术还普及得不够,对于大多数研发同学来说,可能还不知道有哪些好用的音视频库,更不知道利用这些音视频开源库能做些什么有意思的产品。

但我敢肯定,随着 5G 的到来,音视频直播技术会越来越受到人们的重视。你不光可以用它来实现娱乐直播、在线教育、音视频会议,还可以将它应用于实时传输、娱乐互动、远程协同等方面,比如在线K歌、远程相亲、远程办工等等。可以说音视频直播技术是 5G 落地后的最主要的场景,目前阿里、腾讯、今日头条等大厂都纷纷举办音视频技术的高峰论坛,并花大价钱网络这方面的人才,就是为了在即将到来的 5G 时代抢得先机,为下一个 10 年做好准备。

而本专栏的一个主要目的就是向你普及音视频直播技术知识,教你使用 WebRTC 在浏览器之间实现 1 对 1 通信、共享桌面;不光如此,通过使用 Medooze 这类 SFU 流媒体服务器,你可以非常容易地实现多人互动;更让人欣喜的是你还可以将实时互动系统与传统的直播系统相结合,构造出既可以进行实时通信又可以万人观看的直播系统。这些功能在几年前还是不可想象的事儿。

本专栏就是按照上面的顺序向你逐一展开讲解的。首先,我们讲解了如何通过 WebRTC 实现1对1实时音视频通话,并以1对1实时通信为核心,向你介绍了其中用到的基本知识和概念,如 NAT 穿越、媒体协商等。

接着,在1对1 实时通话的基础上,我们又进行了升级改造,增加了 SFU 流媒体服务器,就可以实现多对多实时通话了。在这部分内容中我们重点介绍了 Medooze 流媒体服务器,讲解了 Medooze的架构设置,并通过类图和时序图对Medooze做了全面剖析。

最后就是传统音视频直播系统的构建。对于传统直播技术来说,最主要的是使用了 CDN 网络作为媒体流的转发中介,使我们的直播系统可以支持上万人或几万人、几十万人同时在线。

通过这些知识的学习,我想你至少应该知道 WebRTC 在音视频实时通话的作用,并清楚传统直播与实时互动直播的区别。事实上,你还应该知道如何通过 WebRTC 实现1对1实时通话、如何实现多人互动,以及该如何实现一套传统直播系统。

当然,本专栏只是学习音视频相关知识的一个开始,而音视频知识纷繁复杂,不可能通过一个专栏就将所有的音视频知识全部学通。对于在学习本专栏之前从没有接触过音视频技术的同学来说,还要学习一些音视频相关的其他知识,如 H264 的基本工作原理、YUV 数据格式、如何通过 FFmpeg 进行音视频的编解码、音视频该如何进行同步、移动端/PC端使用 WebRTC 与浏览器的区别、如何实现 SFU流媒体服器等等,以上这些都是你进一步需要重点学习的知识。

总之,5G的到来必然会使音视频成为一门引领时代的技术,而各大厂商早已为此谋篇开局,招集人才。而人才的奇缺,也必会让这些人才获得高额的回报。但学习音视频知识绝不是一朝一夕的事儿,你必须要脚踏实地一步一步来,只有这样,你才有可能成为各大厂真正需要的“人才”。 正所谓,路漫漫其修远兮,吾将上下而求索!

精选留言

  • 么么直播

    2019-12-01 10:12:36

    很好的教程,受益颇多。希望继续出音视频相关的其他教程。。😊
    作者回复

    谢谢!

    2019-12-22 22:50:10

  • zhushengtong

    2020-10-27 15:31:09

    老师您好!很久之前买了您的好多课程。想请问您一个问题。
    最近在研究的问题是,在webrtc中GCC获得了当前带宽,编码器是如何进行响应的,换句换说就是编码器如何通过目标帧的大小来决定实际编码出的帧的大小的。
    请问mediasoup中有类似的处理吗?还是这种处理是在webrtc的库中。
    期待您的解答!谢谢~
    作者回复

    你这是两个问题。对于客户端来说,通过GCC获得带宽后,会将带宽返回给编码器。对于 VP8来说,它可以根据带宽控制输出的码流大小;对于mediasoup来说,如果你使用了simulcast , 那么mediasoup 会根据接收方的带宽选择合适的码流进行发送。

    2020-11-10 18:22:12

  • 伟伟

    2020-04-05 11:06:16

    老师好!目前在线教育平台,如新东方等他们webrtc普及情况如何?是自研还是第三方?
    作者回复

    第三方,用的声网;自己也再搞;

    2020-04-10 10:21:24

  • 神经旷野舞者

    2019-12-18 22:07:56

    老师的步骤讲解非常详细友好,demo上手没有障碍,感觉音视频这块的难点在于厂家的标准不统一,还有就是高并发的性能问题,随之带来的架构也比较陌生
    作者回复

    目前流媒体架构已经有很多开源的项目了,如文中介绍的 medooze, 还有mediasoup, janus 都非常有名,对它们中的任何一个了解后,进行改造就可以了。现在大多数厂家还不知道webrtc已经成熟到了可以浏览器与 pc/ios/android稳定互通的情况,还在自己改 webrtc的代码,😄

    2019-12-22 22:25:04

  • 龙堂修罗

    2019-10-17 10:03:38

    写得很棒,剩下靠自己实践了,老师辛苦了
    作者回复

    谢谢〜

    2019-10-17 11:19:11

  • ifelse

    2025-08-13 12:09:13

    学习打卡
  • 鲁大江

    2022-09-19 11:13:07

    很好的课程,还买了老师的实体书!感谢老师
  • 王兵

    2020-04-02 15:24:29

    后面能详细解析medooze吗?这个还是很不错的!顺便请教一下,mediasoup和medooze 谁抄谁的,很多地方好相似呀
    作者回复

    感觉medooze 借鉴mediasoup 的更多一些

    2020-04-10 10:20:06

  • 华仔

    2020-03-28 21:47:38

    一气呵成 看完了 受益匪浅
    作者回复

    谢谢

    2020-04-10 10:12:12

  • 问心

    2020-03-22 21:02:54

    后续会有一些webrtc底层源码解析的课程么?
    作者回复

    会有的,预计在今年下半年出来

    2020-03-24 16:08:29

  • Bao

    2020-03-19 13:30:00

    感谢,收获满满😄
  • Geeker

    2020-03-10 12:44:31

    感谢!老师,对直播有了解了一点~
  • 神经旷野舞者

    2019-12-22 23:18:19

    谢谢老师回复了这么多,关于音视频的感觉比较反直觉,感觉自己应该多调试再提问
    作者回复

    对,实践出真知!

    2020-01-14 23:16:35

  • Happy~张🤔

    2019-11-15 09:51:56

    期待老师出android的webrtc深入点东西,
    作者回复

    继续努力!

    2019-11-23 17:43:01

  • XiaoLong

    2019-10-13 12:00:05

    谢谢老师,收获很多,希望能够开设更多的语音视频相关专栏
    作者回复

    谢谢,好评!我会继续加油!

    2019-10-14 13:25:37

  • lnner

    2019-10-12 13:27:09

    李老师辛苦了,感谢您的分享。
    作者回复

    谢谢,我会继续努力哈!

    2019-10-14 13:31:09

  • 2019-10-12 10:59:00

    老师,你说视频相亲吗?不是很明白,腾讯QQ,微信就有,难道有必要再开发个
    作者回复

    哈哈,这就看你的业务需求了。现在有一种多人相亲。有点类似一个电视节目那种,有个红娘帮忙牵线!

    2019-10-14 13:32:28

  • 许童童

    2019-10-12 08:32:08

    跟着老师学到了很多,老师辛苦了
    作者回复

    谢谢〜,我会继续努力哈!做出更好的专栏!

    2019-10-14 13:32:59

  • Jason

    2019-10-12 07:11:26

    跟着老师一路走来,收获良多,感谢
    作者回复

    谢谢!谢谢!继续努力!

    2019-10-14 13:33:19

  • John

    2019-10-12 04:26:25

    意犹未尽 超哥别走 加个餐吧 哈哈哈哈
    作者回复

    谢谢〜,感谢你的一直陪伴!

    2019-10-14 13:33:46