ZLMediaKit+wvp-GB28181-pro 安装文档

news2024/11/28 20:38:08

文章目录

    • 前言
    • 1. 安装zlm
      • 1.1 镜像说明
      • 1.2 docker安装
        • 1.2.1 docker安装命令
        • 1.2.2 docker-compose安装
      • 1.3. zlm配置和日志重点说明
    • 2. 安装wvp
      • 2.1 目录结构说明
        • 2.1.1 导入idea
        • 2.1.2 sql文件夹自带初始化库脚本
        • 2.1.3 进入web_src 编译静态资源
        • 2.1.4 修改resources配置
      • 2.2 wvp 启动验证
        • 2.2.1 web页面验证
    • 3. 推流测试
      • 3.1. 推流RTSP 或RTMP
        • 3.1.1 推送失败 method ANNOUNCE failed: 401 Unauthorized 无权限
      • 3.2. wvp管理平台验证
      • 3.3 推送rtp

前言

去年的时候,做摄像头视频接入的草草而过, 文档没有好好记录,今年来填一下自己挖的坑

ZLMediaKit : https://gitee.com/xia-chu/ZLMediaKit.git
wvp-GB28181-pro: https://gitee.com/pan648540858/wvp-GB28181-pro.git

ZLMediaKit 简称zlm ,wvp-GB28181-pro 简称wvp

参考文档: zlm-wiki

1. 安装zlm

可以服务器直接安装,也可以采用docker安装 ,在README 文档中有详细介绍

1.1 镜像说明

docker默认仓库找不到zlmediakit/zlmediakit:master 镜像,只有panjjo/zlmediakit ,可以使用docker search zlmediakit 查询具体镜像
在这里插入图片描述
但是可以通过配置docker 仓库 ,找到zlmediakit/zlmediakit:master ,配置方式:
vim /etc/docker/daemon.json

{
 "log-driver":"json-file",
 "log-opts":{
   "max-size":"200m",
   "max-file":"3"
 },
 "data-root":"/data/docker/dockerData",
 "registry-mirrors": [
 "https://kfwkfulq.mirror.aliyuncs.com",
 "https://2lqq34jg.mirror.aliyuncs.com",
 "https://pee6w651.mirror.aliyuncs.com",
 "https://registry.docker-cn.com",
 "http://hub-mirror.c.163.com"
 ],
 "dns": ["8.8.8.8","8.8.4.4"]
}

1.2 docker安装

1.2.1 docker安装命令

docker run -it -p 6080:80 -p 10443:443 -p 10935:1935 -p 19351:19350 -p 10554:554 -p 10554:554/udp -p 10332:332 -p 10332:332/udp -p 10010:10000 -p 10010:10000/udp  -p 30000-30500:30000-30500/udp -p 30000-30500:30000-30500/tcp  panjjo/zlmediakit

1.2.2 docker-compose安装

因为你可能需要挂载自定义的配置,日志 或者ffmpeg 等等需求, 使用docker-compose安装比较方便

  • volumes挂载自定义的zlmServer ,config 以及ffmpeg
  • ports 自定义端口映射

version: "3"
services:
  zlmservice:
    image: zlmediakit/zlmediakit:master
    container_name: zlm
    privileged: true
    command: /opt/media/bin/MediaServer -c /opt/media/conf/config.ini
    ports:
      - "1935:1935"
      - "8080:80"
      - "554:554/tcp"
      - "554:554/udp"
      - "10000:10000/tcp"
      - "10000:10000/udp"
      - "30000-30500:30000-30500/tcp"
      - "30000-30500:30000-30500/udp"
    volumes:
      - ./zlm/media/bin:/opt/media/bin
      - ./zlm/media/conf:/opt/media/conf
      - ./ffmpeg4.1.0:/home/bin
    environment:
      TZ: "Asia/Shanghai"

1.3. zlm配置和日志重点说明

需要与wvp一致的配置, 其他配置项可以根据需求调整

  • [api] secret
  • [general] mediaServerId
  • [hook] admin_params 记得修改与secret一致
  • 其他on_开头api 与wvp地址端口一致

docker logs -f zlm
在wvp未启动前 ,一直警告hook 服务未找到 ,与wvp建立连接后日志颜色变化显著
在这里插入图片描述

2. 安装wvp

2.1 目录结构说明

2.1.1 导入idea

在这里插入图片描述

2.1.2 sql文件夹自带初始化库脚本

使用navicat 初始化即可
在这里插入图片描述

2.1.3 进入web_src 编译静态资源

ps: 需要安装nodejs
npm run build 构建静态资源
在这里插入图片描述
观察资源文件,是否生成static文件夹

比如master 分支和ide 中resources 资源变化

这里是引用

在这里插入图片描述

在这里插入图片描述

2.1.4 修改resources配置

application.yml 修改 profiles.active 指向application-dev.yml

profiles:
active: dev

配置application-dev.yml , media配置最主要得就是 id,secret 和ip

  • 数据库配置 和redis配置
  • id和secret 必须与zlm配置一致
  • ip zlm 所在服务器ip

2.2 wvp 启动验证

当wvp 启动成功后, 会输出与zlm建立连接的信息如下:
在这里插入图片描述

2.2.1 web页面验证

启动成功后,访问wvp 设置的servlet端口 ,即可看到wvp管理页面, 输入默认用户 admin /admin ,查看节点管理,是否可以看到zlm节点

在这里插入图片描述

在这里插入图片描述

3. 推流测试

ps: 需要安装ffmpeg

3.1. 推流RTSP 或RTMP

rtsp 默认端口为554 , 比如在docker中映射端口为8554 则在推送时需要补端口
rtmp 默认端口1935

  • 推送rtsp
    ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f rtsp -rtsp_transport tcp rtsp://127.0.0.1:8554/stream/test1

  • 推送rtmp
    ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f flv rtmp://127.0.0.1:1935/stream/test2

3.1.1 推送失败 method ANNOUNCE failed: 401 Unauthorized 无权限

该错误可能只是你在使用和验证中某个错误特例, 可以根据客户端日志\ wvp 日志\zlm日志 结合排查即可

客户端提示
在这里插入图片描述

wvp日志提示:
在这里插入图片描述
解决方式:
从all-application.yml 查找配置参数设置, 修改application-dev配置即可

在这里插入图片描述

3.2. wvp管理平台验证

点击推流列表, 即可看到推流信息
在这里插入图片描述
点击播放 即可看到推流视频
在这里插入图片描述

3.3 推送rtp

rtp使用端口10000
ffmpeg -re -stream_loop -1 -i demo.flv -c copy -f rtp_mpegts rtp://127.0.0.1:10000
查看zlm 日志,找到编码号
http://服务器IP:10000/rtp/63F0229A.flv
在这里插入图片描述

使用ffplay 测试播放即可
在这里插入图片描述

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

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

相关文章

javafx实现拖拽复制功能

效果 代码 package cn.juhe.zjsb.test;import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.SnapshotParameters; import javafx.scene.control.Label; import javafx.scene.control.TextField; impor…

java语言agent探针技术使用

打包插件 使用了三款 spring-boot-maven-plugin maven-jar-plugin maven-assembly-plugin(可用或不可用),用于打zip包 web打包插件 spring-boot-maven-plugin maven-assembly-plugin 打包后生成的MANIFEST.MF文件 Manifest-Version:…

【LeetCode】79.单词搜索

题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或…

可可口乐题解

样例输入&#xff1a; cococala样例输出&#xff1a; 1思路分析&#xff1a; 这道题的 n n n是 8 8 8&#xff0c;所以可以无脑 d f s dfs dfs&#xff0c;那就变得非常简单了。 代码 (注释详解) &#xff1a; #include<iostream> using namespace std; char t[10]{…

flask中redirect、url_for、endpoint介绍

flask中redirect、url_for、endpoint介绍 redirect 在 Flask 中&#xff0c;redirect() 是一个非常有用的函数&#xff0c;可以使服务器发送一个HTTP响应&#xff0c;指示客户端&#xff08;通常是浏览器&#xff09;自动导航到新的 URL。基本上&#xff0c;它是用来重定向用…

我国数据出境制度实践进展

随着互联网在全球的普及和数字经济在全球的发展&#xff0c;数据跨境流动已经成为各个国家和地区重点关注的议题。数据的跨境流动同时具备个人权益保护、企业合规经营和各国监管合作与博弈三个维度&#xff0c;各国和地区近年来对个人信息的跨境流动高度重视&#xff0c;相继出…

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(3)-再识Fiddler让你感性认识一下

1.简介 上一篇通过宏哥的介绍想必各位小伙伴或者童鞋们对Fiddler已经有了一个理性地认识&#xff0c;今天宏哥在从Fiddler的外貌介绍和分享一下&#xff0c;让小伙伴们或者童鞋们再对Fiddler有一个感性的认识&#xff0c;今天主要是对Fiddler的界面进行一个详细的介绍。 2.Fi…

饮用水、地下水除砷的方法——砷吸附树脂

砷&#xff08;As&#xff09;为非人体必需元素&#xff0c;既不溶解于水又不溶解于酸&#xff0c;在自然界有三价无机态 As(III)、五价无机态 As(V)以及有机砷MMA(甲基胂酸)、DMA(二甲基胂酸)、TMA(三甲基胂酸)等。 砷在水体中主要以三价和五价的无机酸形式存在&#xff0c;三…

Vue 渲染流程详解

在 Vue 里渲染一块内容&#xff0c;会有以下步骤及流程&#xff1a; 第一步&#xff0c;解析语法&#xff0c;生成AST 第二步&#xff0c;根据AST结果&#xff0c;完成data数据初始化 第三步&#xff0c;根据AST结果和DATA数据绑定情况&#xff0c;生成虚拟DOM 第四步&…

Citespace、vosviewer:揭秘最火热的学术文献绘图神器!

目录 专题一 文献计量学方法与应用简介 专题二 主题确定、检索与数据采集 专题三 VOSviewer可视化绘图精讲 专题四 Citespace可视化绘图精讲 专题五 R语言文献计量学绘图分析 专题六 论文写作 专题七 论文投稿 文献计量学是指用数学和统计学的方法&#xff0c;定量地分析…

【C++从0到王者】第十二站:vector基本使用

文章目录 一、vector基本介绍二、vector的基本使用三、vector\<char> 和string的区别四、vector接口介绍1.vector的模板参数2.构造函数3.迭代器4.size和max_size5.resize和reserve6.operator[]和at7.front和back8.data9.push_back和pop_back10.insert和erase11.assign12.…

C#月数计算器(主要用于社保、医保缴费月数计算)

1、为什么做这个&#xff1f; 工作中&#xff0c;经常需要计算参保人社保、医保缴费月数&#xff0c;之前都是在Excel中写一个DATEDIF公式&#xff0c;修改单元格中的日期&#xff0c;计算间隔的月数&#xff0c;公式如下&#xff1a; DATEDIF(起始日期, 终止日期, 返回类型) …

QT第二讲

思维导图 完善登录框&#xff0c;当登录成功时&#xff0c;关闭登录界面&#xff0c;跳转到新的界面中 loginscuueed.h #ifndef LOGINSUCCEED_H #define LOGINSUCCEED_H#include <QWidget>namespace Ui { class loginSucceed; }class loginSucceed : public QWidget {…

android数据的储存、文件的储存、SharedPreferences储存、SQLite的基本用法

一、文件的储存 1、将数据储存到文件中 Context类中提供了openfileOutput()方法&#xff0c;用来获取一个文件流&#xff0c;这个方法接收两个参数&#xff0c;第一个参数是文件名&#xff0c;在文件创建的时候使用的就是这个名称&#xff0c;注意这里指定的文件名不可以包含…

白话机器学习笔记(一)学习回归

最小二乘法 定义模型 表达式&#xff1a; f θ ( x ) θ 0 θ 1 x f_\theta(x)\theta_0\theta_1x fθ​(x)θ0​θ1​x &#xff08;常用 θ \theta θ表示未知数、 f θ ( x ) f_\theta(x) fθ​(x)表示含有参数 θ \theta θ并且和变量 x x x相关的函数&#xff09; 目标…

【每日一题】—— D. Prefix Permutation Sums (Codeforces Round 888 (Div. 3))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

三自由度PUMA机器人非线性控制研究(Matlab代码、Simulink仿真实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、Simulink仿真实现 &#x1f4a5;1 概述 针对三自由度PUMA560机器人的控制问题&#xff0c;可以使用三种不同的非线性控制算法&#xff1a;计算扭矩控制、滑模控制和反步…

RL 实践(5)—— 二维滚球环境【REINFORCE Actor-Critic】

本文介绍如何用 REINFORCE 和 Actor-Critic 这两个策略梯度方法解二维滚球问题参考&#xff1a;《动手学强化学习》完整代码下载&#xff1a;6_[Gym Custom] RollingBall (REINFORCE and Actor-Critic) 文章目录 1. 二维滚球环境2. 策略梯度方法2.1 策略学习目标2.2 策略梯度定…

石子合并(区间dp模板)

题目描述&#xff1a; dp分析&#xff1a; 解题代码&#xff1a; #include<iostream> using namespace std;const int N1e36;int f[N][N]; int a[N]; int s[N];int main(){int n;cin>>n;for(int i1;i<n;i){scanf("%d",&s[i]);s[i]s[i-1];//前缀和…

使用fastjson错误

说明&#xff1a;使用fastjson时&#xff0c;对象解析不成功&#xff0c;一直报错&#xff0c;但是json格式没有错&#xff1b; 错误信息&#xff1a;Method threw ‘com.alibaba.fastjson.JSONException’ exception. json数据是正确的 分析&#xff1a;注意看&#xff0c;fa…