最近有需要在内网搭建视频服务器用于直播的需求,于是查了相关资料进行搭建,这里记录搭建的过程和遇到的相关问题,以便于后续有相关需求可以直接查看,因此只是一种记录按目前需求的实现,涉及并不全面,本篇只记录RTMP推流的方式。

docker搭建

docker搭建的方式按照RSR官网 进行:

1
2
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/docker.conf
docker-compose方式
1
2
3
4
5
6
7
8
9
10
version: '3'
services:
emqx:
image: registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4
hostname: "srs"
ports:
- 11935:1935
- 11985:1985
- 18080:8080
restart: always

由于一些原因我本机部分端口被占用,所以在所有端口前面加上1,这里我才用docker-compose的方式部署,运行docker-compose up -d,访问192.168.0.20:18080,这里换成自己的ip

image.png

点击“SRS播放器”可以进入播放页面,点击播放视频即可,当然,目前还没有推送视频流,所以这里没有内容可以播放

image.png

推送视频流

直接使用docker搭建一个FFmpeg来推送视频流:

1
2
docker run --rm -it ossrs/srs:encoder ffmpeg -stream_loop -1 -re -i doc/source.flv \
-c copy -f flv rtmp://192.168.0.20:11935/live/livestream

这里的rtmp://192.168.0.20:11935/live/livestream部分就是推流地址,可以修改不同的名称推送不同的流,例如这里的rtmp://192.168.0.20:11935/live/livestream为推流地址,那么对应的拉流地址(播放地址)为http://192.168.0.20:18080/live/livestream.flv,可以直接修改推流地址为rtmp://192.168.0.20:11935/live/123,那么对应的拉流地址则为http://192.168.0.20:18080/live/123.flv

另外需要注意,由于我的srs程序容器修改了端口号为11935,所以我的推流地址也要修改为11935,如果没有修改端口号,那么上面的推流地址就可以不用加端口号,默认会使用1935端口

播放

image.png