本期推荐的是一个简单高效的实时视频服务器——SRS。
SRS是一个简单高效的实时视频服务器,可以扩展成集群,还涉及多种协议和场景,支持
RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。对于新手来说,音视频的门槛真的非常高,SRS的目标是降低(不能消除)音视频的门槛。
功能概述
下图是SRS的概览大地图:
我们从几个典型的应用场景来说下上面的大图,更多场景请参考:
https://github.com/ossrs/srs/wiki/v4_CN_Sample
- 全平台直播:只需要上图的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的级联和集群
场景部署参考:
https://github.com/ossrs/srs/wiki/v4_CN_K8s#srs-edge-cluster-for-high-concurrency-streaming
每个场景可能会用到一些通用的能力,比如:
- 一般都需要录制成FLV/MP4,将RTMP流转码,流截图
- 也需要和现有业务系统集成,比如HTTP回调,或者通过HTTP API接口查询流和客户端的信息
- 使用FFmpeg主动拉取流到SRS,或者Forward处理流后转给其他服务,或者推送RTSP/UDP/FLV到SRS
- 安全方面,使用安全策略Security设置访问,或者用HTTP API接口踢流
- 使用VHOST虚拟服务器 隔离不同的业务,用域名作为调度单元,应用不同的配置
如果你更喜欢看视频,可以看下面的视频专栏介绍:
- B站专栏(视频):SRS开源服务器
- 零声学院(视频):SRS4.0入门系列
【免费】
FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发-学习视频教程-腾讯课堂
- 零声学院(视频):SRS流媒体服务器实战