Centos+Nginx搭建RTMP、HLS直播服务器可行方案
一、需要的环境及组件
Centos 7:centos-release-7-3.1611.el7.centos.x86_64
Nginx:nginx/1.13.2
nginx-rtmp-module:基于Nginx的开源流媒体服务器
二、安装Nginx+nginx-rtmp-module
到nginx官网下载最新的源码包,到nginx-rtmp-module项目地址下载最新源码。
编译安装nginx,注意在参数里指定nginx-rtmp-module:
tar zxf nginx-1.13.2.tar.gz tar zxf nginx-rtmp-module-master.zip unzip nginx-rtmp-module-master.zip cd nginx-1.13.2 ./configure --add-module=../nginx-rtmp-module-master make make install
三、配置nginx虚拟主机配置文件
1. 配置rtmp服务。
rtmp { server { listen 1935; chunk_size 4096; application vod { play /vod; } } }
2. 配置直播,以及hls支持。
application sdchinalive{ live on; hls on; wait_key on; hls_path /vod/hls; hls_fragment 10s; hls_playlist_length 10s; hls_continuous on; hls_cleanup on; hls_nested on; }
hls_path:切片保存位置
hls_fragment:每片切片的长度
hls_playlist_length:这个是回播的长度,可以理解成延迟,因为直播不可能是绝对的实时
hls_cleanup on:清理切片,即删除用完的切片
3. 配置直播录制,格式转换,以及回播。
需求是:直播完成后,需要录制视频,并自动处理,使视频可以在网站前端播放。
要注意:默认录制的视频格式为flv,而IOS不支持flv,所以要先转为mp4再发布到前端。
转换视频使用FFmpeg,需提前安装。
record all:保存视频
record_path /vod/record:保存的视频位置
exec_record_done ffmpeg -y -i $path -codec copy -movflags +faststart /vod/record/$name.mp4:保存完成后转成mp4格式
4. 配置状态监控页面
在server标签中配置状态监控模块
location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /usr/local/nginx/nginx-rtmp-module/; }
stat.xsl文件在nginx-rtmp-module项目里面,路径可自己定义。配置之后,可通过IP或绑定的域名访问监控模块:ip/stat
四、客户端推送
直播推流端使用rtmp协议推流,端口为1935。推流软件推荐使用开源的OBS(Open Broadcaster Software)。