nginx构建简单的直播server
依赖
安装nginx rtmp模块 + 开启端口
sudo apt install nginx sudo apt install libnginx-mod-rtmp sudo apt ufw
搭建
这里就是一个小实验,用ffmpeg将一个视频文件推流到nginx中然后用mpv播放。
ffmpeg —> nginx —> mpv
开放端口
sudo ufw allow 1935
nginx.conf配置文件修改
vim /etc/nginx/nginx.conf 在配置文件底部加上下面的内容
rtmp { server { listen 1935; chunk_size 4096; allow publish 127.0.0.1; deny publish all; application live { live on; record off; } } }
- listen 指定了监听端口。
- chunk_size 4096 设置了rtmp server传输数据块的最大值。
- allow和deny设置了 允许推流的对象,在这里只允许了本地推流。
- application live里面live on 指定了这是个允许推流的服务,record off表示在服务器上不录制推流的内容。
启动nginx
sudo systemctl start nginx
视频推流
这里用ffmpeg将一个x.mp4的文件推流到server上,注意[x.mp4]是你要推流的文件名,后面的rtmp路径中的[x]是你可以任意取名字,在这里我只是把它设置成了推流文件的文件名。
ffmpeg -re -i "[x.mp4]" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://127.0.0.1:1935/live/[x]
视频播放
用mpv去读取rtmp视频并播放,[x]就是你设置推流的路径。
mpv rtmp://127.0.0.1:1935/[x]