首页 > 系统相关 >开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放

开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放

时间:2023-04-13 18:34:07浏览次数:52  
标签:http 需拉流拉取 rtsp flv https ZLMediaKit com

场景

目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等。

1、SRS

https://github.com/ossrs/srs

2、EasyDarwin

https://github.com/EasyDarwin/EasyDarwin

3、Monibuca

https://github.com/Monibuca

4、ZLMediaKit

https://github.com/xia-chu/ZLMediaKit

https://gitee.com/xia-chu/ZLMediaKit

ZLMediaKit是一套高性能的流媒体服务框架,目前支持rtmp、rtsp、hls、http-flv等流媒体协议,

支持linux、macos、windows三大PC平台和ios、android两大移动端平台。

ZLMediaKit功能概览

 

 

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

1、ZlMediaKit各文档说明地址

https://github.com/ZLMediaKit/ZLMediaKit/wiki/

其功能较多,这里我们需要的是在Windows上运行,以及修改配置文件配置一些端口地址等配置,并实现按需拉流。

比如前端选择某摄像头之后,才进行拉取该摄像头的rtsp视频流,并转换成能网页能播放的Http-flv格式的视频流。

所以需要的文档只有如下:

配置文件详解:

https://github.com/zlmediakit/ZLMediaKit/blob/master/conf/config.ini

按需拉流:

https://github.com/ZLMediaKit/ZLMediaKit/wiki/ZLMediaKit%E5%AE%9E%E7%8E%B0%E6%8C%89%E9%9C%80%E6%8B%89%E6%B5%81

RESTful接口:

https://github.com/zlmediakit/ZLMediaKit/wiki/MediaServer%E6%94%AF%E6%8C%81%E7%9A%84HTTP-API

播放URL规则:

https://github.com/zlmediakit/ZLMediaKit/wiki/%E6%92%AD%E6%94%BEurl%E8%A7%84%E5%88%99

 

 

实现按需拉流流程

文档地址:

https://github.com/ZLMediaKit/ZLMediaKit/wiki/ZLMediaKit%E5%AE%9E%E7%8E%B0%E6%8C%89%E9%9C%80%E6%8B%89%E6%B5%81

 

 

2、Windows上运行ZLMediaKit

Windows上无直接可用版本,一种是可以根据文档说明自己进行编译。

https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

一种是直接从网络上下载别人编译好的版本。

这里选择直接下载别人编译之后的版本使用,比如下面:

Windows上ZLMediakit编译后可直接运行版本(带外置配置文件和运行可能所需dll依赖):

https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/87685103

下载解压之后,MediaServer.exe是服务主程序,config.ini是配置文件。

 

 

编辑config.ini配置文件,根据自己需要进行修改,具体参照官方配置说明

这里是将Http的端口由原来的80改为800了

 

 

修改完配置文件之后,管理员模式启动MediaServer.exe即可。

启动成功之后的页面

 

 

其他功能所需配置根据自己需要决定开启或关闭,以及默认这些开启配置的端口注意不要冲突,

比如554、332、1935、19350、800、1443、9000、10002等配置文件中配置的端口。

ZLMediaKit启动时提示:由于找不到libcrypto-1_1x64.dll,无法继续执行代码。

以及提示:由于找不到libssl-1_1-x64.dll,无法继续执行代码。

 

 

则系统需要该两个依赖,从网络下载这两个dll,或者从上面资源中

将这两个dll,放到C:\Windows\System32目录下

 

 

添加如上两个dll之后,如果ZLMediaKit仍然启动时报错,则是缺少其他必须的依赖dll,另外两个dll也从上面复制到

System32目录下,或者从网络上自行下载之后复制过去。

faac:

https://sourceforge.net/projects/faac/

SDL2:

https://www.libsdl.org/

3、实现按需拉流

这里以拉取rtsp视频流为例。

比如拉取宇视的rtsp的视频流。

rtsp://[username]:[password]@[ip]:[port]/media/video1/2/3

说明:

username: 用户名。例如admin。
password: 密码。例如admin123。
ip: 为设备IP。例如 192.168.1.107。
port: 端口号默认为554,若为默认可不填写。
video: 1代表主码流、2辅码流、3第三码流

如:rtsp://admin:[email protected]/media/video2

使用vlc拉取rtsp视频流确保能进行拉流和预览

按照文档说明如果需要实现按需拉流,需要在要拉流预览时调用api,所有api都可用get或post进行请求

/index/api/addStreamProxy

参数说明

 

 

参考给出的示例url

http://127.0.0.1/index/api/addStreamProxy?vhost=__defaultVhost__&app=proxy&stream=0&url=rtmp://live.hkstv.hk.lxdns.com/live/hks2

修改为

http://127.0.0.1:800/index/api/addStreamProxy?vhost=127.0.0.1&app=live&stream=test&url=rtsp://admin:123456@摄像头Ip/media/video2

这里都是在本地,并且配置的http的端口为800,然后指定虚拟主机地址也为本地,如果在服务器上,则配置为服务器的地址,然后设置流的应用名和流的唯一标识id

将以上地址在浏览器中访问或者用postman等测试工具中请求,请求成功时

 

 

状态码返回0,返回流应用名live,以及流的唯一标识id为test。

那么这些关键字可以根据文档URL的规则说明中进行拼接其他视频流格式。

比如拼接http-flv的格式为

http://127.0.0.1:800/live/test.flv

那么这个地址就可以直接在vlc或者网页中进行播放。

我们统一在vlc中进行播放http-flv以及原生rtsp的视频流进行对比延迟

 

 

如果rtsp的流地址播放失败则返回-1

 

 

4、播放URl规则

注意上面播放URL规则中

老代码flv直播后缀为.flv,新代码才改成了.live.flv,这里是老版本的编译版本。

这里的live就是对应上面api调用时的流应用名,0就是对应的流id。

所以这里对应的url为

http://127.0.0.1:800/live/test.flv

在html以及Vue中播放http-flv格式的视频可参考如下:

Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/129427853

5、不是部署在本机

上面调用api进行按需拉流时地址是127.0.0.1,如果ZLMediaKit在服务器上,如果直接修改ip为服务器ip则会提示

缺少必要参数secret

 

 

根据接口说明

 

 

如果操作Ip不是本机,则需要添加这个参数,参数获取在服务器上配置文件中获取

6、按需拉取多个rtsp流

如果说需要拉取多个视频流,则只需要调用接口时传递流id不同即可,流应用没必要改变。

http://127.0.0.1:800/index/api/addStreamProxy?vhost=127.0.0.1&app=live&stream=test2&url=rtsp://admin:123456@第二个摄像头Ip/media/video2

比如之类传递test2

 

 

则第二个摄像头的预览地址对应为

http://127.0.0.1:800/live/test2.flv

 

标签:http,需拉流拉取,rtsp,flv,https,ZLMediaKit,com
From: https://www.cnblogs.com/badaoliumangqizhi/p/17315990.html

相关文章

  • LIVE555再学习 -- testOnDemandRTSPServer 源码分析
    一、简介先看一下官网上的介绍:testOnDemandRTSPServer createsaRTSPserverthatcanstream,viaRTPunicast,fromvarioustypesofmediafile,ondemand.(Supportedmediatypesinclude:MPEG-1or2audioorvideo(elementarystream),includingMP3audio;MPEG-4......
  • LIVE555再学习 -- testRTSPClient 实例
    上一篇文章简单看了一遍 testRTSPClient 的源码,接下来举几个应用实例加深一下。首先什么都不做修改,先执行一遍,看一下。一、执行 testRTSPClient 特么,上面的东西我没看明白。。。a=、b=、c=等等这是什么?还有我看别人分析的好像用到什么网络抓包工具,我不知道是什么工具,可能是......
  • LIVE555再学习 -- testRTSPClient 源码分析
    现在开讲 testRTSPClient。在官网这这样一段介绍,参看:RTSPclient翻译下来就是:testRTSPClient是一个命令行程序,显示如何打开和接收由RTSPURL指定的媒体流,即以rtsp://开头的URL在这个演示应用中,接收到的音频/视频数据什么也没有。但是,您可以在自己的应用程序中使用和调整此代码(......
  • RTSP再学习 -- RTSP协议分析(转载)
    最近一直在看RTSP,但是RTSP协议是个啥?还没有搞清楚。首先流媒体百度百科上有这样一段,从基本的名字上或多或少可以理解一下这些传输协议的区别。这很重要!!传输协议1、RSVP:资源预留协议2、RTP:实时传输协议3、RTCP:实时传输控制协议4、MMS:微软流媒体服务协议5、RTSP:实时流传输协议6、MIM......
  • ZLMediaKit + wvp-GB28181-pro 流媒体服务搭建
    目录环境备部署基础环境配置修改ZLMediaKit配置文件WVP-PRO的mysql数据库配置wvp-GB28181-pro配置wvp-pro-assist配置部署后端服务前端服务摄像头接入配置示例大华接入海康接入环境备1、服务运行环境,Linux/OSX/Windows均可,但推荐Linux2、海康、大华等符合国标28181标准......
  • ArtSpotter:为你提供发掘艺术的机会
    伦敦此刻正成为全世界的焦点,奥运会各项赛事也正如火如荼的进行中。ArtSpotter应用也因为奥运会而被人们所熟知,这款应用能及时的呈现各项赛事美的瞬间,能提供艺术爱好者互相......
  • RTSP协议以及实际应用
    RTSP(Real-TimeStreamingProtocol)是一种用于控制实时流媒体传输的协议。它是一种客户端/服务器协议,用于控制媒体资源的播放,如音频、视频和文本数据。RTSP协议允许客户端向......
  • 视频融合平台EasyCVR获取RTSP和RTMP视频流地址未区分内外网的问题修复
    EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集......
  • 开源媒体服务器: ZlMediaKit
    部署环境操作系统:centosel7IP:10.1.200.48User:rootPassword:1安装编译过程:查看操作系统版本,centos6和centos7不一样的方式进行不一样的编译过程......
  • ZLMediakit独家特性介绍
    1、先播放后推流痛点:推流成功前不能提前播放场景介绍:有些及时推流的场景,存在推流和播放同时发生的场景,这种场景一般是一对一的,譬如说基于rtmp推流的行车记录仪,用户在调......