实时视频服务器 SRS 开源初探
前 言:因为工作需要,需要设备上推流,给到web端,于是就开始在研究流媒体服务器选择了三种方案进行选择:最终选择了SRS,作为我们的流媒体服务器、性能比较高、中国人自己的流媒体服务器、文档比较全,社区比较活跃。SRS 说明:SRS(simple Rtmp Server),是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT, 是国人自己开发的一款视频服务器,
·
前 言:
因为工作需要,需要设备上推流,给到web端,于是就开始在研究流媒体服务器
选择了三种方案进行选择:
最终选择了SRS,作为我们的流媒体服务器、性能比较高、中国人自己的流媒体服务器、文档比较全,社区比较活跃。
SRS 说明:
SRS(simple Rtmp Server),是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT, 是国人自己开发的一款视频服务器,采用支持rtmp和hls协议,可以做成容器,让客户端把流推过来来,也可以结合ffmpeg自己主动拉流.
现在的 Release 是4.0,Release 的服务器架构如下:
SRS 服务器安装与试用
- 下载源码,推荐用CentOS7系统:
git clone -b 4.0release https://gitee.com/ossrs/srs.git
编译,注意需要切换到srs/trunk目录:
cd srs/trunk
./configure
make
- 启动服务器:
./objs/srs -c conf/srs.conf
检查SRS是否成功启动,可以打开 http://localhost:8080/ ,或者执行命令:
# 查看SRS的状态
./etc/init.d/srs status
# 或者看SRS的日志
tail -n 30 -f ./objs/srs.log
- 服务器测试
ffmpeg -re -i ./doc/source.flv -c copy -f flv -y rtmp://localhost/live/livestream
4 测试页面
SRS 流媒体服务器业务场景:
- 全平台直播,小荷才露尖尖角。只需要上图的Encoders(FFmpeg/OBS)推送RTMP到SRS;一台SRS Origin(不需要Cluster),转封装成HTTP-FLV流、转封装成HLS;Players根据平台的播放器可以选HTTP-FLV或HLS流播放。
- WebRTC通话业务,一对一通话,多人通话,会议室等。WebRTC是SRS4引入的关键和核心的能力,从1到3秒延迟,到100到300毫秒延迟,绝对不是数字的变化,而是本质的变化。
- 监控和广电上云,各行业风起云涌。除了使用FFmpeg主动拉取流到SRS,还可以广电行业SRT协议推流,或监控行业GB28181协议推流,SRS转换成互联网的协议观看。
直播低延迟和互动,聚变近在咫尺。RTMP转WebRTC播放降低播放延迟,还能做直播连麦,或者使用WebRTC推流,未来还会支持WebTransport直播等等。 - 大规模业务,带你装逼带你飞。如果业务快速上涨,可以通过Edge Cluster支持海量Players,或者Origin Cluster支持海量Encoders,当然可以直接平滑迁移到视频云。未来还会支持RTC的级联和集群。
每个场景可能会用到一些通用的能力,比如:
- 一般都需要录制成FLV/MP4,将RTMP流转码,流截图。
- 也需要和现有业务系统集成,比如HTTP回调,或者通过HTTP API接口查询流和客户端的信息。
- 使用FFmpeg主动拉取流到SRS,或者Forward处理流后转给其他服务,或者推送RTSP/UDP/FLV到SRS。
- 安全方面,使用安全策略Security设置访问,或者用HTTP API接口踢流。
- 使用VHOST虚拟服务器 隔离不同的业务,用域名作为调度单元,应用不同的配置。
上述的这些都是最基本的一个操作,后续在使用过程中不断的更新,共同学习。
更多推荐
已为社区贡献3条内容
所有评论(0)