从 0 打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
32579 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
WebRTC 1对1通话 (23讲)
从 0 打造音视频直播系统
15
15
1.0x
00:00/00:00
登录|注册

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

异步IO事件处理性能稍差
支持多种协议
功能强大
架构和逻辑复杂
C++开发
实时性、高效性、简洁性
架构设计复杂
性能强劲
支持多种功能
插件式架构
RecordPlay
VideoCall
VideoRoom
Streaming
TextRoom
SIP
性能一般
包括了MCU
Linux下只支持Ubuntu 14.04
无需二次开发
完整的产品
缺点
优点
Recorder模块
控制逻辑层通过Node.js实现
支持多种协议
综合流媒体服务器
缺点
优点
Producer和Consumer
Transport
Worker和Router
应用层和数据处理层
WebRTC流媒体服务器开源库
缺点
优点
支持的插件
插件式架构
C语言实现
Linux风格编写
缺点
优点
ErizoAgent
ErizoController
Nuve
C++和Node.js实现
分布式部署
完整系统
思考时间
建议选择
SFU模型
性能
系统特点
实现语言
Medooze
Mediasoup
Janus-gateway
Licode
小结
选择标准
SFU方案
流媒体服务器选择
流媒体服务器选择指南

该思维导图由 AI 生成,仅供参考

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

Licode

Licode 既可以用作 SFU 类型的流媒体服务器,也可以用作 MCU 类型的流媒体服务器。一般情况下,它都被用于 SFU 类型的流媒体服务器。
Licode 不仅仅是一个流媒体通信服务器,而且还是一个包括了媒体通信层、业务层、用户管理等功能的完整系统,并且该系统还支持分布式部署。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了几种开源的WebRTC流媒体服务器,包括Mediasoup、Medooze、Licode和Janus-gateway。文章首先介绍了Mediasoup的架构和特点,指出其使用C++开发,性能高效,适合学习和二次开发。接着介绍了Medooze,它支持多种协议,包括录制和推流功能,但在性能上略逊于Mediasoup。然后对比了Licode、Janus-gateway、Mediasoup和Medooze的特点,指出选择流媒体服务器需要根据团队技术背景和项目需求进行综合考量。最后,文章提出了对于初学者来说,选择Mediasoup作为研究对象是一个不错的选择,因为其结构简单,代码量少,易于入门。总的来说,本文通过对比介绍了几种流媒体服务器的优缺点,帮助读者更好地选择适合自己的流媒体服务器。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(21)

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

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

    2019-11-14
    2
    4
  • 陈陳
    作为一名Javaer,是不是告别了流媒体了。。

    作者回复: Java开发流媒体服务器性能上还是有点差,即使有点流媒体服务器说是Java开发的,但底层还是用的JNI/C++

    2020-10-29
    3
  • 嗨諾
    老师,您好,最近自己在搭建kurento 客户端和服务端。搭建服务端的时候需要搭coturn,现在这个服务一直有问题,穿透不成功。请问TURN服务必须要两个公网IP吗?

    作者回复: 不太清楚kurento是怎么运转的。网上有很多资料是错误的,比如有人说Janus必须要有 turn 服务才能运行,这是很荒谬的,这些人根据没有好好阅读Janus文档,也没有对它做个深入研究。作为WebRTC流媒体服务器来说,它本身就是一个turn服务。 你是否对kurento理解正确了呢?

    2020-06-08
    3
  • 三角形小于零
    老师,后面会讲 turn server吗

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

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

    作者回复: 因为 RTMP/HLS 底层用的是 TCP 协议,这样就不用考虑丢包情况了。 RTSP 数据是用的 UDP,控制是它自己的一套,实际上与 SIP协议很类似的。但现在大家更多的是使用 WebRTC, RTSP 和 SIP 用的都比较少,只是在专有领域才会用。

    2019-09-10
    2
    2
  • 波波安
    我用的kurento流媒体,单台服务器只能拉20方h264流 cpu干到90%,服务器做了转码。您说的单台500是没有做转码么

    作者回复: 对,服务器不做转码

    2020-06-29
    1
  • 罗志军
    老师,请问下我就想通过手机客户端查看流(局域网IPC)就好了,是不是只需要turn就行了?

    作者回复: 如果是 1:1的就可以用turn服务,如果是多对多你要用medooze, mediasoup, janus之类的流媒体服务器

    2020-04-10
    2
    1
  • Hadooper
    medooze已经好几年没有主要功能维护了,不知道老师怎么评价jitsi和kurento这两个依旧持续维护的框架?

    作者回复: 大的功能都已经完成了,不需要做大的改动了。目前medooze一直在不断更新。jitsi是java版本的,底层也是用 C++实现的,我没有看它的代码,不好评价。

    2020-01-09
    1
  • 杨武
    现用的是streamedian,实现rtsp流的web端播放,但是无法支持4k高清,h265,并且经常会有性能问题,浏览器崩溃卡死,请问老师有什么建议么

    作者回复: 4K 高清对于编解码的性能要求还比较高,目前不太适合在浏览器上使用

    2019-12-28
    1
  • tkly
    我的要求并不高,我只想实现一个rtsp/rtmp/file等接入,通过webrtc实现网页无插件播放h264视频的方案,该如何搞?

    作者回复: 通过流媒体服务端就可以实现,mediasoup就是一个现成的方案!

    2019-12-19
    3
    1
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部