一、背景简介
nginx是一套开源软件,纯C语言编写,效率高 HTTP和反向代理web服务器,同时也是一个 IMAP、POP3、SMTP 代理服务器 稳定、高效,支持高并发 即使强如阿里巴巴,也是使用Nginx: http://tengine.taobao.org/,它就是在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
Nginx可以作为流体服务器,支持RTMP、HTTPFLV、HLS等协议,但nginx本身并没用rtmp和httpflv模块
二、搭建流程
1、安装依赖包:
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
apt-get install openssl openssl-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
2、下载rtmp和httpflv模块包
cd /usr/local
sduo mkdir nginx
cd nginx
git clone https://github.com/winshining/nginx-http-flv-module.git
3、下载nginx
sudo wget http://nginx.org/download/nginx-1.13.7.tar.gz
sudo tar -xvf nginx-1.13.7.tar.gz
4、编译nginx
# 进入nginx目录
/usr/local/nginx/nginx-1.13.7
# 执行命令(添加rtmp和httpglv模块)
./configure --with-http_ssl_module --add-module=../nginx-http-flv-module
# 执行make命令
make
# 执行make install命令
make install
5、修改配置nginx配置文件(添加rtmp和httpflv)
cd /usr/local/nginx/conf
sudo vi nginx.conf
6、启动nginx
#进入nginx启动目录
cd /usr/local/nginx/sbin
# 启动nginx
sudo ./nginx
7、测试
用浏览器输入IP地址,看到如下信息即表示nginx搭建成功
这样就可以通过ffmpeg用rtmp协议在开发板把视频或者摄像头的视频流推送到nginx服务器,并能通过rtmp或者httpflv协议进行拉流播放,以树莓派推流举例:
ffmpeg -f video4linux2 -i /dev/video0 -f flv rtmp://192.168.0.0/live/wei
用VLC播放器进行拉流举例:http://192.168.0.0/test?app=live&stream=wei
三、常见问题解决
1、无法启动nginx
可能是80端口被占用可以用如下方式进行查看
#运行输入命令
sudo lsof -i :80
#显示占用80端口的进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 15703 root 7u IPv4 165733 0t0 TCP *:http (LISTEN)
nginx 15704 nobody 7u IPv4 165733 0t0 TCP *:http (LISTEN)
nginx 15705 nobody 7u IPv4 165733 0t0 TCP *:http (LISTEN)
nginx 15706 nobody 7u IPv4 165733 0t0 TCP *:http (LISTEN)
nginx 15707 nobody 7u IPv4 165733 0t0 TCP *:http (LISTEN)
解决方法:杀手占用80端口的进程即可