问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Nginx RTMP服务器搭建教程

创作时间:
作者:
@小白创作中心

Nginx RTMP服务器搭建教程

引用
CSDN
1.
https://blog.csdn.net/qq_43424630/article/details/144630823

音视频服务器搭建

本文采用Nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器。

流程

  1. 查看当前服务器的nginx版本
  2. 下载nginx和nginx-rtmp-module源代码
  3. 重新编译nginx,并进行相关配置(nginx.conf、防火墙等)
  4. 客户端测试连接
  5. 测试搭建的直播与点播功能

查看当前nginx版本,并下载对应的源代码

  • nginx版本:

    nginx -V
    
  • 下载对应源码:将以下两个文件安装到同一个路径下(如新建一个/cml路径)

  • 下载nginx源码:

    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    tar -zxvf nginx-1.18.0.tar.gz
    
  • 下载nginx-rtmp-module模块源码:

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

重新编译并配置nginx

  • 进入nginx-1.18目录,执行configure可执行文件

    ./configure --prefix=/home/ubuntu/cml/nginx-1.18.0/build --add-module=/home/ubuntu/cml/nginx-rtmp-module
    

    参数说明:

  • 第一个参数 --prefix=/home/ubuntu/cml/nginx-1.18.0/build 指明安装路径

  • 第二个参数 --add-module=/home/ubuntu/cml/nginx-rtmp-module 指明导入的模块

    再执行 make install 指令生成build目录

  • 配置nginx.conf文件

    rtmp {
        server {
            listen 1935;
            chunk_size 4096;
            # live on
            application rtmp_live {
                live on;
                # hls on; #这个参数把直播服务器改造成实时回放服务器。
                # wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。
                # hls_path ./sbin/html; #切片视频文件存放位置。
                # hls_fragment 10s;     #每个视频切片的时长。
                # hls_playlist_length 60s;  #总共可以回看的时间,这里设置的是1分钟。
                # hls_continuous on; #连续模式。
                # hls_cleanup on;    #对多余的切片进行删除。
                # hls_nested on;     #嵌套模式。
            }
            # play videos
            application rtmp_play{
                play ./videos;  #build directory
            }
        }
    }
    
  • 启动nginx服务

    sudo ./sbin/nginx
    
  • 打开端口防火墙

    sudo ufw allow 1935/tcp
    
  • 通过ffmpeg客户端命令测试服务器是否搭建成功

    ffmpeg -i test.flv -vcodec libx264 -acodec aac -f flv rtmp://8.134.156.7:1935/rtmp_live/mystream
    

    出现以下画面则服务器搭建成功。

    如果出现以下错误:

    Connection to tcp://8.134.156.7:1935 failed: Error number -138 occurred [rtmp @ 00000202d836e940] Cannot open connection tcp://8.134.156.7:1935 rtmp://8.134.156.7:1935/rtmp_live/mystream: Unknown error
    

    请再度检查防火墙是否开放该端口,或再次重启nginx服务

    systemctl status nginx
    

测试服务器直播效果

打开VLC视频测试工具,选择媒体->打开网络串流 -> 输入网络地址 rtmp://xxx.xxx.xxx:1935/rtmp_live/mystream,再客户端推送rtmp流到服务器

推送成功

测试rtmp服务器的点播效果

在系统中准备好测试的点播文件

打开网络流:

rtmp://xxx.xxx.xxx:1935/rtmp_play/test.flv

,点播打开成功。

参考文献

[1] https://mp.weixin.qq.com/s/axPKe2m2Cn6W17v56j-UQQ

[2] 视频教程
[3] https://www.cnblogs.com/Naylor/p/18070047

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号