小白学习音视频系列(二)
编译nginx rtmp模块
关注微信号:cpp手艺人,获取更多文章
1.先下载nginx源码
创建一个新的目录
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
下载完源码之后,解压nginx
tar zxvf nginx-1.18.0.tar.gz
2.在下载nginx的RTMP模块
同样在nginx目录下
git clone https://github.com/arut/nginx-rtmp-module.git
注意你的目录结构应该如下所示:
3.准备编译源码
进入到nginx源码目录中
cd nginx-1.18.0
注意把上面的rtmp-module模块的路径替换为你的路径,下面的是我路径
./configure --add-module=/home/game/nginx/nginx-rtmp-module
configure结束后,执行下面的编译和安装
make && make install
如果在编译过程中报出什么库没有安装的,就执行apt-get install lib_name
比如:
sudo apt-get install zlib1g-dev
至此编译完成之后,nginx会安装到/usr/local/nginx,启动nginx
sudo /usr/local/nginx/sbin/nginx
我们使用浏览器访问下看看nginx有没有起来。在浏览器中输入:http://you_ip_host
比如我的:192.168.26.31
如果你发现不能访问,先查看下nginx进程存不存在
ps -ajx | grep “nginx”
如果进程存在还不能访问,很大概率上是80端口被禁用了。
sudo ufw allow 80
注意这里的命令,sudo uwf allow 80,上一篇文章写错了,感谢一位网友的提出
4.使用ffmpeg推流
1.首先需要配置下nginx.conf文件
在nginx的安装目录中找到nginx.conf文件,写入如下的配置
例如我的配置文件在:/usr/local/nginx/conf/nginx.conf
rtmp {
server {
listen 1935;
chunk_size 4096;
application live
{
live on;
}
}
}
注意我已经cd /usr/local/nginx/sbin目录下 配置完成之后,重新加载配置
sudo ./nginx -s reload
使用命令查看端口情况
netstat -tlanp
2.使用ffmpeg准备推流
ffmpeg 推流
ffmpeg.exe -i 006.mp4 -f flv rtmp://192.168.26.31/live
ffplay 拉流
ffplay.exe rtmp://192.168.26.31/live -fflags nobuffer
5.使用nginx查看推流的详细信息
1.在nginx中配置添加如下的信息:
server {
listen 8080;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /home/game/nginx/nginx-rtmp-module;
}
}
2.我们在浏览器中输入:192.168.26.31:8080/stat
好,至此,nginx源码编译已经结束。虽然走了点弯路,但是你还是会成功的。