添加文档
@@ -159,10 +159,10 @@ public interface CommonGBChannelMapper {
|
||||
"UPDATE wvp_device_channel SET gb_status = #{status} WHERE id = #{item.gbId}" +
|
||||
"</foreach> " +
|
||||
"</script>")
|
||||
int updateStatusForListById(List<CommonGBChannel> commonGBChannels, @Param("status") String status);
|
||||
int updateStatusForListById(@Param("commonGBChannels") List<CommonGBChannel> commonGBChannels, @Param("status") String status);
|
||||
|
||||
@SelectProvider(type = ChannelProvider.class, method = "queryInListByStatus")
|
||||
List<CommonGBChannel> queryInListByStatus(List<CommonGBChannel> commonGBChannelList, @Param("status") String status);
|
||||
List<CommonGBChannel> queryInListByStatus(@Param("commonGBChannelList") List<CommonGBChannel> commonGBChannelList, @Param("status") String status);
|
||||
|
||||
|
||||
@Insert(" <script>" +
|
||||
|
||||
@@ -2,7 +2,14 @@ export const redirects = JSON.parse("{}")
|
||||
|
||||
export const routes = Object.fromEntries([
|
||||
["/get-started.html", { loader: () => import(/* webpackChunkName: "get-started.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/get-started.html.js"), meta: {"title":"Get Started"} }],
|
||||
["/doc/kslj.html", { loader: () => import(/* webpackChunkName: "doc_kslj.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/kslj.html.js"), meta: {"title":"1"} }],
|
||||
["/", { loader: () => import(/* webpackChunkName: "index.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/index.html.js"), meta: {"title":"首页"} }],
|
||||
["/doc/device.html", { loader: () => import(/* webpackChunkName: "doc_device.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/device.html.js"), meta: {"title":"接入设备"} }],
|
||||
["/doc/donate.html", { loader: () => import(/* webpackChunkName: "doc_donate.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/donate.html.js"), meta: {"title":"捐赠支持"} }],
|
||||
["/doc/faq.html", { loader: () => import(/* webpackChunkName: "doc_faq.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/faq.html.js"), meta: {"title":""} }],
|
||||
["/doc/gxrz.html", { loader: () => import(/* webpackChunkName: "doc_gxrz.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/gxrz.html.js"), meta: {"title":"更新日志"} }],
|
||||
["/doc/", { loader: () => import(/* webpackChunkName: "doc_index.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/index.html.js"), meta: {"title":"介绍"} }],
|
||||
["/doc/kslj.html", { loader: () => import(/* webpackChunkName: "doc_kslj.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/kslj.html.js"), meta: {"title":"快速开始"} }],
|
||||
["/doc/spjc.html", { loader: () => import(/* webpackChunkName: "doc_spjc.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/spjc.html.js"), meta: {"title":""} }],
|
||||
["/404.html", { loader: () => import(/* webpackChunkName: "404.html" */"C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/404.html.js"), meta: {"title":""} }],
|
||||
]);
|
||||
|
||||
@@ -22,13 +29,3 @@ if (import.meta.hot) {
|
||||
__VUE_HMR_RUNTIME__.updateRedirects(redirects)
|
||||
})
|
||||
}
|
||||
ts(redirects)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ routes, redirects }) => {
|
||||
__VUE_HMR_RUNTIME__.updateRoutes(routes)
|
||||
__VUE_HMR_RUNTIME__.updateRedirects(redirects)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -42,6 +42,99 @@ export const SEARCH_INDEX = [
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "接入设备",
|
||||
"headers": [
|
||||
{
|
||||
"level": 2,
|
||||
"title": "1.国标28181设备接入",
|
||||
"slug": "_1-国标28181设备接入",
|
||||
"link": "#_1-国标28181设备接入",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "大华摄像头配置信息",
|
||||
"slug": "大华摄像头配置信息",
|
||||
"link": "#大华摄像头配置信息",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "大华NVR配置信息",
|
||||
"slug": "大华nvr配置信息",
|
||||
"link": "#大华nvr配置信息",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "宇视科技配置信息",
|
||||
"slug": "宇视科技配置信息",
|
||||
"link": "#宇视科技配置信息",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "水星摄像头配置信息",
|
||||
"slug": "水星摄像头配置信息",
|
||||
"link": "#水星摄像头配置信息",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "海康摄像头配置信息",
|
||||
"slug": "海康摄像头配置信息",
|
||||
"link": "#海康摄像头配置信息",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "直播推流设备",
|
||||
"slug": "直播推流设备",
|
||||
"link": "#直播推流设备",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "接入非国标IPC设备或者其他流地址形式的设备",
|
||||
"slug": "接入非国标ipc设备或者其他流地址形式的设备",
|
||||
"link": "#接入非国标ipc设备或者其他流地址形式的设备",
|
||||
"children": []
|
||||
}
|
||||
],
|
||||
"path": "/doc/device.html",
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "捐赠支持",
|
||||
"headers": [],
|
||||
"path": "/doc/donate.html",
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "",
|
||||
"headers": [],
|
||||
"path": "/doc/faq.html",
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "更新日志",
|
||||
"headers": [
|
||||
{
|
||||
"level": 2,
|
||||
"title": "v1.0.0",
|
||||
"slug": "v1-0-0",
|
||||
"link": "#v1-0-0",
|
||||
"children": []
|
||||
}
|
||||
],
|
||||
"path": "/doc/gxrz.html",
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "介绍",
|
||||
"headers": [],
|
||||
@@ -50,12 +143,62 @@ export const SEARCH_INDEX = [
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "1",
|
||||
"headers": [],
|
||||
"title": "快速开始",
|
||||
"headers": [
|
||||
{
|
||||
"level": 2,
|
||||
"title": "1.准备工作",
|
||||
"slug": "_1-准备工作",
|
||||
"link": "#_1-准备工作",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "2.运行ZLMediaKit",
|
||||
"slug": "_2-运行zlmediakit",
|
||||
"link": "#_2-运行zlmediakit",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "3.修改配置文件",
|
||||
"slug": "_3-修改配置文件",
|
||||
"link": "#_3-修改配置文件",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "4.运行后端系统",
|
||||
"slug": "_4-运行后端系统",
|
||||
"link": "#_4-运行后端系统",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "5.运行前端系统",
|
||||
"slug": "_5-运行前端系统",
|
||||
"link": "#_5-运行前端系统",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
"title": "6.遇到问题",
|
||||
"slug": "_6-遇到问题",
|
||||
"link": "#_6-遇到问题",
|
||||
"children": []
|
||||
}
|
||||
],
|
||||
"path": "/doc/kslj.html",
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "",
|
||||
"headers": [],
|
||||
"path": "/doc/spjc.html",
|
||||
"pathLocale": "/",
|
||||
"extraFields": []
|
||||
},
|
||||
{
|
||||
"title": "",
|
||||
"headers": [],
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export const themeData = JSON.parse("{\"logo\":\"https://vuejs.press/images/hero.png\",\"navbar\":[\"/\",{\"text\":\"文档\",\"link\":\"/doc/index\"}],\"sidebar\":[{\"text\":\"文档\",\"children\":[{\"text\":\"介绍\",\"link\":\"/doc/index\"},{\"text\":\"快速开始\",\"link\":\"/doc/kslj\"}]}],\"locales\":{\"/\":{\"selectLanguageName\":\"English\"}},\"colorMode\":\"auto\",\"colorModeSwitch\":true,\"repo\":null,\"selectLanguageText\":\"Languages\",\"selectLanguageAriaLabel\":\"Select language\",\"sidebarDepth\":2,\"editLink\":true,\"editLinkText\":\"Edit this page\",\"lastUpdated\":true,\"contributors\":true,\"contributorsText\":\"Contributors\",\"notFound\":[\"There's nothing here.\",\"How did we get here?\",\"That's a Four-Oh-Four.\",\"Looks like we've got some broken links.\"],\"backToHome\":\"Take me home\",\"openInNewWindow\":\"open in new window\",\"toggleColorMode\":\"toggle color mode\",\"toggleSidebar\":\"toggle sidebar\"}")
|
||||
export const themeData = JSON.parse("{\"logo\":\"/images/logo/logo.png\",\"navbar\":[\"/\",{\"text\":\"文档\",\"link\":\"/doc/index\"}],\"sidebar\":[{\"text\":\"文档\",\"children\":[{\"text\":\"介绍\",\"link\":\"/doc/index\"},{\"text\":\"快速开始\",\"link\":\"/doc/kslj\"},{\"text\":\"视频教程\",\"link\":\"/doc/spjc\"},{\"text\":\"更新日志\",\"link\":\"/doc/gxrz\"}]},{\"text\":\"功能和使用\",\"children\":[{\"text\":\"接入设备\",\"link\":\"/doc/device\"}]},{\"text\":\"其他\",\"children\":[{\"text\":\"常见问题\",\"link\":\"/doc/faq\"},{\"text\":\"捐赠支持\",\"link\":\"/doc/donate\"}]}],\"locales\":{\"/\":{\"selectLanguageName\":\"English\"}},\"colorMode\":\"auto\",\"colorModeSwitch\":true,\"repo\":null,\"selectLanguageText\":\"Languages\",\"selectLanguageAriaLabel\":\"Select language\",\"sidebarDepth\":2,\"editLink\":true,\"editLinkText\":\"Edit this page\",\"lastUpdated\":true,\"contributors\":true,\"contributorsText\":\"Contributors\",\"notFound\":[\"There's nothing here.\",\"How did we get here?\",\"That's a Four-Oh-Four.\",\"Looks like we've got some broken links.\"],\"backToHome\":\"Take me home\",\"openInNewWindow\":\"open in new window\",\"toggleColorMode\":\"toggle color mode\",\"toggleSidebar\":\"toggle sidebar\"}")
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
|
||||
16
vuepress/docs/.vuepress/.temp/pages/doc/device.html.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/device.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/device.html\",\"title\":\"接入设备\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/device.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
if (__VUE_HMR_RUNTIME__.updatePageData) {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ data }) => {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
})
|
||||
}
|
||||
36
vuepress/docs/.vuepress/.temp/pages/doc/device.html.vue
Normal file
@@ -0,0 +1,36 @@
|
||||
<template><div><h1 id="接入设备" tabindex="-1"><a class="header-anchor" href="#接入设备"><span>接入设备</span></a></h1>
|
||||
<h2 id="_1-国标28181设备接入" tabindex="-1"><a class="header-anchor" href="#_1-国标28181设备接入"><span>1.国标28181设备接入</span></a></h2>
|
||||
<p>设备接入主要是需要在设备上配置28181上级也就是ruoyi-wvp的信息,只有信息一致的情况才可以注册成功。设备注册成功后打开国标管理->国标设备,可以看到新增加的设备;设备使用,
|
||||
主要有以下字段需要配置:</p>
|
||||
<ol>
|
||||
<li>sip->port:28181服务监听的端口</li>
|
||||
<li>sip->domain:domain宜采用ID统一编码的前十位编码。</li>
|
||||
<li>sip->id:28181服务ID</li>
|
||||
<li>sip->password:28181服务密码</li>
|
||||
<li>配置信息在如下位置
|
||||
<img src="/images/device/1.png" alt="VuePress Logo"></li>
|
||||
</ol>
|
||||
<h2 id="大华摄像头配置信息" tabindex="-1"><a class="header-anchor" href="#大华摄像头配置信息"><span>大华摄像头配置信息</span></a></h2>
|
||||
<p><img src="/images/device/2.png" alt="VuePress Logo"></p>
|
||||
<h2 id="大华nvr配置信息" tabindex="-1"><a class="header-anchor" href="#大华nvr配置信息"><span>大华NVR配置信息</span></a></h2>
|
||||
<p><img src="/images/device/3.png" alt="VuePress Logo"></p>
|
||||
<h2 id="宇视科技配置信息" tabindex="-1"><a class="header-anchor" href="#宇视科技配置信息"><span>宇视科技配置信息</span></a></h2>
|
||||
<p><img src="/images/device/4.png" alt="VuePress Logo"></p>
|
||||
<h2 id="水星摄像头配置信息" tabindex="-1"><a class="header-anchor" href="#水星摄像头配置信息"><span>水星摄像头配置信息</span></a></h2>
|
||||
<p><img src="/images/device/5.png" alt="VuePress Logo"></p>
|
||||
<h2 id="海康摄像头配置信息" tabindex="-1"><a class="header-anchor" href="#海康摄像头配置信息"><span>海康摄像头配置信息</span></a></h2>
|
||||
<p><img src="/images/device/6.png" alt="VuePress Logo"></p>
|
||||
<h2 id="直播推流设备" tabindex="-1"><a class="header-anchor" href="#直播推流设备"><span>直播推流设备</span></a></h2>
|
||||
<p>这里以obs推流为例,很多无人机也是一样的,设置下推流地址就可以接入了</p>
|
||||
<ol>
|
||||
<li>从ruoyi-wvp获取推流地址, 选择节点管理菜单,查看要推流的节点;
|
||||
<img src="/images/device/7.png" alt="VuePress Logo"></li>
|
||||
<li>拼接推流地址 得到的rtsp地址就是: rtsp://{流IP}:{RTSP PORT}/{app}/{stream} 得到的rtmp地址就是: rtsp://{流IP}:{RTMP PORT}/{app}/{stream} 其中流IP是设备可以连接到zlm的IP,端口是对应协议的端口号, app和stream自己定义就可以.</li>
|
||||
<li>增加推流鉴权信息 wvp默认开启推流鉴权,拼接好的地址是不能直接推送的,会被返回鉴权失败,参考推流规则</li>
|
||||
<li>推流成功后可以再推流列表中看到推流设备,可以播放 此方式只支持设备实时流的播放,无其他功能, 推流信息在推流结束后会自动移除,在列表里就看不到了,如果需要推流信息需要为设备配置国标编号,这样才可以作为wvp的一个永久通道存在.</li>
|
||||
</ol>
|
||||
<h2 id="接入非国标ipc设备或者其他流地址形式的设备" tabindex="-1"><a class="header-anchor" href="#接入非国标ipc设备或者其他流地址形式的设备"><span>接入非国标IPC设备或者其他流地址形式的设备</span></a></h2>
|
||||
<p>这类设备的接入主要通过拉流代理的方式接入,原理就是zlm主动像播放器一样拉取这个流缓存在自己服务器供其他人播放.可以解决源设备并发访问能力差的问题. 在拉流代理/添加代理后可以直接播放, 拉流代理也是同样只支持播放当前配置的流.</p>
|
||||
</div></template>
|
||||
|
||||
|
||||
16
vuepress/docs/.vuepress/.temp/pages/doc/donate.html.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/donate.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/donate.html\",\"title\":\"捐赠支持\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/donate.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
if (__VUE_HMR_RUNTIME__.updatePageData) {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ data }) => {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
})
|
||||
}
|
||||
5
vuepress/docs/.vuepress/.temp/pages/doc/donate.html.vue
Normal file
@@ -0,0 +1,5 @@
|
||||
<template><div><h1 id="捐赠支持" tabindex="-1"><a class="header-anchor" href="#捐赠支持"><span>捐赠支持</span></a></h1>
|
||||
<p>如果你觉得这个项目帮助到了你,你可以请作者喝杯咖啡表示鼓励 ☕️</p>
|
||||
</div></template>
|
||||
|
||||
|
||||
16
vuepress/docs/.vuepress/.temp/pages/doc/faq.html.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/faq.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/faq.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/faq.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
if (__VUE_HMR_RUNTIME__.updatePageData) {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ data }) => {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
})
|
||||
}
|
||||
3
vuepress/docs/.vuepress/.temp/pages/doc/faq.html.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template><div></div></template>
|
||||
|
||||
|
||||
16
vuepress/docs/.vuepress/.temp/pages/doc/gxrz.html.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/gxrz.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/gxrz.html\",\"title\":\"更新日志\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/gxrz.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
if (__VUE_HMR_RUNTIME__.updatePageData) {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ data }) => {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
})
|
||||
}
|
||||
8
vuepress/docs/.vuepress/.temp/pages/doc/gxrz.html.vue
Normal file
@@ -0,0 +1,8 @@
|
||||
<template><div><h1 id="更新日志" tabindex="-1"><a class="header-anchor" href="#更新日志"><span>更新日志</span></a></h1>
|
||||
<h2 id="v1-0-0" tabindex="-1"><a class="header-anchor" href="#v1-0-0"><span>v1.0.0</span></a></h2>
|
||||
<ul>
|
||||
<li>1.0.0版本正式发布</li>
|
||||
</ul>
|
||||
</div></template>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/index.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/\",\"title\":\"介绍\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/index.md\"}")
|
||||
const data = JSON.parse("{\"path\":\"/doc/\",\"title\":\"介绍\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{\"updatedTime\":1744792144000,\"contributors\":[{\"name\":\"fengcheng\",\"username\":\"\",\"email\":\"2929004360@qq.com\",\"commits\":1}],\"changelog\":[{\"hash\":\"523782997b11cd935d2edad45314a3be3c7e47d0\",\"time\":1744792144000,\"email\":\"2929004360@qq.com\",\"author\":\"fengcheng\",\"message\":\"添加文档\"}]},\"filePathRelative\":\"doc/index.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
<li><a href="https://blog.csdn.net/qq_43463507?type=blog" target="_blank" rel="noopener noreferrer">个人CSDN</a></li>
|
||||
<li><a href="https://juejin.cn/user/434635074828914/posts" target="_blank" rel="noopener noreferrer">个人掘金</a></li>
|
||||
</ul>
|
||||
<h1 id="_7-赞助" tabindex="-1"><a class="header-anchor" href="#_7-赞助"><span>7.赞助</span></a></h1>
|
||||
</div></template>
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/kslj.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/kslj.html\",\"title\":\"1\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/kslj.md\"}")
|
||||
const data = JSON.parse("{\"path\":\"/doc/kslj.html\",\"title\":\"快速开始\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{\"updatedTime\":1744792144000,\"contributors\":[{\"name\":\"fengcheng\",\"username\":\"\",\"email\":\"2929004360@qq.com\",\"commits\":1}],\"changelog\":[{\"hash\":\"523782997b11cd935d2edad45314a3be3c7e47d0\",\"time\":1744792144000,\"email\":\"2929004360@qq.com\",\"author\":\"fengcheng\",\"message\":\"添加文档\"}]},\"filePathRelative\":\"doc/kslj.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
|
||||
@@ -1,4 +1,89 @@
|
||||
<template><div><h1 id="_1" tabindex="-1"><a class="header-anchor" href="#_1"><span>1</span></a></h1>
|
||||
<template><div><h1 id="快速开始" tabindex="-1"><a class="header-anchor" href="#快速开始"><span>快速开始</span></a></h1>
|
||||
<h2 id="_1-准备工作" tabindex="-1"><a class="header-anchor" href="#_1-准备工作"><span>1.准备工作</span></a></h2>
|
||||
<ul>
|
||||
<li>JDK >= 1.8</li>
|
||||
<li>MySQL >= 5.7</li>
|
||||
<li>Maven >= 3.0</li>
|
||||
<li>Redis >= 3.0</li>
|
||||
<li>ZLMediaKit 建议使用稳定版本</li>
|
||||
</ul>
|
||||
<h2 id="_2-运行zlmediakit" tabindex="-1"><a class="header-anchor" href="#_2-运行zlmediakit"><span>2.运行ZLMediaKit</span></a></h2>
|
||||
<ul>
|
||||
<li>参考<a href="https://docs.zlmediakit.com/zh/" target="_blank" rel="noopener noreferrer">ZLMediaKit</a></li>
|
||||
</ul>
|
||||
<h2 id="_3-修改配置文件" tabindex="-1"><a class="header-anchor" href="#_3-修改配置文件"><span>3.修改配置文件</span></a></h2>
|
||||
<ul>
|
||||
<li>修改application-druid.yml</li>
|
||||
</ul>
|
||||
<div class="language-yaml" data-highlighter="prismjs" data-ext="yml"><pre v-pre><code><span class="line"><span class="token key atrule">spring</span><span class="token punctuation">:</span></span>
|
||||
<span class="line"> <span class="token key atrule">datasource</span><span class="token punctuation">:</span></span>
|
||||
<span class="line"> <span class="token key atrule">type</span><span class="token punctuation">:</span> com.alibaba.druid.pool.DruidDataSource</span>
|
||||
<span class="line"> <span class="token key atrule">driverClassName</span><span class="token punctuation">:</span> com.mysql.cj.jdbc.Driver</span>
|
||||
<span class="line"> <span class="token key atrule">druid</span><span class="token punctuation">:</span></span>
|
||||
<span class="line"> <span class="token comment"># 主库数据源</span></span>
|
||||
<span class="line"> <span class="token key atrule">master</span><span class="token punctuation">:</span></span>
|
||||
<span class="line"> <span class="token key atrule">url</span><span class="token punctuation">:</span> jdbc<span class="token punctuation">:</span>mysql<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>3306/ry<span class="token punctuation">-</span>wvp<span class="token punctuation">?</span>useUnicode=true<span class="token important">&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true</span></span>
|
||||
<span class="line"> <span class="token key atrule">username</span><span class="token punctuation">:</span> root</span>
|
||||
<span class="line"> <span class="token key atrule">password</span><span class="token punctuation">:</span> 自己密码</span>
|
||||
<span class="line"></span></code></pre>
|
||||
</div><ul>
|
||||
<li>修改application.yml</li>
|
||||
</ul>
|
||||
<div class="language-yaml" data-highlighter="prismjs" data-ext="yml"><pre v-pre><code><span class="line"><span class="token comment">##zlm 默认服务器配置</span></span>
|
||||
<span class="line"><span class="token key atrule">media</span><span class="token punctuation">:</span></span>
|
||||
<span class="line"> <span class="token key atrule">id</span><span class="token punctuation">:</span> zlmediakit<span class="token punctuation">-</span>local</span>
|
||||
<span class="line"> <span class="token comment"># [必须修改] zlm服务器的内网IP</span></span>
|
||||
<span class="line"> <span class="token key atrule">ip</span><span class="token punctuation">:</span> 127.0.0.1</span>
|
||||
<span class="line"> <span class="token comment"># [必须修改] zlm服务器的http.port</span></span>
|
||||
<span class="line"> <span class="token key atrule">http-port</span><span class="token punctuation">:</span> <span class="token number">8092</span></span>
|
||||
<span class="line"> <span class="token comment"># [必选选] zlm服务器的hook.admin_params=secret</span></span>
|
||||
<span class="line"> <span class="token key atrule">secret</span><span class="token punctuation">:</span> TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj</span>
|
||||
<span class="line"> <span class="token comment"># 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试</span></span>
|
||||
<span class="line"> <span class="token key atrule">rtp</span><span class="token punctuation">:</span></span>
|
||||
<span class="line"> <span class="token comment"># [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输</span></span>
|
||||
<span class="line"> <span class="token key atrule">enable</span><span class="token punctuation">:</span> <span class="token boolean important">true</span></span>
|
||||
<span class="line"> <span class="token comment"># [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功</span></span>
|
||||
<span class="line"> <span class="token key atrule">port-range</span><span class="token punctuation">:</span> <span class="token number">40000</span><span class="token punctuation">,</span><span class="token number">40300</span> <span class="token comment"># 端口范围</span></span>
|
||||
<span class="line"> <span class="token comment"># [可选] 国标级联在此范围内选择端口发送媒体流,</span></span>
|
||||
<span class="line"> <span class="token key atrule">send-port-range</span><span class="token punctuation">:</span> <span class="token number">40000</span><span class="token punctuation">,</span><span class="token number">40300</span> <span class="token comment"># 端口范围</span></span>
|
||||
<span class="line"></span></code></pre>
|
||||
</div><h2 id="_4-运行后端系统" tabindex="-1"><a class="header-anchor" href="#_4-运行后端系统"><span>4.运行后端系统</span></a></h2>
|
||||
<ul>
|
||||
<li>前往Gitee下载页面<a href="https://doc.ruoyi.vip/" target="_blank" rel="noopener noreferrer">ruoyi-vue</a>下载解压到工作目录</li>
|
||||
<li>导入到IDEA中,菜单 File -> Open,选择下载的文件解压后的文件夹</li>
|
||||
<li>创建数据库ry-wvp并导入数据脚本ry-wvp.sql</li>
|
||||
<li>运行<code v-pre>RuoYiApplication.java</code>,启动项目</li>
|
||||
<li>项目运行访问地址:http://localhost:8080</li>
|
||||
</ul>
|
||||
<div class="language-java" data-highlighter="prismjs" data-ext="java"><pre v-pre><code><span class="line"><span class="token punctuation">(</span>♥◠‿◠<span class="token punctuation">)</span>ノ゙ 若依启动成功 ლ<span class="token punctuation">(</span>´ڡ`ლ<span class="token punctuation">)</span>゙ </span>
|
||||
<span class="line"> <span class="token punctuation">.</span>-<span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token punctuation">.</span> ____ __ </span>
|
||||
<span class="line"> <span class="token operator">|</span> _ _ \ \ \ <span class="token operator">/</span> <span class="token operator">/</span> </span>
|
||||
<span class="line"> <span class="token operator">|</span> <span class="token punctuation">(</span> ' <span class="token punctuation">)</span> <span class="token operator">|</span> \ _<span class="token punctuation">.</span> <span class="token operator">/</span> ' </span>
|
||||
<span class="line"> <span class="token operator">|</span><span class="token punctuation">(</span>_ o _<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token function">_</span><span class="token punctuation">(</span> <span class="token punctuation">)</span>_ <span class="token punctuation">.</span>' </span>
|
||||
<span class="line"> <span class="token operator">|</span> <span class="token punctuation">(</span>_<span class="token punctuation">,</span>_<span class="token punctuation">)</span><span class="token punctuation">.</span>' __ <span class="token function">___</span><span class="token punctuation">(</span>_ o _<span class="token punctuation">)</span>' </span>
|
||||
<span class="line"> <span class="token operator">|</span> <span class="token operator">|</span>\ \ <span class="token operator">|</span> <span class="token operator">||</span> <span class="token operator">|</span><span class="token punctuation">(</span>_<span class="token punctuation">,</span>_<span class="token punctuation">)</span>' </span>
|
||||
<span class="line"> <span class="token operator">|</span> <span class="token operator">|</span> \ `' <span class="token operator">/</span><span class="token operator">|</span> `<span class="token operator">-</span>' <span class="token operator">/</span> </span>
|
||||
<span class="line"> <span class="token operator">|</span> <span class="token operator">|</span> \ <span class="token operator">/</span> \ <span class="token operator">/</span> </span>
|
||||
<span class="line"> '<span class="token char">'-'</span> `<span class="token char">'-'</span> `<span class="token operator">-</span><span class="token punctuation">.</span><span class="token punctuation">.</span>-' </span>
|
||||
<span class="line"></span></code></pre>
|
||||
</div><h2 id="_5-运行前端系统" tabindex="-1"><a class="header-anchor" href="#_5-运行前端系统"><span>5.运行前端系统</span></a></h2>
|
||||
<div class="language-javascript" data-highlighter="prismjs" data-ext="js"><pre v-pre><code><span class="line"># 进入项目目录</span>
|
||||
<span class="line">cd ruoyi<span class="token operator">-</span>ui<span class="token operator">-</span>vue3</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"># 安装依赖</span>
|
||||
<span class="line">npm i <span class="token operator">--</span>registry<span class="token operator">=</span>https<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>registry<span class="token punctuation">.</span>npmmirror<span class="token punctuation">.</span>com</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"># 启动服务</span>
|
||||
<span class="line">npm run dev</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"># 构建测试环境 npm run build<span class="token operator">:</span>stage</span>
|
||||
<span class="line"># 构建生产环境 npm run build<span class="token operator">:</span>prod</span>
|
||||
<span class="line"># 前端访问地址 http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>localhost<span class="token operator">:</span><span class="token number">80</span></span>
|
||||
<span class="line"></span></code></pre>
|
||||
</div><h2 id="_6-遇到问题" tabindex="-1"><a class="header-anchor" href="#_6-遇到问题"><span>6.遇到问题</span></a></h2>
|
||||
<ul>
|
||||
<li>加微信:<code v-pre>zlmkit</code>,备注:<code v-pre>ruoyi-wvp</code></li>
|
||||
</ul>
|
||||
</div></template>
|
||||
|
||||
|
||||
|
||||
16
vuepress/docs/.vuepress/.temp/pages/doc/spjc.html.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/spjc.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/spjc.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/spjc.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
if (__VUE_HMR_RUNTIME__.updatePageData) {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ data }) => {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
})
|
||||
}
|
||||
3
vuepress/docs/.vuepress/.temp/pages/doc/spjc.html.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template><div></div></template>
|
||||
|
||||
|
||||
16
vuepress/docs/.vuepress/.temp/pages/doc/use.html.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/doc/use.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/doc/use.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"doc/use.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
import.meta.webpackHot.accept()
|
||||
if (__VUE_HMR_RUNTIME__.updatePageData) {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.hot) {
|
||||
import.meta.hot.accept(({ data }) => {
|
||||
__VUE_HMR_RUNTIME__.updatePageData(data)
|
||||
})
|
||||
}
|
||||
3
vuepress/docs/.vuepress/.temp/pages/doc/use.html.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template><div></div></template>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/get-started.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/get-started.html\",\"title\":\"Get Started\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{},\"filePathRelative\":\"get-started.md\"}")
|
||||
const data = JSON.parse("{\"path\":\"/get-started.html\",\"title\":\"Get Started\",\"lang\":\"en-US\",\"frontmatter\":{},\"git\":{\"updatedTime\":1744792144000,\"contributors\":[{\"name\":\"fengcheng\",\"username\":\"\",\"email\":\"2929004360@qq.com\",\"commits\":1}],\"changelog\":[{\"hash\":\"523782997b11cd935d2edad45314a3be3c7e47d0\",\"time\":1744792144000,\"email\":\"2929004360@qq.com\",\"author\":\"fengcheng\",\"message\":\"添加文档\"}]},\"filePathRelative\":\"get-started.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import comp from "C:/Users/17988/Desktop/ruoyi/RuoYi-Wvp/vuepress/docs/.vuepress/.temp/pages/index.html.vue"
|
||||
const data = JSON.parse("{\"path\":\"/\",\"title\":\"首页\",\"lang\":\"en-US\",\"frontmatter\":{\"home\":true,\"title\":\"首页\",\"heroImage\":\"https://vuejs.press/images/hero.png\",\"actions\":[{\"text\":\"快速开始\",\"link\":\"/doc/kslj.md\",\"type\":\"primary\"}],\"features\":[{\"title\":\"各类协议支持\",\"details\":\"支持国标SIP(2016,2022),支持ONVIF协议,支持ZLM,SRS(计划),后续支持RTMP+ISUP(计划)\"},{\"title\":\"基础功能完善\",\"details\":\"视频数据传输标准化,增强的安全性,灵活的设备接入,实时监控和回放,标准化接口\"},{\"title\":\"多平台支持\",\"details\":\"您可以用平台作为您的业务基础框架,您也可以用此平台作为监控平台多选择多支持。\"},{\"title\":\"新技术新组件\",\"details\":\"才用后端springboot+element plus+前端vue3,从零搭建视频平台,上手容易并且提升快,多模块架构,充分考虑开发者\"},{\"title\":\"新平台新UI设计\",\"details\":\"稳定高并发,秉承包容、多元、进化、连接的价值观,动态布局,具有完善目录结构和代码规范配置,拥有良好开发体验和设计感\"},{\"title\":\"特性\",\"details\":\"实现标准的28181信令,兼容常见的品牌设备,比如海康、大华、宇视、水星等品牌的IPC、NVR以及平台。\"}],\"footer\":\"基于ruoyi-wvp的流媒体平台,开箱即用。 完全开源,且使用MIT许可协议。可以在保留版权信息的基础上商用。\"},\"git\":{},\"filePathRelative\":\"README.md\"}")
|
||||
const data = JSON.parse("{\"path\":\"/\",\"title\":\"首页\",\"lang\":\"en-US\",\"frontmatter\":{\"home\":true,\"title\":\"首页\",\"heroImage\":\"/images/logo/logo.png\",\"actions\":[{\"text\":\"快速开始\",\"link\":\"/doc/kslj.md\",\"type\":\"primary\"}],\"features\":[{\"title\":\"各类协议支持\",\"details\":\"支持国标SIP(2016,2022),支持ONVIF协议,支持ZLM,SRS(计划),后续支持RTMP+ISUP(计划)\"},{\"title\":\"基础功能完善\",\"details\":\"视频数据传输标准化,增强的安全性,灵活的设备接入,实时监控和回放,标准化接口\"},{\"title\":\"多平台支持\",\"details\":\"您可以用平台作为您的业务基础框架,您也可以用此平台作为监控平台多选择多支持。\"},{\"title\":\"新技术新组件\",\"details\":\"才用后端springboot+element plus+前端vue3,从零搭建视频平台,上手容易并且提升快,多模块架构,充分考虑开发者\"},{\"title\":\"新平台新UI设计\",\"details\":\"稳定高并发,秉承包容、多元、进化、连接的价值观,动态布局,具有完善目录结构和代码规范配置,拥有良好开发体验和设计感\"},{\"title\":\"特性\",\"details\":\"实现标准的28181信令,兼容常见的品牌设备,比如海康、大华、宇视、水星等品牌的IPC、NVR以及平台。\"}],\"footer\":\"基于ruoyi-wvp的流媒体平台,开箱即用。 完全开源,且使用MIT许可协议。可以在保留版权信息的基础上商用。\"},\"git\":{\"updatedTime\":1744792144000,\"contributors\":[{\"name\":\"fengcheng\",\"username\":\"\",\"email\":\"2929004360@qq.com\",\"commits\":1}],\"changelog\":[{\"hash\":\"523782997b11cd935d2edad45314a3be3c7e47d0\",\"time\":1744792144000,\"email\":\"2929004360@qq.com\",\"author\":\"fengcheng\",\"message\":\"添加文档\"}]},\"filePathRelative\":\"README.md\"}")
|
||||
export { comp, data }
|
||||
|
||||
if (import.meta.webpackHot) {
|
||||
|
||||
@@ -5,12 +5,20 @@ import {searchPlugin} from '@vuepress/plugin-search'
|
||||
|
||||
export default defineUserConfig({
|
||||
lang: 'en-US',
|
||||
|
||||
port: '12999',
|
||||
plugins: [
|
||||
searchPlugin({
|
||||
locales: {
|
||||
'/': {
|
||||
placeholder: '搜索文档',
|
||||
},
|
||||
}
|
||||
}),
|
||||
],
|
||||
title: 'ruoyi-wvp',
|
||||
description: '为简化对接监控而生',
|
||||
|
||||
theme: defaultTheme({
|
||||
logo: 'https://vuejs.press/images/hero.png',
|
||||
logo: '/images/logo/logo.png',
|
||||
|
||||
navbar: ['/', {
|
||||
text: '文档',
|
||||
@@ -27,21 +35,40 @@ export default defineUserConfig({
|
||||
{
|
||||
text: '快速开始',
|
||||
link: '/doc/kslj'
|
||||
},
|
||||
{
|
||||
text: '视频教程',
|
||||
link: '/doc/spjc'
|
||||
},
|
||||
{
|
||||
text: '更新日志',
|
||||
link: '/doc/gxrz'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '功能和使用',
|
||||
children: [
|
||||
{
|
||||
text: '接入设备',
|
||||
link: '/doc/device'
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '其他',
|
||||
children: [
|
||||
{
|
||||
text: '常见问题',
|
||||
link: '/doc/faq'
|
||||
},
|
||||
{
|
||||
text: '捐赠支持',
|
||||
link: '/doc/donate'
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
}),
|
||||
|
||||
plugins: [
|
||||
searchPlugin({
|
||||
locales: {
|
||||
'/': {
|
||||
placeholder: '搜索文档',
|
||||
},
|
||||
}
|
||||
}),
|
||||
],
|
||||
|
||||
bundler: viteBundler(),
|
||||
})
|
||||
|
||||
BIN
vuepress/docs/.vuepress/public/images/device/1.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
vuepress/docs/.vuepress/public/images/device/2.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
vuepress/docs/.vuepress/public/images/device/3.png
Normal file
|
After Width: | Height: | Size: 212 KiB |
BIN
vuepress/docs/.vuepress/public/images/device/4.png
Normal file
|
After Width: | Height: | Size: 241 KiB |
BIN
vuepress/docs/.vuepress/public/images/device/5.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
vuepress/docs/.vuepress/public/images/device/6.png
Normal file
|
After Width: | Height: | Size: 176 KiB |
BIN
vuepress/docs/.vuepress/public/images/device/7.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
vuepress/docs/.vuepress/public/images/logo/black_on_trans.png
Normal file
|
After Width: | Height: | Size: 411 KiB |
BIN
vuepress/docs/.vuepress/public/images/logo/black_on_white.png
Normal file
|
After Width: | Height: | Size: 294 KiB |
|
After Width: | Height: | Size: 411 KiB |
BIN
vuepress/docs/.vuepress/public/images/logo/gray_on_trans.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
vuepress/docs/.vuepress/public/images/logo/logo.png
Normal file
|
After Width: | Height: | Size: 752 KiB |
BIN
vuepress/docs/.vuepress/public/images/logo/original.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
vuepress/docs/.vuepress/public/images/logo/trans_bg.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
vuepress/docs/.vuepress/public/images/logo/white_on_black.png
Normal file
|
After Width: | Height: | Size: 378 KiB |
BIN
vuepress/docs/.vuepress/public/images/logo/white_on_trans.png
Normal file
|
After Width: | Height: | Size: 256 KiB |
@@ -1,7 +1,7 @@
|
||||
---
|
||||
home: true
|
||||
title: 首页
|
||||
heroImage: https://vuejs.press/images/hero.png
|
||||
heroImage: /images/logo/logo.png
|
||||
actions:
|
||||
- text: 快速开始
|
||||
link: /doc/kslj.md
|
||||
|
||||
30
vuepress/docs/doc/device.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# 接入设备
|
||||
|
||||
## 1.国标28181设备接入
|
||||
设备接入主要是需要在设备上配置28181上级也就是ruoyi-wvp的信息,只有信息一致的情况才可以注册成功。设备注册成功后打开国标管理->国标设备,可以看到新增加的设备;设备使用,
|
||||
主要有以下字段需要配置:
|
||||
1. sip->port:28181服务监听的端口
|
||||
2. sip->domain:domain宜采用ID统一编码的前十位编码。
|
||||
3. sip->id:28181服务ID
|
||||
4. sip->password:28181服务密码
|
||||
5. 配置信息在如下位置
|
||||

|
||||
## 大华摄像头配置信息
|
||||

|
||||
## 大华NVR配置信息
|
||||

|
||||
## 宇视科技配置信息
|
||||

|
||||
## 水星摄像头配置信息
|
||||

|
||||
## 海康摄像头配置信息
|
||||

|
||||
## 直播推流设备
|
||||
这里以obs推流为例,很多无人机也是一样的,设置下推流地址就可以接入了
|
||||
1. 从ruoyi-wvp获取推流地址, 选择节点管理菜单,查看要推流的节点;
|
||||

|
||||
2. 拼接推流地址 得到的rtsp地址就是: rtsp://{流IP}:{RTSP PORT}/{app}/{stream} 得到的rtmp地址就是: rtsp://{流IP}:{RTMP PORT}/{app}/{stream} 其中流IP是设备可以连接到zlm的IP,端口是对应协议的端口号, app和stream自己定义就可以.
|
||||
3. 增加推流鉴权信息 wvp默认开启推流鉴权,拼接好的地址是不能直接推送的,会被返回鉴权失败,参考推流规则
|
||||
4. 推流成功后可以再推流列表中看到推流设备,可以播放 此方式只支持设备实时流的播放,无其他功能, 推流信息在推流结束后会自动移除,在列表里就看不到了,如果需要推流信息需要为设备配置国标编号,这样才可以作为wvp的一个永久通道存在.
|
||||
## 接入非国标IPC设备或者其他流地址形式的设备
|
||||
这类设备的接入主要通过拉流代理的方式接入,原理就是zlm主动像播放器一样拉取这个流缓存在自己服务器供其他人播放.可以解决源设备并发访问能力差的问题. 在拉流代理/添加代理后可以直接播放, 拉流代理也是同样只支持播放当前配置的流.
|
||||
2
vuepress/docs/doc/donate.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# 捐赠支持
|
||||
如果你觉得这个项目帮助到了你,你可以请作者喝杯咖啡表示鼓励 ☕️
|
||||
0
vuepress/docs/doc/faq.md
Normal file
3
vuepress/docs/doc/gxrz.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# 更新日志
|
||||
## v1.0.0
|
||||
- 1.0.0版本正式发布
|
||||
@@ -39,3 +39,5 @@ ruoyi-wvp 是基于ruoyi-vue和wvp框架开发,开箱即用的28181协议视
|
||||
- [个人码云](https://gitee.com/ruoyi_wvp)
|
||||
- [个人CSDN](https://blog.csdn.net/qq_43463507?type=blog)
|
||||
- [个人掘金](https://juejin.cn/user/434635074828914/posts)
|
||||
|
||||
# 7.赞助
|
||||
|
||||
@@ -1 +1,81 @@
|
||||
# 1
|
||||
# 快速开始
|
||||
|
||||
## 1.准备工作
|
||||
- JDK >= 1.8
|
||||
- MySQL >= 5.7
|
||||
- Maven >= 3.0
|
||||
- Redis >= 3.0
|
||||
- ZLMediaKit 建议使用稳定版本
|
||||
|
||||
## 2.运行ZLMediaKit
|
||||
- 参考[ZLMediaKit](https://docs.zlmediakit.com/zh/)
|
||||
|
||||
## 3.修改配置文件
|
||||
- 修改application-druid.yml
|
||||
```yml:no-line-numbers
|
||||
spring:
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://127.0.0.1:3306/ry-wvp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: 自己密码
|
||||
```
|
||||
- 修改application.yml
|
||||
```yml:no-line-numbers
|
||||
##zlm 默认服务器配置
|
||||
media:
|
||||
id: zlmediakit-local
|
||||
# [必须修改] zlm服务器的内网IP
|
||||
ip: 127.0.0.1
|
||||
# [必须修改] zlm服务器的http.port
|
||||
http-port: 8092
|
||||
# [必选选] zlm服务器的hook.admin_params=secret
|
||||
secret: TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj
|
||||
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
||||
rtp:
|
||||
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
||||
enable: true
|
||||
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
|
||||
port-range: 40000,40300 # 端口范围
|
||||
# [可选] 国标级联在此范围内选择端口发送媒体流,
|
||||
send-port-range: 40000,40300 # 端口范围
|
||||
```
|
||||
## 4.运行后端系统
|
||||
- 前往Gitee下载页面[ruoyi-vue](https://doc.ruoyi.vip/)下载解压到工作目录
|
||||
- 导入到IDEA中,菜单 File -> Open,选择下载的文件解压后的文件夹
|
||||
- 创建数据库ry-wvp并导入数据脚本ry-wvp.sql
|
||||
- 运行`RuoYiApplication.java`,启动项目
|
||||
- 项目运行访问地址:http://localhost:8080
|
||||
```java:no-line-numbers
|
||||
(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙
|
||||
.-------. ____ __
|
||||
| _ _ \ \ \ / /
|
||||
| ( ' ) | \ _. / '
|
||||
|(_ o _) / _( )_ .'
|
||||
| (_,_).' __ ___(_ o _)'
|
||||
| |\ \ | || |(_,_)'
|
||||
| | \ `' /| `-' /
|
||||
| | \ / \ /
|
||||
''-' `'-' `-..-'
|
||||
```
|
||||
## 5.运行前端系统
|
||||
```javascript:no-line-numbers
|
||||
# 进入项目目录
|
||||
cd ruoyi-ui-vue3
|
||||
|
||||
# 安装依赖
|
||||
npm i --registry=https://registry.npmmirror.com
|
||||
|
||||
# 启动服务
|
||||
npm run dev
|
||||
|
||||
# 构建测试环境 npm run build:stage
|
||||
# 构建生产环境 npm run build:prod
|
||||
# 前端访问地址 http://localhost:80
|
||||
```
|
||||
## 6.遇到问题
|
||||
- 加微信:`zlmkit`,备注:`ruoyi-wvp`
|
||||
|
||||