ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《ZLMediaKit源码学习笔记》(2)MediaServer作为RTSP转发服务器

2022-02-07 22:58:44  阅读:445  来源: 互联网

标签:IPC ZLMediaKit RTSP 源码 MediaServer 拉流 服务器


 系列文章目录

《ZLMediaKit源码学习笔记》(1)windows下VS2022源码编译

《ZLMediaKit源码学习笔记》(2)MediaServer作为RTSP转发服务器(本文)


前言

学习源码前,我们需要先熟悉如何使用ZLMediaKit提供的测试程序,正好本人手上有宇视摄像头,本节就测试下如何使用MediaServer来转发摄像头的RTSP流。

说明:依赖库ZLToolKit源码学习参见《ZLToolKit源码学习笔记》


目录

系列文章目录

前言

一、背景

二、实操


一、背景

安防监控常见使用场景中,经常会出现这种情况:一个网络摄像机/网络录像机,有多个用户需要同时观看实况。而设备的取流是有上限的,无法满足所有用户都能观看成功。比如,一台IPC的取流上限只有10路,当已经有10个用户在局域网电脑上进行了实况预览,那么如果局域网内还有另一个用户也想访问实况就不行了。再或者NVR设备,假设支持的取流上限是64路,如果某个用户播放端上已经看了40路实况,那么就只剩下24路实况供其它用户观看了。

要解决以上限制,我们可以使用流媒体服务器来对设备的视频流进行转发,摄像机的视频流经流媒体服务器转发到不同的用户播放端,用户将不再直接向摄像机拉流,这样就能降低设备的取流压力,满足了多用户使用的需求。

在监控网络传输中,流媒体技术也可以降低网络中的带宽限制。当多个用户要查看同一路监控图像时,流媒体服务器将从IPC/NVR取流,并进行视频流的分发,对IPC/NVR而言只需要取一路视频流,服务器解除了发流设备的带宽限制以及发流端到流媒体的带宽限制,对于后续部分的监控网络传输带宽是没有影响的,这样就可以减少了网络的负荷。


二、实操

测试比较简单,MediaServer作为服务器,提供了一组restful api用来和客户端进行交互。具体参见MediaServer支持的HTTP API · ZLMediaKit/ZLMediaKit Wiki · GitHub。满足我们需求的api是以下这条:

动态添加rtsp/rtmp/hls拉流代理
/index/api/addStreamProxy
参数是否必选释意
secretYapi操作密钥(配置文件配置),如果操作ip是127.0.0.1,则不需要此参数
vhostY添加的流的虚拟主机,例如__defaultVhost__
appY添加的流的应用名,例如live
streamY添加的流的id名,例如test
urlY拉流地址,例如rtmp://live.hkstv.hk.lxdns.com/live/hks2
enable_hlsN是否转hls
enable_mp4N是否mp4录制
rtp_typeNrtsp拉流时,拉流方式,0:tcp,1:udp,2:组播
timeout_secN拉流超时时间,单位秒,float类型

 测试实例:

http://127.0.0.1/index/api/addStreamProxy?vhost=__defaultVhost__&app=live&stream=test1&url=rtsp://admin:123456@192.168.31.66/media/video2&rtp_type=0

我们可以直接在浏览器中测试,这里为方便后续操作,建议安装下postman,ZLMediaKit提供了对应的配置文件可以直接使用。

使用postman导入ZLM源码postman目录下的两个json文件,File->Import->Upload Files:

127.0.0.1.postman_environment.json
ZLMediaKit.postman_collection.json

 使能环境变量,ZLMediaKit_URL配置的IP地址和端口必须与MediaServer中的一致,本地环境默认是127.0.0.1:80,这里不用修改。


 

具体测试过程如下:

1)、启动服务器,直接运行MediaServer即可。

2)、配置rtsp地址,将我们摄像机的rtsp拉流地址配置到服务器,由服务器向IPC拉流,然后通过播放端使用VLC向服务器拉流,也可以使用上节提到的test_player程序拉流。这样不管有多少个播放端,都不需要直接向IPC拉流了,降低了IPC的负载。

 3)、VLC拉流。VLC中,媒体->打开网络串流,输入拉流地址rtsp://127.0.0.1/live/test1,点击播放。

标签:IPC,ZLMediaKit,RTSP,源码,MediaServer,拉流,服务器
来源: https://blog.csdn.net/youlezhe/article/details/122787135

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有