nginx临时搭建rtmp服务器的方法实现

 更新时间:2024年02月05日 11:04:01   作者:壹零仓  
nginx是一款优秀的反向代理工具,通过Nginx自带的rtmp模块,也可以实现rtmp服务器的搭建,本文主要介绍了nginx临时搭建rtmp服务器,具有一定的参考价值,感兴趣的可以了解一下

由于需要研究rtmp协议交互方式及报数据格式,使用nginx临时搭建一个rtmp服务器,主要通过nginx的rtmp扩展模块实现接收RTMP推送的音视频流,同时提供RTMP拉流服务的能力。

系统环境

  • 操作系统版本:CentOS Linux release 7.9.2009 (Core)
  • 下载的nginx版本:nginx-1.21.6
  • nginx的rtmp模块:git上主版本最新版本

搭建步骤

  • 安装依赖库:
    nginx编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
    yum -y install gcc gcc-c++nginx的http模块使用pcre来解析正则表达式,pcre-devel 是使用 pcre 开发的一个二次开发库,nginx需要依赖这两个库,执行如下命令:
    yum install -y pcre pcre-develnginx使用zlib对http包的内容进行gzip,需要安装此库:
    yum install -y zlib zlib-develnginx可能需要支持HTTPS,最好在系统中安装好openssl,一般系统自带,可通过如下命令确认:
    openssl version如果安装了会显示版本号,如果提示未安装,执行如下命令安装:
    yum install -y openssl openssl-devel

  • nginx编译和安装

  • 下载nginx:
    wget http://nginx.org/download/nginx-1.21.6.tar.gz

  • 下载nginx模块RTMP模块:
    wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.2.tar.gz

  • 解压nginx和rtmp模块:
    tar -zxvf nginx-1.21.6.tar.gztar -zxvf v1.2.2.tar.gz

  • nginx编译和安装:
    ./configure --prefix=/home/wangdenuan/nginx --add-module=../nginx-rtmp-module-1.2.2这里配置了–prefix,配置安装路径,不安装到默认路径,以便安装文件移植和卸载,可直接拷贝次目录下的文件到其他电脑运行如果目录不同,启动时通过-p指定目录即可。
    make&&makeinstall

  • 启动nginx,验证是否正确,执行命令(注意安装目录下的sbin/nginx):
    /home/wangdenuan/nginx/sbin/nginx打开浏览器输入:http://10.45.12.29/,注意ip为本机ip,显示如下内容,即表示安装成功

    1

  • 修改nginx相关配置支持rtmp
    在/home/wangdenuan/nginx/conf/nginx.conf文件中增加:
rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

注意增加位置,在http之外,不属于http子模块,不要加到http里了,配置文件中可以位于http模块上面,与其平级:

2

重新启动nginx:
/home/wangdenuan/nginx/sbin/nginx -s reload

查看1935端口是否已经启用监听:
netstat -antp|grep 1935

如果有监听端口,说明rtmp服务开启成功。

RTMP服务验证

由于实验室存在支持RTSP的IPC摄像机,这里通过ffmpeg接入摄像机的RTSP,并以RTMP协议推送到我们搭建的RTMP服务端中来验证。

  • 在PC机上安装ffmpeg,具体安装方式可百度

  • 找一个可播放的RTSP地址,通过vlc播放器验证rtsp地址播放是否正常,这里以rtsp://admin:zxm10@@@@10.45.12.141/h264/ch1/main/av_stream为例:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtQHnDyq-1672719492141)(null)]

  • 打开命令提示行,输入如下ffmpeg命令,推送rtmp视频流到rtmp服务器,这里假设rtmp服务器IP为:10.45.12.29
    ffmpeg -i rtsp://admin:zxm10@@@@10.45.12.141/h264/ch1/main/av_stream -vcodec copy -acodec copy -f flv rtmp://10.45.12.29:1935/live/testffmpeg推流命令成功后,出现如下图所示界面:

    4

  • 用vlc播放如下串流:rtmp://10.45.12.29:1935/live/test,验证是否rtmp拉流成功。如下图所示,能够正常拉取rtmp流,说明rtmp服务器正常

在这里插入图片描述

当然如果没有rtsp视频源地址,也可以通过ffmpeg输入本地mp4录像文件,推送到rtmp服务器,也可以验证,命令如下:
ffmpeg -re -stream_loop -1 -i .\1.mp4 -vcodec copy -acodec copy -f flv rtmp://10.45.12.29:1935/live/test循环推送文件视频到rtmp服务器,可通过vlc验证,也可通过ffplay播放验证。

到此这篇关于nginx临时搭建rtmp服务器的方法实现的文章就介绍到这了,更多相关nginx临时搭建rtmp服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx 禁用静态文件缓存的配置方法

    Nginx 禁用静态文件缓存的配置方法

    禁用缓存可能会导致性能下降,因为每次请求都需要从后端服务器获取文件,因此,你需要根据具体情况权衡利弊并做出决策,这篇文章给大家介绍Nginx 禁用静态文件缓存的方法,感兴趣的朋友一起看看吧
    2024-02-02
  • nginx如何实现配置静态资源服务器及防盗链

    nginx如何实现配置静态资源服务器及防盗链

    这篇文章主要为大家介绍了nginx实现配置静态资源服务器及防盗链步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Nginx 403 forbidden错误的五种原因及详细解决方法

    Nginx 403 forbidden错误的五种原因及详细解决方法

    这篇文章主要给大家介绍了关于Nginx 403 forbidden错误的五种原因及详细解决方法,相信很多人对403 forbidden是什么意思有了大致的了解,那么当我们遇到403 forbidden怎么解决呢,需要的朋友可以参考下
    2023-08-08
  • nginx https反向代理tomcat的2种实现方法

    nginx https反向代理tomcat的2种实现方法

    这篇文章主要给大家介绍了关于nginx https反向代理tomcat的2种实现方法,第一种方法是nginx配置https,tomcat也配置https,第二种方法是nginx采用https,tomcat采用http,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • Nginx可视化管理工具结合cpolar实现远程访问的步骤详解

    Nginx可视化管理工具结合cpolar实现远程访问的步骤详解

    Nginx Proxy Manager 是一个开源的反向代理工具,本文将给大家介绍在Linux 安装Nginx Proxy Manager并且结合 cpolar内网穿透工具实现远程访问管理界面,同等,当我们使用Nginx Proxy Manager配置其他本地服务,并且需要远程访问,也是同样的方式,需要的朋友可以参考下
    2023-09-09
  • Nginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 查看nginx配置文件路径和资源文件路径的方法

    查看nginx配置文件路径和资源文件路径的方法

    这篇文章主要介绍了查看nginx配置文件路径和资源文件路径,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • nginx中斜杠(/)详解

    nginx中斜杠(/)详解

    本文主要介绍了nginx中斜杠(/)详解,配置location、proxy_pass时,加“/”与不加“/”的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • nginx配置多个前端项目实现步骤

    nginx配置多个前端项目实现步骤

    本文主要介绍了nginx配置多个前端项目实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx配置如何区分PC或手机访问不同域名

    Nginx配置如何区分PC或手机访问不同域名

    这篇文章主要介绍了Nginx配置如何区分PC或手机访问不同域名,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论