视频监控项目--韦东山扩展(将Nginx搭建在公网服务器上)

在韦东山老师的项目中,是将ffmpeg和Nginx都安装在开发板上运行的,因此只能实现局域网内的传输。如果要在公网上进行传输,有两种方法,一是将Nginx放在公网服务器上,因为它具有公网IP,公网域名;二是使用内网穿透,这个实现还是比较麻烦的,而且如果真做产品也不会这样做。

现在在阿里云上通过学生认证可以免费领半年的服务器,或者10元就可以购买一个月的服务器,非常方便,因此本文在韦东山项目的基础上,进行扩展,首先在推流端,我使用的是TX2开发板,和它的板载摄像头,但是并不使用ffmpeg命令推流,而是通过OpenCV程序打开摄像头,然后使用rtmp,和ffmpeg进行推流。参考GitHub链接:https://github.com/TaoWei001/opencv-ffmpeg-rtmp-stream

推流的服务器就是我申请的阿里云服务器,在上面搭建好Nginx服务即可,其他步骤都是一样的。

参考链接:https://www.jibing57.com/2020/07/29/how-to-setup-nginx-rtmp-on-centos-7/

https://blog.csdn.net/rain_meter/article/details/88127209

一、centos如何搭建Nginx和rtmp服务器

1.更新系统

yum update

2.安装Nginx所需开发包

yum install gcc
yum install pcre pcre-devel pcre-static pcre-tools
yum install openssl openssl-static openssl-devel
yum install wget unzip

3.下载nginx和nginx-http-flv-module   ((nginx-http-flv-module是基于nginx-rtmp-module的,故请勿重复安装))

wget http://nginx.org/download/nginx-1.14.2.tar.gz
git clone https://github.com/winshining/nginx-http-flv-module.git

4.解压,进行编译,并添加模块

cd nginx-1.17.9
./configure --add-module=/path/nginx-http-flv-module
make install

注意,module后面跟的是你http-flv的路径。编译完之后,出现下图的leaing就代表成功了

安装完成后 目录应该是 /usr/local/nginx 下;
其中 执行文件 :/usr/local/nginx/sbin/nginx
默认配置文件 :/usr/local/nginx/conf/nginx.conf

5.修改配置文件  (和韦东山一样,要让它支持rtmp推流)

所以使用命令:

vi /usr/local/nginx/conf/nginx.conf

修改内容如下:

//1修改为auto
worker_processes  auto;


//添加如下部分
rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
                allow publish 127.0.0.1;
                allow play all;
                live on;
                record off;
                meta copy;
        }
    }
}


//在http中添加如下内容
location /test {
            flv_live_on;
            chunked_transfer_encoding on;
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
        }
//其实只要flv_live_on就可以了,后面这三句是为了使用flv.js插件而添加的

服务器会监听1935这个端口

当我们的播放器来连接的时候,他回用这些信息publish发布信息

live on是直播,rtmp可能会被防火墙拦截所以还需要配置http

6. 服务器启动nginx服务

开放服务器的TCP端口号1935,在服务器的网页控制台进行操作。

先执行:

sudo mkdir -p /var/log/nginx /var/tmp/nginx

再安装start-stop-daemon:安装路径可以自己选择,这个不重要

cd /home
wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
tar -xzvf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
# 然后进入解压之后的路径 一直 cd 到start-stop-daemon.c在的目录 
cc start-stop-daemon.c -o start-stop-daemon
cp start-stop-daemon /usr/bin/start-stop-daemon

然后执行启动命令:这个必须要在启动目录下执行,如下图:有这个绿色可执行程序的文件夹下(这个命令应该是设置的开机自启动的)

start-stop-daemon -S -x “/usr/local/nginx/sbin/nginx” -p “/var/run/nginx.pid”

如果ngingx绑定失败可以执行

netstat -ntlp

找到nginx的进程号,把他kill 掉重新执行启动命令

 

7.测试效果

如果一切配置成功,那么在浏览器上直接输入公网服务器的地址会出现如下情况:

但是这个并不能直接网页播放,因为没有对应的HTML网页插件或文件

所以我们可以使用potplayer来进行播放,关于这个软件的使用,在前面的视频监控项目中可以找到;最后效果如下:

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值