一、下载和运行

#下载
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不同的。

其他推流,拉流都一样。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐