最近要搭一个直播平台,需要在Linux和Windows下分别搭建服务器,用两篇博客记录一下搭建过程
- 下载安装nginx和nginx-rtmp-module的编译依赖工具
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
- 创建工作目录
mkdir nginx
cd nginx
- 下载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
- 编译并安装nginx
cd nginx-1.18.0
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module #将rtmp模块编译到nginx
make
make install #或 sudo make install
- 启动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
- 再次启动nginx服务
sudo systemctl start nginx
在浏览器中输入服务器IP,出现下面熟悉的内容
- 在配置文件中加入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;
}
}
}
- 重新启动nginx服务器
sudo systemctl restart nginx
- 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
- VLC拉流
- 关闭服务器
sudo systemctl stop nginx
参考文章:
[1].将Nginx添加到systemctl和chkconfig进行管理
[2].云服务器(ubuntu)搭建nginx-rtmp服务器 实现直播功能(纯命令行操作)
[3].Ubuntu Nginx+Rtmp服务器搭建 (图文演示)
如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢