SRS 一款国产开源高性能流媒体服务,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、GB28181等协议,一套服务满足直播、RTC、安防、小程序等场景。本文带你快速了解SRS优势、部署方式及生产实践。
做过直播业务的小伙伴都知道:推流、转码、分发、低延迟、WebRTC、监控接入,每一个环节都可能踩坑。
更麻烦的是,不同场景需要不同方案。
直播用 RTMP,互动连麦用 WebRTC,监控又要 GB28181,小程序还要 HLS/HTTP-FLV。
最后的结果就是:
自建又要维护一堆组件。
有没有一种方案:
一台服务器,搞定多协议直播;
低延迟做到毫秒级;
还能免费商用,自己掌控整个直播链路?
答案就是今天要介绍的:
SRS(Simple Realtime Server)。
一个由国内开发者自研、MIT协议开源、已经被大量直播、安防、RTC场景验证的流媒体服务器。
SRS是什么
很多小伙伴第一次接触流媒体,会被各种名词吓住:
RTMP、WebRTC、HLS、SRT、转码、CDN、媒体服务器……
感觉做一个直播平台,需要搭建一整套“航空系统”。
但实际上,大部分业务真正需要的是:
有人把摄像头或者客户端的视频流接进来,然后稳定地推给更多用户。
SRS做的事情,就是这个“视频交通枢纽”。
你可以把它理解成:
视频世界里的Nginx。
普通Nginx负责HTTP请求转发。
SRS负责:
- 接收直播流
- 转换协议
- 分发播放
- 支撑实时互动
- 对接监控设备
以前多个服务解决的问题,现在SRS一套服务可以覆盖。
为什么SRS能火?
一套服务搞定6大协议
传统直播架构:
维护成本非常高。
传统Nginx-RTMP:
- 支持RTMP很好
- 但是WebRTC能力有限
- GB28181无法直接覆盖
而SRS:
一个核心服务,连接整个音视频生态。
MIT协议,免费商用
很多创业团队早期最大的问题:
不是技术不会。
而是不敢用。
担心:
- 商业授权
- 闭源限制
- 后期收费
SRS采用:
MIT开源协议。
意味着:
- 免费使用
- 企业商业项目可用
- 可以二次开发
对于创业团队来说:
省下的不只是服务器成本。
还有:
从0研发流媒体基础设施的人力成本。
性能强
很多人误以为:
开源=性能差。
SRS恰恰相反。
它针对实时音视频场景进行了大量优化。
实际业务中:
单机器可以支撑:
万级播放连接。
当然,最终容量取决于:
- 视频码率
- CPU
- 网络带宽
- 是否转码
但是对于:
- 企业直播
- 内部会议
- 小型平台
完全可以低成本运行。
中文生态友好
这一点非常重要。
很多国外音视频项目:
技术很强。
但是:
- 文档英文
- 示例少
- 排查问题困难
SRS来自国内团队。
优势:
- 中文文档完善
- 示例丰富
- 社区活跃
- 国内开发者交流方便
对于国内开发团队:
遇到问题,可以快速找到答案。
SRS能做什么?
自建直播平台
比如:
- 企业直播
- 教育直播
- 电商直播
- 游戏直播
传统方式:
购买云直播服务。
一年:
几万元甚至几十万元。
使用SRS:
服务器成本自己控制。
实时连麦互动
直播最大的升级:
不是播放。
而是互动。
例如:
- 主播连麦
- 在线课堂
- 视频会议
使用:
SRS + WebRTC
实现:
百毫秒级实时互动。
安防监控平台
传统摄像头:
大量使用GB28181协议。
以前:
接入难度很高。
现在:
摄像头 → GB28181 → SRS → Web播放
直接实现:
- 摄像头管理
- 网页查看
- 多端播放
微信小程序直播
小程序直播通常需要:
- FLV
- HLS
- WebRTC
SRS直接提供协议输出。
后端只需要:
管理:
- 用户
- 权限
- 房间
媒体链路交给SRS。
SRS极简部署
官方提供了 Docker 一键启动命令
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
推流测试
使用:
OBS / FFmpeg
推流地址:
rtmp://你的服务器IP/live/test
例如:
ffmpeg \
-re \
-i demo.mp4 \
-c copy \
-f flv \
rtmp://127.0.0.1/live/test
播放:
打开 http://IP:8080/players/srs_player.html 在 URL 中输入如下地址,点击播放
HTTP-FLV:
http://IP:8080/live/test.flv
到这里:
一个完整直播服务器已经跑起来。
SRS常见踩坑指南
公网播放不了
原因:
服务器端口没开放。
需要开放:
1935
1985
8080
云服务器安全组:
一定检查。
CPU突然爆炸
原因:
开启转码。
例如:
输入:
1080P
输出:
720P+480P+360P
CPU压力巨大。
建议:
提前统一编码格式。
单机扛不住怎么办
不要马上换技术。
先优化:
- CDN分发
- 多节点部署
- 关闭无用转码
- 增加出口带宽
总结
以前:
做直播平台。
意味着:
买云服务。
搭复杂架构。
投入大量研发。
现在:
一个SRS。
让普通开发团队也能拥有:
- RTMP直播
- WebRTC低延迟互动
- HLS网页播放
- HTTP-FLV分发
- SRT公网传输
- GB28181安防接入
80ms低延迟、一套服务支持6大协议、MIT免费商用、万级并发能力。
这就是SRS最大的价值。
如果你正在做:
直播平台、视频会议、安防平台、小程序直播、企业内部音视频系统,
SRS值得加入你的技术选型列表。