常见流媒体服务器方案对比分析

简介: 目前,市面上有很多开源的流媒体服务器解决方案,常见的有 SRS、EasyDarwin、ZLMediaKit 和 Monibuca 等,我们应该怎么选择呢?今天这篇文章主要介绍 SRS、EasyDarwin、ZLMediaKit 和 Monibuca 的一些对比情况,可以作为日后调研选型和学习的参考文档。

目录

前言

正文

SRS

使用步骤

主要功能

EasyDarwin

使用步骤

主要功能

ZLMediaKit

使用步骤

主要功能

Monibuca

使用步骤

主要功能

结尾

对比图表


前言

目前市面上有很多开源的流媒体服务器解决方案,常见的有 SRS、EasyDarwin、ZLMediaKit 和 Monibuca 等,我们应该怎么选择呢?

正文

今天这篇文章主要介绍 SRS、EasyDarwin、ZLMediaKit 和 Monibuca 的一些对比情况,可以作为日后调研选型的参考文档。

SRS

SRS 目前已经更新到 3.0,功能和稳定性较之前的版本都有非常大的提升,新入门的同学可以考虑直接从 3.0 上手。接下来,我们从使用、配置、功能几个方面介绍 SRS。

使用步骤

我们自己可以非常方便的搭建一套 SRS 服务器,具体的配置步骤如下:

1. 获取源码

地址:https://github.com/ossrs/srs

具体命令如下:

git clone https://gitee.com/winlinvip/srs.oschina.git srs &&cd srs/trunk && git remote set-url origin https://github.com/ossrs/srs.git && git pull

2. 编译

./configure && make

其中,configure 文件是支持可配置的。

3. 运行

./objs/srs -c conf/srs.conf

其中,srs.conf 文件是支持可配置的,针对不同功能模块,还有单独对应的配置文件。比如,rtmp 模块对应的配置文件是 rtmp.conf。

另外,我们还可以直接运行现有的 docker 镜像,命令:

docker run -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:3

主要功能

SRS 作为当前非常普遍的运营级解决方案,具备非常全面的功能,包括集群、协议网关、CDN 功能等,主要功能如下:

1. SRS 定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。

2. SRS 提供了丰富的接入方案将 RTMP 流接入 SRS, 包括推送 RTMP 到 SRS、推送 RTSP/UDP/FLV 到 SRS、拉取流到 SRS。 SRS 还支持将接入的 RTMP 流进行各种变换,譬如将 RTMP 流转码、流截图、 转发给其他服务器、转封装成 HTTP-FLV 流、转封装成 HLS、 转封装成 HDS、转封装成 DASH、录制成 FLV/MP4。

3. SRS 包含支大规模集群如 CDN 业务的关键特性, 譬如 RTMP 多级集群、源站集群、VHOST 虚拟服务器 、 无中断服务 Reload、HTTP-FLV 集群。

4. SRS 还提供丰富的应用接口, 包括 HTTP 回调、安全策略 Security、HTTP API 接口、 RTMP 测速。

5. SRS 在源站和 CDN 集群中都得到了广泛的应用 Applications。

EasyDarwin

EasyDarwin 是由国内开源流媒体团队维护和迭代的一整套开源流媒体视频平台框架,Golang 开发,从 2012 年 12 月创建并发展至今,包含有单点服务的开源流媒体服务器,和扩展后的流媒体云平台架构的开源框架,开辟了诸多的优质开源项目,能更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台,更快、更简单地实现最新的移动互联网(安卓、iOS、H5、微信)流媒体直播与点播的需求,尤其是安防行业与互联网行业的衔接。

使用步骤

运行 EasyDarwin 也非常方便,具体的配置步骤如下:

1. 获取源码

地址:https://github.com/EasyDarwin/EasyDarwin

具体命令如下:

mkdir EasyDarwin && cd EasyDarwin

git clone https://github.com/EasyDarwin/EasyDarwin.git --depth=1 EasyDarwin

2. 以开发模式运行

npm run dev

3. 以开发模式运行前端

npm run dev:www

主要功能

1. 基于 Golang 语言开发维护。

2. 支持 Windows、Linux、macOS 三大系统平台部署。

3. 支持 RTSP 推流分发(推模式转发)。

4. 支持 RTSP 拉流分发(拉模式转发)。

5. 服务端录像、检索、回放。

6. 支持关键帧缓存、秒开画面。

7. Web 后台管理。

8. 分布式负载均衡。

ZLMediaKit

ZLMediaKit 是一套高性能的流媒体服务框架,目前支持 rtmp、rtsp、hls、http-flv 等流媒体协议,支持 linux、macos、windows 三大 PC 平台和 ios、android 两大移动端平台。

使用步骤

1. 获取源码。

地址:https://github.com/xia-chu/ZLMediaKit

具体命令如下:

#国内用户推荐从同步镜像网站 gitee 下载

git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit

cd ZLMediaKit

#千万不要忘记执行这句命令

git submodule update --init

2. 编译(这里以 linux 和 mac OS 系统为例)

cd ZLMediaKit

mkdir build

cd build

#macOS 下可能需要这样指定 openss 路径:cmake .. -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2j/

cmake ..

make -j4

3. 运行

cd ZLMediaKit/release/linux/Debug

#通过-h 可以了解启动参数

./MediaServer -h

#以守护进程模式启动

./MediaServer -d &

主要功能

1. 基于 C++11 开发,避免使用裸指针,代码稳定可靠,性能优越。

2. 支持多种协议(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4),支持协议互转。

3. 使用多路复用/多线程/异步网络 IO 模式开发,并发性能优越,支持海量客户端连接。

4. 代码经过长期大量的稳定性、性能测试,已经在线上商用验证已久。

5. 支持 linux、macos、ios、android、windows 全平台。

6. 支持画面秒开、极低延时(500 毫秒内,最低可达 100 毫秒)。

7. 提供完善的标准 C API,可以作 SDK 用,或供其他语言调用。

8. 提供完整的 MediaServer 服务器,可以免开发直接部署为商用服务器。

9. 提供完善的 restful api 以及 web hook,支持丰富的业务逻辑。

10. 打通了视频监控协议栈与直播协议栈,对 RTSP/RTMP 支持都很完善。

11. 全面支持 H265/H264/AAC/G711/OPUS。

Monibuca

Monibuca 是一个开源的 Go 语言实现的流媒体服务器开发框架,采取了引擎+插件(s)的方式,实现了定制化流媒体服务器的功能。

架构图:


image.png


使用步骤

1. 源码地址

地址:https://github.com/Monibuca

2. 以 monica 为例进行介绍,monica 是一个实例管理器,用于创建 Monibuca 的实例工程目录文件,以及控制实例的更新和重启等。

2.1 安装 monica

go get github.com/Monibuca/monica

2.2 指定端口运行,默认是 8000

monica -port 8001

主要功能

1. 针对流媒体服务器独特的性质进行的优化,充分利用 Golang 的 goroutine 的性质对大量的连接的读写进行合理的分配计算资源,以及尽可能的减少内存 Copy 操作。使用对象池减少 Golang 的 GC 时间。

2. 专为二次开发而设计,基于 Golang 语言,开发效率更高;独创的插件机制,可以方便用户定制个性化的功能组合,更高效率的利用服务器资源。

3. 功能强大的仪表盘可以直观的看到服务器运行的状态、消耗的资源、以及其他统计信息。用户可以利用控制台对服务器进行配置和控制。点击右上角菜单栏里面的演示,可以看到演示控制台界面。

4. 纯 Go 编写,不依赖 cgo,不依赖 FFMpeg 或者其他运行时,部署极其方便,对服务器的要求极为宽松。

结尾

最后附上它们四个的对比图表,这样更加的直观形象。

对比图表

image.png

目录
相关文章
|
7月前
|
存储 弹性计算 缓存
阿里云服务器ECS经济型、通用算力、计算型、通用和内存型选购指南及使用场景分析
本文详细解析阿里云ECS服务器的经济型、通用算力型、计算型、通用型和内存型实例的区别及适用场景,涵盖性能特点、配置比例与实际应用,助你根据业务需求精准选型,提升资源利用率并降低成本。
505 3
|
4月前
|
关系型数据库 Linux PHP
开源站群服务器方案:构建高效流量矩阵的全攻略
正在寻找高性价比、可控性强且功能强大的站群解决方案?小编将深度解析开源站群服务器方案,从核心优势、主流工具选型到部署实践,助您构建稳定、高效的站群流量体系。
|
5月前
|
存储 弹性计算 运维
阿里云服务器全解析:ECS是什么、应用场景、租用流程及优缺点分析
阿里云ECS(Elastic Compute Service)是阿里云提供的高性能、高可用的云计算服务,支持弹性扩展、多样化实例类型和多种计费模式。适用于网站搭建、数据处理、运维测试等多种场景,具备分钟级交付、安全可靠、成本低、易运维等优势,是企业及开发者上云的理想选择。
860 5
|
6月前
|
运维 前端开发 JavaScript
半夜服务器告警不再错过!运维人员必备的语音通知方案
为解决深夜服务器宕机错过告警的问题,本文介绍一款专为个人开发者与运维人员设计的语音通知方案。通过电话直接推送重要告警,确保第一时间响应,避免故障扩大。支持多种编程语言调用,配置简单,3步即可完成,实时性强,适合各类关键业务场景。
572 5
|
5月前
|
存储 固态存储 Linux
从 0 学服务器虚拟化:VMware 搭建 3 个虚拟主机,个人 / 小企业够用的方案
服务器虚拟化技术通过在单台物理机上运行多个虚拟机,显著提升资源利用率和管理灵活性。本文以 VMware ESXi 8.0 Update 3e 为例,详解如何搭建经济实用的虚拟化环境,支持 3 个虚拟主机稳定运行,适合个人开发者和小企业降低硬件投入、实现数据本地化与安全存储。
1260 0
|
5月前
|
弹性计算 监控 网络协议
香港云服务器访问速度慢?阿里云精品BGP线路EIP一键提速方案
香港云服务器因默认BGP线路访问不稳定,尤其中国大陆用户面临高延迟与丢包问题。本文详解问题根源,并介绍阿里云国际站推出的精品BGP线路EIP解决方案,通过直连优化显著降低延迟,提升稳定性,助力企业实现高效跨境网络访问。
|
5月前
|
运维 数据可视化 数据库
一小时搞定服务器软件部署:资深工程师实测方案
本文分享了一位运维工程师在短时间内将30个不同软件部署到新服务器上的实战经验。面对全新 Rocky Linux 系统,传统手工部署方式效率低下且容易出错。作者尝试多种自动化方案后,最终选择使用自动化部署工具,通过其内置的 Docker Compose 模板和可视化界面,实现快速、批量部署,大幅提升效率,30个应用仅用约1小时完成,显著节省时间和人力成本。
|
9月前
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
2126 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
8月前
|
存储 安全 关系型数据库
阿里云服务器选购配置方案云产品搭配指南参考
对于部分新手用户来说,面对阿里云众多的服务器配置和云产品,如何做出合适的选择,成为了大家比较关注的问题。本文将深入探讨阿里云服务器选择的相关知识,包括配置方案、云服务器活动以及云产品搭配策略,帮助您在众多选项中找到最适合自己的解决方案。
|
8月前
|
存储 数据挖掘
服务器数据恢复—V7000存储上raid5阵列多块硬盘离线的数据恢复方案
V7000存储设备上raid5阵列上一块硬盘出现故障离线,热备盘自动启用开始同步数据。热备盘数据同步还没有结束的情况下,与离线盘处于同一组Mdisk中的另一块磁盘离线。热备盘同步失败,该组Mdisk失效,通用卷无法使用。