搭建zlmediakit和wvp_pro

news2024/11/16 7:52:59

zlmediakit使用zlmediakit/zlmediakit:master镜像
wvp_pro使用648540858/wvp_pro,可参照https://github.com/648540858/wvp-GB28181-pro
wvp_pro官方https://doc.wvp-pro.cn/#/
刚开始我找了个docker镜像运行,后来播放页面一直加载,最后就用了源码运行

我们从wvp-pro的官网看到wvp-pro和zlmedialKit流程
在这里插入图片描述
wvp与zlm是api通信,zlm与wvp是hook通信

zlmediakit启动命令
docker run -d -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 30000-30500:30000-30500 -p 30000-30500:30000-30500/udp --name zlm zlmediakit/zlmediakit:master

zlmediakit修改参数

  1. 进入容器 docker exec -it zlm /bin/bash
  2. vim …/conf/config.ini
  3. 记录一下 api.secret,general.mediaServerId,当然也可以自己随便写
  4. hook.enable改成1,因为zlm与wvp是hook方式通信
alive_interval=10.0
enable=1
on_flow_report=
on_http_access=
on_play=http://192.168.1.85:8081/index/hook/on_play
on_publish=http://192.168.1.85:8081/index/hook/on_publish
on_record_mp4=http://127.0.0.1:18081/api/record/on_record_mp4
on_record_ts=
on_rtp_server_timeout=http://192.168.1.85:8081/index/hook/on_rtp_server_timeout
on_rtsp_auth=
on_rtsp_realm=
on_send_rtp_stopped=http://192.168.1.85:8081/index/hook/on_send_rtp_stopped
on_server_exited=http://192.168.1.85:8081/index/hook/on_server_exited
on_server_keepalive=http://192.168.1.85:8081/index/hook/on_server_keepalive
on_server_started=http://192.168.1.85:8081/index/hook/on_server_started
on_shell_login=
on_stream_changed=http://192.168.1.85:8081/index/hook/on_stream_changed
on_stream_none_reader=http://192.168.1.85:8081/index/hook/on_stream_none_reader
on_stream_not_found=http://192.168.1.85:8081/index/hook/on_stream_not_found
retry=1
retry_delay=3.0
stream_changed_schemas=rtsp/rtmp/fmp4/ts/hls/hls.fmp4
timeoutSec=20

对应修改相关的ip的端口,ip和端口对应的都是wvp的,
在这里插入图片描述
5. wq保存退出,然后重启zlm

wvp配置文件修改

  1. server.port视实际情况修改,和zlm统一
  2. redis和mysql按实际情况修改,源码中存在mysql文件,直接新建数据库即可
  3. sip.ip修改为本机ip,sip.port修改为国标监听的端口,注意和server.port区分
  4. 重点:media.id修改为zlm的general.mediaServerId,media.secret修改为api.secret 上面说记录一下的那个。其余media按官方文档修改即可,我这边端口范围改成了30000-30500,也按实际情况修改,因为我的zlm是docker部署,此时配置的端口范围也要在docker run zlm的时候相应暴露出来,因为设备是往这些端口上推流的
  5. user-settings.allowed-origins修改为前端地址,这些在wvp官方文档都有说明,就不细说了

抓包

我刚开始是有个地址配置错误了,查看日志收不到设备的视频流,虽然官网也有说明,但是也在此也记录一下
官网是说按网卡抓包,我是用的ip地址,不过也都一样,抓包方法就不说了
抓包是在web页面点击实施预览无画面的过程,点击之前开始抓包,没画面过一会就关闭抓包就好了

我们打开抓包的文件
在这里插入图片描述
我这个是按网卡抓包的,就比较多东西,我们搜索sip or rtp

我们就再次结合这张图来说一下具体流程
在这里插入图片描述
192.168.1.197是设备的ip
192.168.1.78是服务器,5060端口是wvp的端口(sip.port)
抓包数据中No.401,是wvp-pro下发invite给设备,这里面就包含了设备需要往哪里推流
在这里插入图片描述
我的这个ip就配置错误了,应该是192.168.1.78,就导致一直没收到流,如果是外网的情况下,那这里应该就是外网的ip了
抓包中的rtp数据,就是视频流了,是可以导出在vlc播放的,双击一个rtp数据弹出具体信息
在这里插入图片描述
在这里插入图片描述
这样就可以导出了,就按照默认格式导出即可,拖到vlc里面是可以播放的,就证明设备的流是没问题的,因为wvp配置了一段时间无人播放就会关闭推流,所以当推流地址错误时,zlm收不到流,zlm也就没法通知到wvp流改变事件,所以就会收流超时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计包括了四个既独立又相互联系的活动

软件设计包括了四个既独立又相互联系的活动

广告联盟是什么?app开发者如何选择广告联盟?

在广告变现过程中,广告联盟是必不可少的因素,广告联盟是一种在线广告服务模式,它将广告主和网站主(或博主、应用开发者等)联系在一起,通过广告联盟平台的中介服务,将广告主的广告投放到网站主的…

sigmoid和softmax函数的区别;神经网路常用的损失函数以及对应的应用场景;softmax的作用

一、Sigmoid函数和Softmax函数是常用的激活函数,它们在神经网络中经常用于实现非线性映射。 Sigmoid函数:Sigmoid函数常用于二分类问题,它将输入的取值范围映射到一个介于0和1之间的输出。Sigmoid函数的公式是 f(x) 1 / (1 exp(-x))&#x…

Python的web自动化学习(一)Selenium库的工作原理

Python的web自动化学习(一)Selenium库的工作原理 首发2023-07-31 11:01云中随心而记 后续会根据持续学习来更新,大家一起学习 引言: Selenium是一个流行的自动化测试工具,用于模拟和控制浏览器行为,常用于…

美创科技列为IDC中国数据安全市场代表厂商

近日,国际权威IT咨询机构IDC发布《中国数据安全市场发展趋势,2023》报告,报告针对中国数据安全市场的发展现状进行调研,明确了最终用户数据安全建设的痛点、难点,阐述了市场中各技术服务提供商的服务方案和优势。 美创…

24 个常见的 Docker 疑难杂症处理技巧!!!记得点赞收藏

1. Docker 迁移存储目录 默认情况系统会将 Docker 容器存放在 /var/lib/docker 目录下 [问题起因] 今天通过监控系统,发现公司其中一台服务器的磁盘快满了,随即上去看了下,发现 /var/lib/docker 这个目录特别大。由上述原因,我们都…

【openGauss】一主一备实现主备节点切换实验(switchover、failover)

openGauss在运行过程中,数据库管理员可能需要手工对数据库节点做主备切换。例如发现数据库节点主备failover后需要恢复原有的主备角色,或怀疑硬件故障需要手动进行主备切换。 级联备机不能直接转换为主机,只能先通过switchover或者failover成…

抖音上的影视解说是怎么配音的?

抖音影视解说的配音是从各种渠道配的。其中,最常见的方法是使用 AI 配音。AI 配音可以通过在线配音平台或语音合成软件实现。这些软件可以生成各种声音,包括电影解说、主播、卡通、游戏等。此外,一些抖音影视解说也使用了真人配音。真人配音通…

代码训练营第49天:leetcode139单词划分|多重背包|背包讲解

leetcode139&#xff1a;单词划分 文章讲解&#xff1a;leetcode139 多重背包&#xff1a;文章讲解 背包讲解&#xff1a;文章讲解 1&#xff0c;leetcode139 单词划分 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set…

Redis 主从

目录 ​编辑一、构建主从架构 1、集群结构 2、准备实例和配置 &#xff08;1&#xff09;创建目录 &#xff08;2&#xff09;修改原始配置 &#xff08;3&#xff09;拷贝配置文件到每个实例目录 &#xff08;4&#xff09;修改每个实例的端口&#xff0c;工作目录 &a…

SpringBoot-集成Minio

官方文档&#xff1a;Kubernetes 的 MinIO 对象存储 — MinIO Object Storage for Kubernetes 一、简介 Minio 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频…

Spring Boot和XXL-Job:高效定时任务管理

Spring Boot和XXL-Job&#xff1a;高效定时任务管理 前言第一&#xff1a;XXL-Job简介什么是XXL-job对比别的任务调度 第二&#xff1a; springboot整合XXL-job配置XXL-Job Admin拉取XXL-Job代码修改拉取的配置 配置执行器自己的项目如何整合maven依赖properties文件配置执行器…

工厂干洗店洗鞋店系统,校园洗护小程序来了

洗鞋店小程序&#xff0c;干洗店软件&#xff0c;洗护行业小程序,上门取衣小程序,预约干洗小程序,校园干洗店小程序,工厂干洗店小程序,干洗店小程序开发&#xff0c;成品软件开发 洗衣工厂软件、功能强大&#xff01; 包含以下主要功能&#xff1a; * 用户选择洗护用品&#x…

Azure - 机器学习:创建机器学习所需资源,配置工作区

目录 一、Azure机器学习工作区与计算实例简要介绍工作区计算实例 二、创建工作区1. 登录到 Azure 机器学习工作室2. 选择“创建工作区”3. 提供以下信息来配置新工作区&#xff1a;4. 选择“创建”以创建工作区 三、创建计算实例四、工作室实战4.1 工作室快速导览4.2 从示例笔记…

CV算法工程师的LLM日志(1)微调技术——即插即用的neft-Tune【原理代码】

CV算法的LLM领域日志 目前维护的CV方向开源项目暂时暂停&#xff0c;原因是现在在做LLM方向的研发工作&#xff0c;所以需要时间消化前沿技术和总结经验&#xff0c;最近看到了一个非常简单的LLM训练Trick 分享一下&#xff0c;后续会逐渐把自己使用的一些LLM范式技术原理和代…

部分背包问题细节(贪心)

有一种情况是&#xff0c;背包可以把金币全部拿走&#xff1a; 如果num小于0则返回值

重症医学科常用评估量表汇总,建议收藏!

根据重症医学科医生的量表使用情况&#xff0c;笔者整理了10个重症医学科常用量表&#xff0c;可在线评测直接出结果&#xff0c;可转发使用&#xff0c;可生成二维码使用&#xff0c;可创建项目进行数据管理&#xff0c;有需要的小伙伴赶紧收藏&#xff01; 简明急性生理功能评…

Rocksdb LSM Tree Compaction策略

RocksDB读写简介 直接画图说明。这张图取自Flink PMC大佬Stefan Richter在Flink Forward 2018演讲的PPT&#xff0c;笔者重画了一下。 RocksDB的写缓存&#xff08;即LSM树的最低一级&#xff09;名为memtable&#xff0c;对应HBase的MemStore&#xff1b;读缓存名为block cac…

基于QT的图书管理系统

获取代码&#xff1a; 知识付费时代&#xff0c;低价有偿获取代码&#xff0c;请理解&#xff01; (1) 下载链接: 后发(2) 添加博主微信获取&#xff08;有偿&#xff09;,备注来源: mryang511688(3) 快速扫码咨询&#xff1a; 项目描述 技术&#xff1a;C、QT等 摘要&#…