nginx构建简单的直播server

Table of Contents

依赖

安装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]

参考