Nginx除了做web服务器之外在流媒体方面的支持也是有对应的模块,nginx-rtmp-module就是nginx的一个扩展模块,支持rtmp视频推流,同时利用nginx作为web服务器的有时可以很方便的实现直播拉流,项目官方地址是https://github.com/arut/nginx-rtmp-module。下面简述一下安装过程。首先需要下载或者克隆代码

#下载
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
#或者克隆
git clone https://github.com/arut/nginx-rtmp-module.git

然后安装,如果以前没安装过nginx那就比较简答了,直接解压(克隆的不需要解压)然后配置的时候加上--add-module=/解压后模块路径/nginx-rtmp-module,假设下载压缩包到/root目录做下,然后顺序执行如下指令即可,如果以前已经安装了nginx请参照如何在已经安装好的Nginx上增加新模块

unzip master.zip
#最精简的config参数
./configure --add-module=/root/nginx-rtmp-module
make
make install

安装完成将如下配置拷贝到nginx配置文件http配置项的外面 下面配置指定/home/wwwroot/video/hls目录为推流目录,该目录一定要有可写权限

rtmp {

    server {

        listen 1935;  #监听的端口

        chunk_size 4000;
        application hls {  #rtmp推流请求路径
            live on;
            hls on;
            hls_path /home/wwwroot/video/hls;
            hls_fragment 5s;
        }
    }
}

 然后配置一个虚拟主机,假设root目录为/home/wwwroot/video/

server {
    listen       80;    #拉流请求的端口号
    server_name  你的服务器域名或者ip;

    location / {
        root   /home/wwwroot/video/;   #跟目录文件夹
        index  index.html index.htm;
    }
}

配置完后重新载入nginx配置/nginx安装目录/sbin/nginx -s reload

接下来就是推流和拉流操作,推流地址为rtmp://服务器域名:1935/hls,假设流名称填写为edu,则拉流地址为http://服务器域名/hls/edu.m3u8或者使用rtmp协议拉流rtmp://你的域名/hls/edu