(第一讲)搭建SRS的环境
一、下载和运行
#下载
docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
#运行
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8888:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
二、端口说明
1935端口
SRS中RTMP推流的默认端口是1935,这同时也是RTMP协议本身的标准公认端口,由IANA(互联网编号分配机构)定义。典型的RTMP推流地址格式为:rtmp://your_server_ip:1935/app/stream_name,不手动指定端口时,推流客户端也会自动使用1935端口。使用非默认端口时,推流地址需要显式加上端口号,例如 rtmp://your_server_ip:1936/app/stream_name
1985端口
用于查看流的清单端口,可以不用映射。但是为了查看有多少流,用来监控。输入:http://localhost:1985/api/v1/streams/
8080端口
我这里映射出来的是8888端口。用于控制台程序,也可以不映射。输入:http://localhost:8888/
三、推流
下载一个FFmpeg
我这里下载windows版本的。https://ffmpeg.org/download.html
解压后进入这个目录:
准备好本地视频文件(如input.mp4)后执行推流命令,将localhost替换为你的SRS服务器实际IP:
# 直接复制原编码推流(速度快,适合测试)
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/stream1
# 若编码不兼容,指定h264/aac编码
ffmpeg -re -i input.mp4 -c:v libx264 -preset ultrafast -c:a aac -f flv rtmp://localhost/live/stream1
四、测试拉流
推流完成后,使用以下任意一种方式拉流验证即可确认测试结果:
(1)FFplay拉流验证:执行命令即可直接播放,若正常显示画面则推流成功
ffplay -i rtmp://localhost/live/stream1
(2)使用VLC播放器验证:打开「媒体→打开网络串流」,输入上述RTMP地址即可播放
(3)使用potplayer打开,ctrl+u,输入上述RTMP地址
五、有多少路流
网页输入:
http://localhost:1985/api/v1/streams/
六、其他说明
推流中:rtmp://localhost/live/stream1,其中rtmp://localhost不变,后面都可以变。比如变成rtmp://localhost/mytest/vcd1则播放的时候则要用ffplay -i rtmp://localhost/mytest/vcd1播放
另外:http://localhost:1985/api/v1/streams/
则是不变的
七、nginx做替代SRS
需要使用集成了 nginx-rtmp-module 模块的特定镜像。以下亲测有用
docker pull tiangolo/nginx-rtmp
docker run -d --name ngx-rtmp -p 1935:1935 tiangolo/nginx-rtmp
注意:推拉流的url必须是:rtmp://localhost/live/
后面的可以不同,一直到live必须是固定的。这跟SRS不同的。
其他推流,拉流都一样。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)