Nginx之——nginx-rtmp-module搭建流媒体服务器实现直播

时间:2022-09-17 08:35:41

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/80022437

一、基础环境搭建

yum install -y gcc gcc-c++ autoconf wget
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*  

二、Nginx安装

1、安装openssl

openssl官网:http://www.openssl.org/

安装版本:openssl-1.0.1i.tar.gz

安装命令:

#tar -zxvf openssl-1.0.1i.tar.gz
#cd openssl-1.0.1i
#sudo ./config --prefix=/usr/local/openssl-1.0.1i    #prefix指定安装目录
#sudo make
#sudo make install

【注意】:此处使用的是config命令,而不是平常的configure命令

安装完成后,到/usr/local/下查看是否安装成功。如果安装出错,需要重新加压缩,重新安装。

2、安装pcre

pcre官网:http://www.pcre.org/

安装版本:pcre-8.35.tar.gz

安装命令:

#tar -zxvf pcre-8.35.tar.gz
#cd pcre-8.35
#sudo ./configure --prefix=/usr/local/pcre-8.35    #prefix指定安装目录
#sudo make
#sudo make install

安装完成后,到/usr/local/下查看是否安装成功。如果安装出错,需要重新加压缩,重新安装。

【注意】:如果没有安装c++编译器,这个软件的安装会报错!

3、安装zlib

zlib官网:http://www.zlib.net/

安装版本:zlib-1.2.8.tar.gz

安装命令:

#tar -zxvf zlib-1.2.8.tar.gz
#cd zlib-1.2.8
#sudo ./configure --prefix=/usr/local/zlib-1.2.8    #prefix指定安装目录
#sudo make
#sudo make install

安装完成后,到/usr/local/下查看是否安装成功。如果安装出错,需要重新加压缩,重新安装。

4、下载nginx-rtmp-module

nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module
使用命令:

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

5、安装Nginx

安装版本:nginx-1.9.3.tar.gz

安装命令:

./configure --prefix=/usr/local/nginx-1.9.3  --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37  --with-zlib=/usr/local/src/zlib-1.2.8 --add-module=/usr/local/src/nginx-rtmp-module --with-http_ssl_module
make
make install

三、Nginx配置

vi /usr/local/nginx-1.9.3/conf/nginx.conf
加入以下内容:
rtmp {
    server {
        listen 1935;  #监听的端口
        chunk_size 4096;   
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /usr/share/nginx/html/hls;    
            hls_fragment 5s;    
        }    
    }    
}  
hls_path需要可读可写的权限。
修改http中的server模块:
server {  
    listen       81;  
    server_name  localhost;  
  
    #charset koi8-r;  
  
    #access_log  logs/host.access.log  main;  
  
    location / {  
        root   /usr/share/nginx/html;  
        index  index.html index.htm;  
    }  
  
    #error_page  404              /404.html;  
  
    # redirect server error pages to the static page /50x.html  
    #  
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   html;  
    }  
然后启动nginx:
/usr/local/nginx-1.9.3/sbin/nginx -c /usr/local/nginx-1.9.3/conf/nginx.conf  

四、使OBS推流

OBS(Open Broadcaster Software) 是以互联网流媒体直播内容为目的免费和开放源码软件。需要下载这个软件,借助这个软件进行推流(电脑没有摄像头的貌似安装不了。。。)

就长这个样子
Nginx之——nginx-rtmp-module搭建流媒体服务器实现直播

打开后我们需要有一个场景,并且在这个场景下有一个流的来源(可以是窗口,如果选的是视频则会自动识别摄像头),接下来就是设置了

Nginx之——nginx-rtmp-module搭建流媒体服务器实现直播

在配置中最需要关注的就是流的配置了,由于是自建的流媒体服务器所以我们照这样配置

rtmp://你的服务器ip:端口(1935)/live #URL填写流的地址

Nginx之——nginx-rtmp-module搭建流媒体服务器实现直播

设置完成我们就可以 开始推流了

五、拉流测试地址

推荐一个拉流的测试地址,里面针对各种协议都能测试拉流测试,需要注意图中几个地方,由于我们使用的rtmp协议,我们选择这一栏,底下填写我们推流的地址和我们在上面obs的设置里面配置的流的名称,start, ok搞定!!!!

Nginx之——nginx-rtmp-module搭建流媒体服务器实现直播