搭建直播服务器实现rtmp推流m3u8切片播放


上次写过一个“搭建推流直播服务器(Nginx+Nginx-rtmp-module+推流软件obs)”,这回写一个可以实现推流切片成ts文件,生成m3u8文件通过浏览器观看视频流

按照我下面一步一步执行绝对能成功(温馨提示别把#号后面的都复制了,那是注释)

先安装Nginx

下载必备安装包
创建安装包存放文件夹

mkdir source #创建源码目录 后面的源码都放在这个目录
cd source
yum -y install git #安装git
git clone https://github.com/nginx/nginx.git #从github服务器上将nginx的源代码下载下来
git clone https://github.com/arut/nginx-rtmp-module.git #将rtmp模块的源码下载下来

下载依赖模块源码pcre、OpenSSL、zlib 如果机器上已经安装了这些模块就不需要了

wget https://www.openssl.org/source/openssl-1.1.0.tar.gz #下载OpenSSL源码包
wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz #下载pcre源码包
wget http://www.zlib.net/zlib-1.2.11.tar.gz #下载zlib包源码

解压上面下载的pcre、OpenSSL、zlib

tar -zxvf openssl-1.1.0.tar.gz
tar -zxvf pcre-8.39.tar.gz
tar -zxvf zlib-1.2.11.tar.gz

进入nginx文件夹

cd nginx
vi config.sh #创建config.sh

把下面整段代码复制进去,粘贴好以后按esc然后输入 “:wq”保存退出

./auto/configure --prefix=/usr/local/nginx \
        --with-pcre=../pcre-8.39 \
        --with-openssl=../openssl-1.1.0 \
        --with-zlib=../zlib-1.2.11 \
        --with-http_v2_module \
        --with-http_flv_module \
        --with-http_mp4_module \
        --add-module=../nginx-rtmp-module/

yum -y install gcc #确保依赖的gcc安装
yum -y install gcc-c++ #确保依赖的c++已经安装
chmod 777 config.sh #给777权限
./config.sh #执行
make install  #安装

新建hls_path文件夹

mkdir -p /usr/share/nginx/html/hls
vi /usr/local/nginx/conf/nginx.conf #修改配置文件

加入以下内容rtmp模块:(rtmp{}的内容和http{}为同级)

rtmp  {
    server {    
        listen 1935;  #监听的端口  
        chunk_size 4000;      
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /usr/share/nginx/html/hls;    
            hls_fragment 5s;    
        }    
    }
}

修改http中的server模块可以根据自己的需求进行修改{location部分}

location / {  
	     add_header Cache-Control no-cache;
	     add_header 'Access-Control-Allow-Origin' '*' always;
	     add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
	     add_header 'Access-Control-Allow-Headers' 'Range';
	     root   /usr/share/nginx/html;  
	     index  index.html index.htm;  
	    }

修改完毕重启Nginx

/usr/local/nginx/sbin/nginx -s reload

使用OBS来推流,在设置->串流 中填写信息:URL为 rtmp://xxx:1935/hls,xxx为你的服务器的IP地址,hls是用来存放流媒体的
秘钥可以随便填写一个,用来播放的时候识别播放哪个流媒体的,例如填写mystream
填写完毕后,点击开始串流,就说明我们的流媒体服务器搭建成功了
打开/usr/share/nginx/html/hls,里面出现mystream.m3u8说明推流正常接下来我们就可以拉流播放了
可以用videojs来进行视频解析你的m3u8文件

比如你的直播m3u8地址是http://192.168.0.0/hls/mystream.m3u8,可以利用我写的videojs文件来解析,解析文件在下面,把下面文件传到你的网站即可 http://你的网站/videojs.php?url=http://192.168.0.0/hls/mystream.m3u8这样就能解析你在直播的视频了

 

隐藏内容

此处内容需要权限查看

  • 普通5金币

发表回复

后才能评论