从0打造音视频直播系统

从0打造音视频直播系统 / 手把手教你打造实时互动音视频直播系统

李超 前新东方音视频直播技术专家,前沪江音视频架构师
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词 | 5G的到来将会为音视频插上飞翔的翅膀

    随着各种音视频技术的完善、5G的落地以及各种音视频应用的出现,在未来2~3年内,音视频必定会出现井喷的人才需求。

  • 01 | 原来通过浏览器访问摄像头这么容易

    通过getUserMedia这个API,你可以对音视频设备做各种各样的控制。

  • 02 | 如何通过WebRTC进行音视频设备检测呢?

    在浏览器下只需要调用 enumerateDevices 方法,就可以轻松获取设备信息了。

  • 03 | 如何使用浏览器给自己拍照呢?

    现代的浏览器功能越来越强大,你不光可以通过它进行拍照,而且还可以对拍下来的照片进行各种滤镜处理。

  • 04 | 可以把采集到的音视频数据录制下来吗?

    在音视频会议、在线教育等系统中,录制是一个特别重要的功能。

  • 05 | 原来浏览器还能抓取桌面?

    本文主要讲解了如何通过浏览器提供的 API 来抓取桌面以及如何通过MediaRecorder对象将桌面录制下来。

  • 06 | WebRTC中的RTP及RTCP详解

    在WebRTC众多协议中,RTP、RTCP相辅相成,很是重要,但具体该怎么理解和使用呢?

  • 07 | 你竟然不知道SDP?它可是WebRTC的驱动核心!

    WebRTC之所以能很好地运转起来,完全是由SDP驱动的。

  • 08 | 有话好商量,论媒体协商

    WebRTC进行媒体协商的作用是让双方找到共同支持的媒体能力,如双方都支持的编解码器,从而最终实现彼此之间的音视频通信。

  • 09 | 让我们揭开WebRTC建立连接的神秘面纱

    WebRTC是使用优先级的方法去建立端对端的连接,这样就能巧妙地实现“既要高效传输,又能保证连通率”这个目标。

  • 10 | WebRTC NAT穿越原理

    本文介绍了NAT的4种类型,同时又结合流程图探讨了主机该如何去判断自己的 NAT 类型。

  • 11 | 如何通过Node.js实现一套最简单的信令系统?

    本文为你讲解了如何实现一套最简单的 WebRTC 信令服务系统。有了它,你就能真正地体验到 WebRTC 的强大之处了。

  • 12 | RTCPeerConnection:音视频实时通讯的核心

    RTCPeerConnection 类是实现1对1实时互动音视频系统最核心的类。它是如何实现的?其中的原理是什么呢?

  • 13 | 在WebRTC中如何控制传输速率呢?

    如果你不对音视频传输速率进行限制的话,它一定会对音视频服务质量产生影响。

  • 14 | 如何打开/关闭音视频?

    音视频的打开/关闭逻辑上虽并不太复杂,但在直播系统是却是必不可少的功能,是很常见的需求。

  • 15 | WebRTC中的数据统计原来这么强大(上)

    WebRTC的统计信息对于真实的应用场景是非常重要的,音视频各种服务质量的好坏都是通过它们来决定的。

  • 16 | WebRTC中的数据统计原来这么强大(下)

    本文在上一篇文章的基础之上,继续对 WebRTC 中的统计信息做进一步的讨论,了解它更为详细的内容。

  • 17 | 如何使用Canvas绘制统计图表(上)?

    Canvas支持2D和3D图像的绘制,并且应用领域非常广泛,基本上涵盖了Web图形/图像、视频、动画等领域。

  • 18 | 如何使用Canvas绘制统计图表(下)?

    本文向你讲述了WebRTC的统计信息图表是如何通过 Canvas 来实现的,还分析了各种统计信息图表实现的基本逻辑。

  • 19 | WebRTC能不能进行文本聊天呢?

    本文结合具体的例子——实时文字聊天,向你详细介绍了如何使用 RTCDataChannel 进行非音视频数据的传输。

  • 20 | 原来WebRTC还可以实时传输文件?

    实时文件传输不会受到操作系统或开发语言的影响,所以你可以在任何不同的操作系统上进行文件的传输,非常方便。

  • 21 | 如何保证数据传输的安全(上)?

    数据安全很重要,本文主要讲解数据安全相关的概念。只有将这些基本概念搞清楚了,你才知道WebRTC是如何对数据进行防护的。

  • 22 | 如何保证数据传输的安全(下)?

    为了保护音视频数据的安全性,WebRTC提供了一整套安全机制。那该如何使用这套机制呢?

  • 23 | 实战演练:通过WebRTC实现一个1对1音视频实时直播系统

    通过本文的“串联”,你就可以自己实现一个真正的 1 对 1 的实时音视频直播系统了。

  • 24 | 多人音视频实时通讯是怎样的架构?

    如果你想要通过WebRTC实现多对多通信,该如何做呢?综合来看,多方通信架构无外乎是Mesh、MCU和SFU这三种方案。

  • 25 | 那些常见的流媒体服务器,你该选择谁?

    SFU已经有很多开源的实现了,比如Licode、Janus-gateway、MediaSoup、Medooze等。

  • 26 | 为什么编译Medooze Server这么难?

    通过本文的学习,你会对 node-gyp、GYP、Make、Ninja 等工具有了比较清楚的了解。

  • 27 | 让我们一起探索Medooze的具体实现吧(上)

    本文讲解了Medooze的SFU模型、录制回放模型、推流模型等内容,这些内容可以让你对WebRTC服务器有一个初步认知。

  • 28 | 让我们一起探索Medooze的具体实现吧(下)

    本文主要讲解WebRTC 终端是如何与Meooze建立连接的、数据流是如何流转的,以及如何进行异步I/O事件处理的。

  • 29 | 如何使用Medooze 实现多方视频会议?

    本文介绍了如何通过Medooze SFU搭建最简单的音视频会议系统,该系统搭建好后就可以进行多人音视频互动的“实验”了。

  • 30 | 实战演练:通过WebRTC实现多人音视频实时互动直播系统

    本文是篇总结性的文章,其主要目的是带你梳理和串联前面所讲的知识点,这样你会对Medooze实现多方通信有一个全局的理解。

  • 31 | 一对多直播系统RTMP/HLS,你该选哪个?

    娱乐直播在前几年着实火了一把,像映客、斗鱼这类以展示才艺为主的直播产品非常受大家的欢迎。

  • 32 | HLS:实现一对多直播系统的必备协议

    HLS 是苹果开发的协议,苹果产品原生支持此协议,再加上它的连通性和灵活性,它在未来会有更广阔的应用前景。

  • 33 | FLV:适合录制的多媒体格式

    不管是在录制时,还是进行回放时,相较于MP4之类的多媒体格式,FLV都更有优势。

  • 34 | 如何使用Nginx搭建最简单的直播服务器?

    本文介绍了如何通过Nginx搭建一套最简单的RTMP/HLS流媒体服务器,基本涵盖了传统流媒体服务器方方面面的知识。

  • 35 | 如何构建云端一对多直播系统?

    目前99%的传统直播系统都是在CDN网络的基础上搭建出来的。因此本文主要介绍的就是如何通过CDN网络实现商用的直播系统。

  • 36 | 如何使用 flv.js 播放 FLV 多媒体文件呢?

    flv.js是由JavaScript语言开发的,其最大优势是即使不安装Flash插件也可以在浏览器上播放FLV文件。

  • 37 | 如何使用 video.js 播放多媒体文件?

    video.js是目前在浏览器上最好用的开源流媒体播放器,功能非常强大,是播放音视频直播媒体流必不可少的播放工具。

  • 38 | 实战推演:带你实现一个支持万人同时在线的直播系统

    本文主要从万人直播的整体架构、主播客户端架构、观众客户端架构和流量统计这四个方面向你讲述万人直播的构建。

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

    学习音视频知识绝不是一朝一夕的事儿,你必须要脚踏实地一步一步来,只有这样你才有可能成为各大厂真正需要的人才。

  • 结课测试 | 这些音视频直播系统的知识你都掌握了吗?

    《从0打造音视频直播系统》课程结束了,来做个测试吧!

41讲

你将获得

  • 深入掌握WebRTC实时通讯技术;
  • 实现1对1通话和多人音视频实时通话;
  • 搭建支持万人同时在线的直播系统;
  • 具备5G时代音视频技术能力。

讲师介绍

  • 深谙WebRTC 整体架构、音视频处理流程;
  • 对常见的 3A 问题(回音消除、降噪、增益)具有非常丰富的实战经验;
  • 对各种网络传输协议了然于胸,如RTP/RTCP、DTLS/SRTP/SRTCP、P2P等。

除了音视频,李超对Linux内核也做过深入研究,对大型系统构建如灾备、高负载、高并发系统有丰富经验,其研发的流媒体服务器上线后长年工作无事故。

另外,李超还具有7年多的团队管理经验,曾带领团队研发自主知识产权的音视频会议引擎,该系统于2011年正式上线为多家世界 500 强企业(如通用电气、海尔公司)提供服务。


课程介绍

现如今音视频技术已经非常成熟了,越来越被广泛地应用于各行各业,比如平时常见的抖音、微信短视频、娱乐直播、教育直播、音视频会议等,已经逐渐渗透到生活的各个角落。就连大热的AI技术也与音视频技术联系非常紧密,比如智能音箱、自动驾驶、人脸识别等都离不开音视频技术。

而千呼万唤的5G时代的到来,也会为音视频的发展插上飞翔的翅膀。有人总结说过:2G时代看文字,3G时代看图片,4G时代看视频,未来的5G时代可能看的就是更高效高清的直播和视频,这是网速提升的最直观体现,也是时代给的新机遇。

所以,可以预见在未来两三年内,音视频技术会是大势,也必定会像当年移动互联网一样出现井喷的人才需求,音视频人才会成为新的宠儿。面对这样的机遇,你若能掌握音视频技术的核心技术,一定可以在未来职场上获得丰厚的回报和满满的成就感。

虽说音视频技术比较纷繁和复杂,但本课程会从 0 开始讲解音视频的相关知识,以保证非专业人员也可以快速学习和上手;采取环环相扣、循序渐进、各个击破的办法来为你介绍各个知识点,最终让你掌握音视频的核心知识,并能够即学即用,依靠这些知识亲手做出你想要的音视频产品。

课程共38讲,分为3大模块。

1. WebRTC 1对1通话

主要讲解如何在浏览器间实现1对1通话,比如一个人在北京,另一个人在上海,他们打开浏览器进入同一个房间后,就可以进行音视频通话了。这一模块精编了环环相扣的 22 篇文章,每篇文章对应一个实现 WebRTC 1对1通话的主题。也就是说,这 22 篇文章是可以串联为一个即学即用的1对1实时通话的例子。

2. WebRTC多人音视频实时通话
主要探讨如何实现多人音视频实时互动。首先为你介绍几种多人音视频实时互动的架构,以及它们的优劣;然后,再重点讲解如何使用 SFU 架构实现多人音视频实时通话(SFU是现在最流行的多人实时互动架构)。学完本模块内容后,你就可以亲手实现多人音视频实时通话了。

3. 支持上万人同时在线的直播系统
重点介绍 CDN 原理、RTMP、HLS 协议,以及如何使用各种播放器从 CDN 拉取媒体流。其中,CDN是支持上万人同时在线直播系统的主要技术,而RTMP 和 HLS是其使用的底层传输协议。学完本模块内容后,你就会清楚地知道上万人同时在线直播的原理,并可以自己实现一套这样的直播系统。


课程目录


特别放送

免费领取福利


限时活动推荐


订阅须知

随机推荐

马骑顿儿童套装简单易上手吗?最全面的产品评测!

贝亲奶瓶奶嘴购买前需要注意什么?三分钟了解评测?

小东北星厨水饺-馄饨评测数据怎样?网友评测点评分享?

康夫F9可靠性如何?全方位深度评测解析!

松下ES-ERT3好用吗?最新评测揭秘!

松下ES-ERT3可以入手吗?看完这个评测就知道了!