nginx+rtmp流媒体服务器搭建

爱被打了一巴掌 2022-03-25 10:20 622阅读 0赞

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

  • 下载Nginx并解压

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

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文件路径。

  1. cd nginx-1.14.2/ # 进入nginx的目录下
  2. ./configure --add-module=../nginx-rtmp-module
  3. make
  4. make install

20190119144417.png

3. 运行测试nginx

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

20190119150107.png

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

  1. #rtmp配置
  2. rtmp {
  3. server {
  4. listen 1935; #监听服务端口
  5. chunk_size 4096; # 数据传输块的大小
  6. application vod {
  7. play /home/zane/video/vod;#视频文件的存放位置
  8. }
  9. }
  10. }

20190119152712.png

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

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

20190119152933.png

播放结果:

20190119153318.png

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

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

  1. #rtmp配置
  2. rtmp {
  3. server {
  4. listen 1935; #监听服务端口
  5. chunk_size 4096; # 数据传输块的大小
  6. application vod {
  7. play /home/zane/video/vod;#视频文件的存放位置
  8. }
  9. application live{ #添加的直播字段!
  10. live on;
  11. }
  12. }
  13. }
  14. location /stat { # 第二处添加的location字段
  15. rtmp_stat all;
  16. rtmp_stat_stylesheet stat.xsl;
  17. }
  18. location /stat.xsl{ #第二处添加的location字段
  19. root /home/zane/nginx-rtmp/nginx-rtmp-module/;
  20. }

20190119155548.png

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

20190119155739.png

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

20190119161311.png

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

20190119161425.png

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

20190119161159.png

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

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

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

  1. # rtmp配置
  2. application live{ #添加的直播字段!
  3. live on;
  4. hls on; # 这个参数把直播服务器改造为实时回放服务器。
  5. wait_key on; #对视频切片服务器进行保护,这样就不会产生马赛克了!
  6. hls_path /home/zane/video/hls;#切片视频文件存放位置
  7. hls_fragment 600s; #设置HLS片段长度
  8. hls_playlist_length 10m; #设置HLS播放列表长度,这里设置的是10分钟
  9. hls_continuous on; #连续模式。
  10. hls_cleanup on; #对多余的切片进行删除。
  11. hls_nested on; #嵌套模式:
  12. }
  13. #在 http 配置中增加一个location
  14. location /live {
  15. types {
  16. application/vnd.apple.mpegurl m3u8;
  17. video/mp2t ts;
  18. }
  19. alias /home/zane/video/hls;
  20. expires -1;
  21. add_header Cache-Control no-cache;
  22. add_header Access-Control-Allow-Origin *;
  23. }

20190119175727.png

20190119175712.png

配置完之后重启nginx,在/home/zane/video/hls/test/目录下,有若干个视频切片

20190119181210.png

使用vlc播放器,(http://114.115.240.14/live/test/20.ts)播放视频切片如下图:

20190119174933.png

到目前为止,支持点播,直播,回放等功能的流媒体服务器搭建完成!

发表评论

表情:
评论列表 (有 0 条评论,622人围观)

还没有评论,来说两句吧...

相关阅读

    相关 用SRSWebRTC媒体服务器

    WebRTC经过这么多年的发展,目前已经比较成熟的协议之一,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也越来越多,但是基于WebRTC协议的部署简单,性能强悍,功能