从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打造音视频直播系统》课程结束了,来做个测试吧!

你将获得

  • 深入掌握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是其使用的底层传输协议。学完本模块内容后,你就会清楚地知道上万人同时在线直播的原理,并可以自己实现一套这样的直播系统。


课程目录


特别放送

免费领取福利


限时活动推荐


订阅须知

随机推荐

真维斯冬季双面绒卫衣男加绒加厚开衫连帽保暖抓绒上衣青少年学生...

诺梵松露巧克力圣诞节糖果低糖零食礼盒装4口味休闲零食代可可脂5...

诺梵松露巧克力圣诞节糖果低糖零食礼盒装4口味休闲零食代可可脂5...

惠寻京东自有品牌评测值得买吗?测评结果让你出乎意料!

葵花药业维生素b族60片多种复合成人男士女士含b1b2b6叶酸应该注...

光明全脂高钙奶粉爆料怎么样?全方位深度解析!