从0打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
立即订阅
2827 人已学习
课程目录
已完结 40 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 5G的到来将会为音视频插上飞翔的翅膀
免费
WebRTC 1对1通话 (23讲)
01 | 原来通过浏览器访问摄像头这么容易
02 | 如何通过WebRTC进行音视频设备检测呢?
03 | 如何使用浏览器给自己拍照呢?
04 | 可以把采集到的音视频数据录制下来吗?
05 | 原来浏览器还能抓取桌面?
06 | WebRTC中的RTP及RTCP详解
07 | 你竟然不知道SDP?它可是WebRTC的驱动核心!
08 | 有话好商量,论媒体协商
09 | 让我们揭开WebRTC建立连接的神秘面纱
10 | WebRTC NAT穿越原理
11 | 如何通过Node.js实现一套最简单的信令系统?
12 | RTCPeerConnection:音视频实时通讯的核心
13 | 在WebRTC中如何控制传输速率呢?
14 | 如何打开/关闭音视频?
15 | WebRTC中的数据统计原来这么强大(上)
16 | WebRTC中的数据统计原来这么强大(下)
17 | 如何使用Canvas绘制统计图表(上)?
18 | 如何使用Canvas绘制统计图表(下)?
19 | WebRTC能不能进行文本聊天呢?
20 | 原来WebRTC还可以实时传输文件?
21 | 如何保证数据传输的安全(上)?
22 | 如何保证数据传输的安全(下)?
23 | 实战演练:通过WebRTC实现一个1对1音视频实时直播系统
WebRTC多人音视频实时通话 (7讲)
24 | 多人音视频实时通讯是怎样的架构?
25 | 那些常见的流媒体服务器,你该选择谁?
26 | 为什么编译Medooze Server这么难?
27 | 让我们一起探索Medooze的具体实现吧(上)
28 | 让我们一起探索Medooze的具体实现吧(下)
29 | 如何使用Medooze 实现多方视频会议?
30 | 实战演练:通过WebRTC实现多人音视频实时互动直播系统
支持上万人同时在线的直播系统 (8讲)
31 | 一对多直播系统RTMP/HLS,你该选哪个?
32 | HLS:实现一对多直播系统的必备协议
33 | FLV:适合录制的多媒体格式
34 | 如何使用Nginx搭建最简单的直播服务器?
35 | 如何构建云端一对多直播系统?
36 | 如何使用 flv.js 播放 FLV 多媒体文件呢?
37 | 如何使用 video.js 播放多媒体文件?
38 | 实战推演:带你实现一个支持万人同时在线的直播系统
结束语 (1讲)
结束语 | 路漫漫其修远兮,吾将上下而求索
从0打造音视频直播系统
登录|注册

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

李超 2019-10-10
本文我们将第三模块所讲的知识做一次梳理,让你在整体上了解“万人直播”到底是怎样实现的。我们将从万人直播的整体架构、主播客户端架构、观众客户端架构和流量统计这四个方面向你讲述万人直播的构建。
通过这几个方面的介绍,我想你就知道了一个真正的“万人直播”是如何构建起来的。

万人直播架构

下面这张万人直播架构图与《31 | 一对多直播系统 RTMP/HLS,你该选哪个?》一文中介绍的直播架构图很类似,它们之间最大的不同在于真正的万人直播系统中并不会只使用一家 CDN 网络,而是接入多家 CDN 网络。在使用它们时,你可以按照一定的比例将“节目”分配到不同的 CDN 网络上。
万人直播架构图
多家 CDN 网络的管理一般是由信令服务器控制的。当要接入某家 CDN 网络时,你可以通过信令服务器的注册界面进行注册。在注册界面中,一般要求填入 CDN 厂商的名字、分配比例、CDN API 操作地址等信息。
比如,当某个主播要分享一个节目时,信令服务器首先根据分配比例决定使用哪个 CDN 网络,然后获得该 CDN 网络的 API 操作地址。获取到 CDN 网络的 API 操作地址后,它就可以调用该 CDN 网络提供的 HTTP/HTTPS API 进行操作了,创建域名、生成直播地址、生成拉流地址等等。有了这些地址后,就可以将音视频流推送到 CDN 网络,观众端获取到观看地址后就可以“观看”节目了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0打造音视频直播系统》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • John
    请问老师 如果我要在APP里用webrtc做一个非视频的百人群聊功能 只使用p2p的连接 能实现么

    作者回复: 一路 640*420 的视频咱们估算是 500kbps, 那么 100 人同时与一个人通信就需要 100*500kbps, 也就是说需要 50M的带宽。而这 100 人的 NAT 类型千奇百怪。你想想这样做靠谱吗?

    2019-11-16
    1
  • Jason
    我猜测,视频卡顿是因为帧数不足导致,所以可以通过统计用户播放的总帧数来统计。

    作者回复: 卡顿并不会丢帧。因为 TCP 连接,不会丢数据的。除非断连了。

    2019-10-10
    1
    1
  • 18210067841
    这套支持万人的直播系统,没有使用 webRTC ? 可以通过 webRTC 实现么?成本会不会较大?

    作者回复: 可以将WebRTC 与 万人直播融合到一起。这样就实现在即可以进行实时通信,又可以进行万人直播的效果。

    2019-11-03
    1
  • 老师,请教下,安卓是否可以做到边下载,边转码,边播放。达到类似直播的效果。原因是我们这边反馈服务端处理可能时间很长,想把细节处理的工作放到安卓端

    作者回复: 没有这样做的。如果说服务端认为处理时间很长,那么客户端做这个事儿就更麻烦了。

    2019-10-10
  • 刘丹
    请问老师在实际使用中,OBS等工具能否把同一个直播流同时推送到多个CDN?常见的开源观众客户端是否支持自动切换CDN,还是我们要改播放端的代码手工切换呢?

    作者回复: 每个 OBS客户端只能向一个 CDN 推流,主播可以开多个客户端。不过最好的方式是你在后台自己进行多个 CDN 的中转。

    另外,开源客户端不支持自动切换。你要自己实现。这些都是上层逻辑,不是播放器要考虑的事儿。

    2019-10-10
    1
收起评论
5
返回
顶部