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

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

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

系统环境

操作系统版本:CentOS Linux release 7.9.2009 (Core)下载的nginx版本:nginx-1.21.6nginx的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,显示如下内容,即表示安装成功

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

修改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模块上面,与其平级:

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

重新启动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推流命令成功后,出现如下图所示界面:

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

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

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

当然如果没有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播放验证。


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容