Ubuntu下搭建Nginx服务器+集成RTMP视频直播流处理(边做边做更新)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35468937/article/details/80141309

简介:

要求:做一个网页获取摄像头的视频流,然后将视频流经过流服务器推送到后台视频处理服务器,再由后台视频处理服务器推送到流服务器,最终推送到页面。如图:

经过查阅资料,目前有red5以及nginx+nginx-rtmp-module实现,选择第二种方式来实现。

准备工作:

第一步:准备一个ubuntu的系统。本人使用的是ubuntu16.0.4的系统。

第二步:下载nginx以及相关的依赖,我已经准备好了,大家可以下载我的,安装的过程以及命令可以直接用我的,网盘地址:XXX(用我的,直接看第三步),也可以去官网下载。如果自己安装的话,请参考下面两篇文章(编译的版本以及路径需要自己修改)

点击打开链接点击打开链接

第三步:将下载下来的依赖包中的四个文件拷贝到/usr/local目录下。

第四步:将这四个文件解压。使用 tar -zxvf +压缩文件名  来进行解压

开始编译安装nginx:

第一步:nginx编译依赖pcre,zlib,openssl,编译前请确保g++编译器已安装,若未安装使用sudo apt-get install build-essential安装。

第二步:编译openssl,进入目录:cd  openssl-1.0.2j/   (tips:如果在使用下面命令报类似权限的错误,请使用sudo)

扫描二维码关注公众号,回复: 4366694 查看本文章
./config
./config -t
make depend
make
make test
make install

第三步:编译pcre,进入目录: cd /usr/local/pcre-8.38切换至pcre目录,sudo apt-get install libpcre3-dev安装libpcre3-dev依赖库

./configure --prefix=/usr/local/pcre-8.38
make
make install

第四步:编译nginx

cd /usr/local/nginx-1.8.1
sudo ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.38 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.0.2j --with-http_ssl_module
sudo make
sudo make install

第五步:测试nginx是否顺利的搭建

如编译成功,/usr/local下将有nginx文件夹,cd /usr/local/nginx/sbin切换到该目录,sudo ./nginx,运行nginx,在浏览器中输入本机ip,如看到下图则nginx搭建成功,sudo ./nginx -s stop可退出服务器

添加rtmp视频流服务器

第一步:从github上克隆nginx-rtmp-moudle到/usr/local目录下(注意,需要将这个文件克隆/usr/lcoal目录下)

git clone https://github.com/arut/nginx-rtmp-module.git

第二步:编译安装(注意:下面标记色的地方,你要换一下你自己用户的目录!!!!)

cd /usr/local/nginx-1.8.1
sudo ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre-8.38 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.0.2j --with-http_ssl_module
--add-module=/home/wangwei/nginx-rtmp-module
sudo make
sudo make installwangwei/nginx-rtmp-module
sudo make
sudo make install

第三步:切换至conf目录cd /usr/local/nginx/conf,备份一个nginx.conf,编辑nginx.confsudo nano nginx.conf,将下面的配置替换原来nginx.conf文本中的内容。

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        application myapp{
        live on;
        }
    application hls {
        live on;
        hls on;
        hls_path /tmp/hls;
        }
    }
}
http {
    server {
        listen      80;
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
 
        location /stat.xsl {
            root /usr/local/nginx/html/nginx-rtmp-module/;
        }
 
        location /control {
            rtmp_control all;
        }
 
        location /rtmp-publisher {
            root /usr/local/nginx/html/nginx-rtmp-module/test;
        }
 
        location / {
            root /usr/local/nginx/html/nginx-rtmp-module/test/www;
        }
    }
}

第四步:现在可以测试直播推流。

1、首先必须安装ffmpeg,如果没有安装,安装ffmpeg,ubuntu超简单安装ffmpeg

2、上传一个视频到/usr/local目录下,例如上传的为test.mp4

3、启动nginx,开始推流:

ffmpeg -re -i /usr/local/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://localhost:1935/myapp/test123

4、windows中使用potplayer打开rtmp://你的ip:1935/test/test123 ,打开成功的话,表示安装完成。

第五步:使用webcam来直播推流

1、nginx.conf配置文件需要的内容放在对应的目录下

mkdir /usr/local/nginx/html/nginx-rtmp-module
cp  /root/nginx-rtmp-module/test /usr/local/nginx/html/nginx-rtmp-module/
cp  /root/nginx-rtmp-module/stat.xsl /usr/local/nginx/html/nginx-rtmp-module/

2、然后修改/usr/local/nginx/html/nginx-rtmp-module/test/www目录下的index.html和record.html,将这个里面的localhost修改为本机的ip,例如我的ip是192.168.25.133,我就把localhost换为如下。

3、重启nginx。使用ie浏览器打开你的ip,然后点击recoder,点击启动摄像头,你就可以在index.html看到直播的效果了。如图:

4、基本的已经处理完了,以后接着更新

猜你喜欢

转载自blog.csdn.net/qq_35468937/article/details/80141309