从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打造音视频直播系统
登录|注册

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

李超 2019-09-10
上一篇文章中,我们详细讨论了三种类型(Mesh、MCU 和 SFU)的多方通信架构,并从中知道 SFU 方案是目前最优的一种多方通信架构方案,而且这种方案目前已经有很多开源的实现了,比较流行的开源项目包括 Licode、Janus-gateway、MediaSoup、Medooze 等。
当然,你也可以自己实现 SFU 流媒体服务器,但自已实现流媒体服务器困难还是蛮多的,它里面至少要涉及到 DTLS 协议、ICE 协议、SRTP/SRTCP 协议等,光理解这些协议就要花不少的时间,更何况要实现它了。
而使用开源的流媒体服务器就可以大大地减少你的工作量,但这也带来一个问题:这么多开源流媒体服务器,究竟该选哪一个呢?这就涉及到一个选型的问题,你必须要对上面提到的开源项目有个清楚的认知,知道它们各自的优劣点,才能选出更适合的那款流媒体服务器。
接下来我们就按顺序把这几个开源实现向你做下介绍,从而让你了解它们的优缺点,以便选出更适合你的那款流媒体服务器。

Licode

Licode 既可以用作 SFU 类型的流媒体服务器,也可以用作 MCU 类型的流媒体服务器。一般情况下,它都被用于 SFU 类型的流媒体服务器。
Licode 不仅仅是一个流媒体通信服务器,而且还是一个包括了媒体通信层、业务层、用户管理等功能的完整系统,并且该系统还支持分布式部署。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0打造音视频直播系统》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • 大魔王
    老师请问一台服务器支持500方人,意思就是一台服务器只能服务一个500人的会议? 那如果是一个平台的话 有很多会议就得很多台服务器了吧

    作者回复: 是这个道理。但有一个问题可能是你没想清楚的,为什么一台流媒体服务只能支持 500 方?为什么台 nginx 服务可以支持 10万人,而流媒体服务器却只有 500 人呢?它的瓶颈点是什么你要弄清楚?

    2019-11-14
    1
  • Mickey
    老师,我想实现Mediasoup的安卓客户端,可以实现吗?

    作者回复: 需要你自己按照它的信令进行实现。

    2019-11-25
  • 三角形小于零
    老师,后面会讲 webrtc 服务端的压测相关的内容吗

    作者回复: 这个专栏不会讲,压测这个会在专门讲服务器的课中才会讲

    2019-09-11
  • 三角形小于零
    老师,后面会讲 turn server吗

    作者回复: turn服务是 1对1的,那个没啥要讲的呀!你是想实现多对多吧?如果是这样的话,后面几篇文章是专门讲这个的。

    2019-09-11
  • 牛景波
    sfu核心就是简单和快,转发上用共享内存,无锁队列,消息队列是不能用了;收发包可以用dpdk加速,降低cpu消耗

    作者回复: 不错!在 Licode中虽然你看到它用了 RabbitMQ, 但它是信令消息才会用,对于流媒体数据它是不会使用 MQ的哈

    2019-09-10
  • tech2ipo
    老师,你好。RTSP协议在安防监控领域应用很广泛,而且RTSP协议用UDP负载RTP包,实时性比较好。与RTMP/HLS相比,为什么RTSP协议在互联网领域应用很少呢?

    作者回复: 因为 RTMP/HLS 底层用的是 TCP 协议,这样就不用考虑丢包情况了。

    RTSP 数据是用的 UDP,控制是它自己的一套,实际上与 SIP协议很类似的。但现在大家更多的是使用 WebRTC, RTSP 和 SIP 用的都比较少,只是在专有领域才会用。

    2019-09-10
收起评论
6
返回
顶部