自建流媒体教程 nginx rtmp 搭建自己的流媒体服务器

nginx+rtmp流媒体服务器搭建

一、nginx+rtmp简介

Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器. 这个流媒体服务器可以支持RTMP和HLS(Live Http Stream)。


二、具体部署步骤

1. 下载nginx和nginx-rtmp-module

下载Nginx-rtmp-module

git clone https://github.com/arut/nginx-rtmp-module.git

1

下载Nginx并解压

wget http://nginx.org/download/nginx-1.14.2.tar.gz

tar -zxvf nginx-1.14.2.tar.gz 

1

2

2. 编译安装Nginx和Nginx-rtmp-module

安装nginx的依赖

sudo apt-get update

sudo apt-get install libpcre3 libpcre3-dev

sudo apt-get install openssl libssl-dev


编译并配置nginx

使用nginx的默认配置,添加nginx的rtmp模块。 add-module为下载的nginx-rtmp-module文件路径。


 cd nginx-1.14.2/ # 进入nginx的目录下

./configure --add-module=../nginx-rtmp-module

make

make install 


3. 运行测试nginx

进入安装目录/usr/local/nginx,运行命令./sbin/nginx,nginx重启命令为 ./sbin/nginx -s reload.查看部署是否成功!




4. 点播视频服务器的配置。

#rtmp配置

rtmp {

     server {

        listen 1935; #监听服务端口 

        chunk_size 4096; # 数据传输块的大小

         

        application vod {

                play /home/zane/video/vod;#视频文件的存放位置

        }    

        }

}




在配置目录/home/zane/video/vod;放一个视频文件,放好之后重启Nginx服务器!


使用vlc 播放器,输入rtmp://114.115.240.14/vod/test.mp4




播放结果:




5. 直播视频服务器的配置

在点播服务器配置文件的基础上添加直播服务的配置。需要添加的一共有2个位置,第一处就是给RTMP服务添加一个application(这个名字可以任意起),也可以起多个名字,由于是直播我就叫做它live吧,如果打算弄多个频道的直播就可以live_cctv1、live_cctv2名字任意。第二处就是添加两个location字段.


#rtmp配置

rtmp {

     server {

        listen 1935; #监听服务端口 

        chunk_size 4096; # 数据传输块的大小


        application vod {

                play /home/zane/video/vod;#视频文件的存放位置

        }

        application live{ #添加的直播字段!

                live on;

        }

        }

}




 location /stat { # 第二处添加的location字段

                rtmp_stat all;

                rtmp_stat_stylesheet stat.xsl;

        }


 location /stat.xsl{ #第二处添加的location字段

       root /home/zane/nginx-rtmp/nginx-rtmp-module/;

    }




添加完成之后,重启Nginx服务器,打开浏览器,输入http://114.115.240.14:81/stat(根据你自己的服务器信息组装地址)




接着使用EV录屏向流媒体服务器进行推流:




此时根据nginx的状态信息可以看到:多出红框内东西,说明推流成功!




使用vlc播放器播放地址rtmp://114.115.240.14/live/test,可进行播放。




nginx+rtmp的直播配置到此结束!


6. 支持回看的直播视频服务器

在上一步的基础上,增加支持回看部分的配置


# rtmp配置

application live{ #添加的直播字段!

                live on;

                hls on; # 这个参数把直播服务器改造为实时回放服务器。

                wait_key on; #对视频切片服务器进行保护,这样就不会产生马赛克了!

                hls_path /home/zane/video/hls;#切片视频文件存放位置

                hls_fragment 600s; #设置HLS片段长度

                hls_playlist_length 10m; #设置HLS播放列表长度,这里设置的是10分钟

                hls_continuous on; #连续模式。

                hls_cleanup on; #对多余的切片进行删除。

                hls_nested on; #嵌套模式:

        }

        

        #在 http 配置中增加一个location

         location /live {

                types {

                        application/vnd.apple.mpegurl m3u8;

                        video/mp2t ts;

                }

                alias /home/zane/video/hls;

                expires -1;

                add_header Cache-Control no-cache;

                add_header Access-Control-Allow-Origin *;

        }






配置完之后重启nginx,然后用vlc播放器测试






微信咨询

客服热线

19888874242

电话咨询

QQ咨询