自建直播媒体服务器,承接 RTMP/SRT/WebRTC/GB28181 输入,再转成 HLS、DASH、HTTP-FLV 和 WebRTC 输出。

29,378
5,703
C++
MIT
创建于 11 年前

如果你需要自己搭建直播的推流入口和分发出口——内部活动直播、摄像头转播或 WebRTC 测试环境——SRS 是少数同时覆盖“多种协议进、多种协议出”的开源项目。最省事的评估方式是先用 Docker 镜像加官方入门文档跑通,再用 FFmpeg 或 OBS 推一路流看看。

解决什么问题

团队手上有摄像头、编码器或浏览器在推实时视频,却要把画面送到不同设备的观众面前。没有中间服务器时,每个观众只能直连源端,既无法共享分发,也无法做协议转换或按流控制。加入媒体服务器后,一路来自 OBS 的 RTMP 流可以被同时送给需要 HLS 的手机、需要 HTTP-FLV 的网页播放器,或需要低延迟窗口的 WebRTC 端。SRS 承担的正是这一步:接收多种推流协议,再把同一路流以多种播放格式分发出去,推流端维持一条链路,观众端各取所需。

有什么不同

它的特点是单台服务器上的协议覆盖面:项目列出 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 和 GB28181,编码支持 H.264、H.265、AV1、VP9、AAC、Opus 和 G.711。实际意义是一套部署既能作为旧设备的推流入口,又能作为较新的播放出口,包括在 RTMP 与 WebRTC 之间转换。对于摄像头说一种协议、目标观众却需要另一种协议的环境,这减少了拼装多套工具的工作。

代价是它属于基础设施,而不是拿来即用的库。你选择的是一个用 C++ 编写的服务器,需要自己管理配置、端口和流的生命周期;协议覆盖面广也意味着存在多条不同的配置路径,而不是单一模式。只播一个房间的简单场景可能不需要这么多机制;跨多种协议的场景则能用它替代分散的独立工具。

谁值得试

适合:需要为可控活动、内部视频源或同时存在 RTMP、HLS 和 WebRTC 的实验环境搭建自托管直播端点的工程师。也适合想评估浏览器端低延迟 WebRTC 分发、同时保留 OBS 走 RTMP 路径的人。Docker 方式让第一次测试门槛较低,文档中的 FFmpeg/OBS 命令和自带播放器可以具体验证推流与播放是否打通。

不适合:只想嵌入托管播放器、没有服务器可运维的人,或者期望按流计费、完全不用自己操作的托管服务团队。项目可以在包括 Windows x64 在内的多种架构上运行,但它仍然跑在你负责的机器上。如果需求只是单一协议、单一观众,托管服务或更简单的单协议方案通常更省时间。

使用条件与边界

README 写明支持 Linux 和 macOS 的 x86_64、ARMv7、AArch64、Apple M1、RISC-V、LoongArch 和 MIPS,并原生支持 Windows x64,服务器本身不绑定单一平台。安装可以按推荐的 Docker 镜像 进行,项目也提供入门文档;端口暴露和验证步骤应以这些页面为准,而不是照搬评论里的命令。

后续工作主要是运维层面的:选择并开放端口、配置流来源、决定每路流需要哪些分发协议。README 中的协议支持是范围说明,不是性能承诺;如果吞吐量和内部设计对你的部署重要,项目另外提供了性能和架构文档。AI 辅助被描述为通过 AI agent 指南理解和维护 SRS 的可选方式,而不是必需依赖。SRS 本身采用 MIT 许可,部分第三方库按其各自的许可分发。

HotRepo 点评

HotRepo 唯一记录到的观察是 2026-10-27 单日登上日榜,当天 29,374 星、增加 8 星。这只是一个带日期的快照,不是趋势;可比日榜历史不足,无法判断关注度是在上升还是消退。项目创建于 2015 年,复刻数不少,但这些总数不能说明当前维护质量或兼容性。采用前建议确认你准备运行的具体版本线——README 同时列出 8.0 开发版和 7.0 alpha——并针对你需要的协议组合阅读入门文档。

本文由 AI 根据项目 README 生成,更新于 2026年10月27日,以项目官方文档为准。