搭建直播服务器实现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这样就能解析你在直播的视频了
此处内容需要权限查看