项目部署文档

分享成熟的项目部署文档、各类运行环境搭建等

Centos+Nginx搭建RTMP、HLS直播服务器可行方案

   2017-09-01  点击:6806次

nginx-rtmp-module

一、需要的环境及组件

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)。


附:nginx-rtmp-module项目文档


相关文章