美文网首页
nginx+rtmp直播流服务搭建 centos7

nginx+rtmp直播流服务搭建 centos7

作者: justlinzhihe | 来源:发表于2017-10-19 11:42 被阅读0次

1.先去nginx官网下载源码到服务器然后解压

官网地址http://nginx.org/en/download.html
右键复制地址

Paste_Image.png
下载并解压 Paste_Image.png

2.下载nginx-rtmp-module

Paste_Image.png

3.环境检查 编译 安装

如果缺少gcc等环境编译工具请自行下载安装
切换到nginx源码目录下执行

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module

如果提示缺少提示缺少openssl,zlib,pcre相关的lib,有两种解决方式
1)系统安装相关的软件,但是在实际的安装过程中遇到openssl安装了但是nginx还是找不到,这个应该是openssl的安装目录和nginx找的目录对不上,此时可采用第二种方式
2)下载openssl,zlib,pcre的源码包,指定目录,运行

./configure --add-module=<nginx-rtmp-module的源码目录>
--with-pcre=<pcre的源码目录>
--with-openssl=<openssl的源码目录>
--with-zlib=<zlib的源码目录>

然后再执行


Paste_Image.png

如果结果是这样的就没问题了

Paste_Image.png

接下来就是编译安装了

make && make install

编译完成可能会报错,原因在于openssl的版本和nginx的版本不兼容,具体版本适配可以百度
执行完后去/usr/local目录下可以看到nginx文件夹,这个就是编译安装生成nginx

4.编辑配置文件

我们主要关心的文件有两个,一个是sbin/nginx 这个是nginx的执行文件,还有一个就是conf/nginx.conf这个是nginx的配置文件

./sbin/nginx -c ./conf/nginx.conf 启动nginx
./sbin/nginx -s stop 停止nginx
./sbin/nginx -s reload 重启nginx

配置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;  #监听的端口  
        chunk_size 1000;    
        application live {#直播推流配置,推流地址rtmp://ip:1935/live/流密匙,这个流密匙用于拉流时之用
            live on;
            record off;
        }
        application hls {  #点播推流配置  推流地址rtmp://ip:1935/hls/流密匙 
            live on;    
            hls on;    
            hls_path /usr/share/nginx/html/hls;   #ts文件存放地址
            hls_fragment 1s;    
        }    
    }    
}  
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8081;
        server_name  localhost;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
 
        location /hls {#获取点播流的配置
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            alias /usr/share/nginx/html/hls;
            add_header Cache-Control no-cache;
        }
    }
}

5.启动nginx之后就可以进行推流了,如果是阿里云要进行安全组配置,有防火墙的也要开放对应端口

这里用的推流工具为obs https://obsproject.com/

Paste_Image.png Paste_Image.png

6.拉流观看,用的是ckplayer

直播拉流

<script type="text/javascript" src="ckplayer.js" charset="utf-8"></script>
   <div id="a1"></div>
   <script type="text/javascript">
   var flashvars = {
       f: 'rtmp://ip:1935/live/linzh',
       c: 0
   };
   var video = [''];
   CKobject.embed('ckplayer.swf', 'a1', 'ckplayer_a1', '600', '400', false, flashvars, video);
</script>

点播拉流


<script type="text/javascript" src="ckplayer.js" charset="utf-8"></script>
 <div id="a1"></div>
 <script type="text/javascript">
 var flashvars = {
     f: 'm3u8.swf',
     a: 'http://ip:8081/hls/linzh.m3u8',
     s: 4,
     c: 0
 };
 var params = {
     bgcolor: '#FFF',
     allowFullScreen: true,
     allowScriptAccess: 'always',
     wmode: 'transparent'
 };
 var video = ['http://ip:8081/hls/linzh.m3u8'];
 CKobject.embed('ckplayer.swf', 'a1', 'ckplayer_a1', '100%', '100%', false, flashvars, video, params);
 </script>

相关文章

网友评论

      本文标题:nginx+rtmp直播流服务搭建 centos7

      本文链接:https://www.haomeiwen.com/subject/drxuuxtx.html