- SRS Wiki 首页
- SRS Arch
- ARM转码
- 带宽测试
- 安装
- 客户端 SDK
- 开源的客户端 SDK
- DeliveryHDS
- Delivery HLS
- Delivery HTTP FLV Stream
- Delivery Method
- 分发 RTMP 流
- HttpServer
- DRM
- DVR
- Edge Server
- 功能列表
- Live Streaming Transcode
- 点播 FLV 流
- Forward For Small Cluster
- GIT
- GPERF 内存和性能分析
- gprof 性能分析
- 心跳
- SRS 支持 HEVC 编码
- SRS 简介
- HTTP API
- HTTP Callback
- SRS Embeded HTTP Server
- 集成开发环境
- 采集
- K8S
- Kafka
- SRS 系统服务
- LiveShow
- LogRotate
- 低延时直播应用
- Exec
- OriginCluster
- Perf性能分析
- Performance Banchmark
- Project
- Performance benchmark for SRS on RaspberryPi
- Reload
- REUSE PORT
- WebRTC
- ATC支持HLS/HDS热备
- 分发方式比较
- RTMP Handshake
- URL Specification
- Use Scenarios
- ARM上部署SRS实例
- DASH部署实例
- Demo的部署
- FFMPEG转码部署实例
- RTMP流转发(Forward)部署实例
- HLS部署实例
- SRS-HTTP服务部署实例
- SRS-HTTP-FLV部署实例
- SRS-HTTP-FLV集群部署实例
- Ingest采集实例
- RTMP源站集群部署实例
- RTMP低延时配置
- RTMP部署实例
- RTMP边缘集群部署实例
- SRT deploy example
- 转码后分发HLS部署实例
- Security
- 服务器端开发脚本
- 开始使用
- Snapshot
- SpecialControl
- SRS提供的librtmp
- SRS for linux-arm
- SRS Log System
- SRT媒体编码支持格式
- SRT参数配置
- SRT直播地址格式简介
- SRT
- Streamer
- TimeJitter
- Web P2P
- Windows下的SRS
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
分发 RTMP 流
SRS(Simple RTMP Server)分发RTMP是核心功能,srs的主要定位就是分发RTMP低延时流媒体,同时支持分发HLS流。
RTMP和HLS的优势参考:HLS
RTMP和HLS的比较参考:RTMP PK HLS
部署RTMP的实例参考:Usage: RTMP
应用场景
RTMP是PC-flash支持最完善的流分发方式,主要的应用场景包括:
- 无插件流媒体应用:十年前各种浏览器插件大行其道,最后adobe的flash一统天下,现在如何观看视频还需要用户装插件,已经是非常罕见的事情。打开浏览器就能用,不用装插件,这是RTMP的最基本的应用方式。
- 适配广泛的播放器:如果没有专业的flash开发人员,那么RTMP会是个很好的选择,只要3行代码就能完成一个播放器,和html5的video标签一样方便。HDS/HLS在PC上,都需要库支持,N行代码很麻烦。
- 苛刻的稳定性支持:RTMP服务器能365x24提供服务,当然http服务器也可以。客户端的稳定性呢?RTMP在flash中连续播放10天没有问题,flash如果播放HTTP流就真的很难讲。如果在PC上需要客户端长时间播放,稳定播放,选择RTMP会是最佳选择。
- 稳定的较小延迟:RTMP延迟在0.8-3秒,能应用于交互式直播,视频会议,互动式直播等等。如果对延时有一定要求,就不要选择HLS,RTMP会是最佳选择。
- 通用接入标准:RTMP是编码器到服务器的实际标准协议,所有编码器都支持RTMP推送流。选择RTMP作为直播接入协议,能适配多种编码器,不至于绑定到一种编码器。如果服务器只能接入HTTP FLV流,像某些公司做的私有协议,那么对接通用编码器就有问题。何必闭门造车?!绑定用户的方式在于良好的客户关系和优秀的软件质量,而不是上了贼船就下不了船了。
SRS直播将RTMP作为基本协议,以各种方式转码为RTMP后输入到SRS,输出为RTMP和HLS,支持广泛的客户端和各种应用场景。
SRS点播还在计划中,不会使用RTMP作为点播协议,点播还是文件为主,即HTTP协议为主。
FlashRTMP
RTMP最初就是adobe在flash上的协议,flash播放RTMP只需要几行as代码:
var conn = new NetConnection();
var stream = new NetStream(conn);
var video = new Video();
this.addChild(video);
video.attachNetStream(stream);
conn.connect("rtmp://192.168.1.170/live");
stream.play("livestream");
配置RTMP流
SRS只需要配置vhost和侦听端口,以及支持的最大连接数,就可以支持RTMP:
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
}
启动服务器:./objs/srs -c conf/rtmp.conf
推送RTMP流
可以使用支持RTMP输出的编码器,譬如FMLE。在FMS URL中输入vhost/app,在Stream中输入流名称。譬如:
# 譬如RTMP流:rtmp://192.168.1.170/live/livestream
FMS URL: rtmp://192.168.1.170/live
Stream: livestream
RTMP的URL规则,Vhost规则,参考:RTMP URL&Vhost
部署分发RTMP流的实例,参考:Usage: RTMP
如下图所示:
观看RTMP流
可以使用支持RTMP流的播放器播放,譬如vlc/flash player,播放地址:rtmp://192.168.1.170/live/livestream
RTMP流的低延时配置
RTMP流的延时在1-3秒,比HLS的延时更靠谱,低延时的配置参考:低延时
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论