Ubuntu18.04下nginx-1.18.0 + rtmp服务器搭建

最近要搭一个直播平台,需要在Linux和Windows下分别搭建服务器,用两篇博客记录一下搭建过程

  1. 下载安装nginx和nginx-rtmp-module的编译依赖工具
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
  1. 创建工作目录
mkdir nginx
cd nginx
  1. 下载nginx和nginx-rtmp-module的源码
#下载nginx源码并解压
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
#下载nginx-rtmp-module源码
git clone https://github.com/arut/nginx-rtmp-module.git
  1. 编译并安装nginx
cd nginx-1.18.0
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module #将rtmp模块编译到nginx
make
make install #或 sudo make install
  1. 启动nginx服务
sudo systemctl start nginx
#不出意外,会报下面的错误
Failed to start nginx.service: Unit nginx.service not found

将nginx加入到systemctl中

cd /usr/lib/systemd/
sudo mkdir system #如果存在该目录直接进入,不存在创建
cd system
sudo touch nginx.service
sudo vi nginx.service

加入以下内容

[Unit]

Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
 
 
[Service]
 
Type=forking
WorkingDirectory=/usr/local/nginx               #此处位置为你的nginx安装目录,根据实际情况进行更改(删掉)
ExecStart=/usr/local/nginx/sbin/nginx           #此处位置为你的nginx安装目录中的nginx可执行文件位置,根据实际位置进行更改(删掉)
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
 
[Install]
 
WantedBy=multi-user.target
#使文件生效
sudo systemctl daemon-reload
  1. 再次启动nginx服务
sudo systemctl start nginx

在浏览器中输入服务器IP,出现下面熟悉的内容
在这里插入图片描述

  1. 在配置文件中加入rtmp模块的配置,启动rtmp服务
#进入nginx安装目录的conf目录下修改配置文件
cd /usr/local/nginx/conf/
sudo vi nginx.conf
sudo vi nginx.conf.default

加入以下内容(两个文件都需要加)

rtmp {
    
    
    server {
    
    
        listen 1935;

        application rtmplive {
    
    
            live on;
            max_connections 1024;
        }
    }
}
  1. 重新启动nginx服务器
sudo systemctl restart nginx
  1. FFmpeg推流
ffmpeg -f dshow -i video="USB2.0 Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://nginx server IP:1935/rtmplive/123

在这里插入图片描述

  1. VLC拉流
    在这里插入图片描述
    在这里插入图片描述
  2. 关闭服务器
sudo systemctl stop nginx

参考文章:
[1].将Nginx添加到systemctl和chkconfig进行管理
[2].云服务器(ubuntu)搭建nginx-rtmp服务器 实现直播功能(纯命令行操作)
[3].Ubuntu Nginx+Rtmp服务器搭建 (图文演示)

如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢

猜你喜欢

转载自blog.csdn.net/xiao_ma_nong_last/article/details/110806441