Configuración de WVP PRO Combate real

inserte la descripción de la imagen aquí

WEB VIDEO PLATFORM es una plataforma de video en red lista para usar basada en el estándar GB28181- 2016. Es responsable de implementar la parte principal de señalización y administración de dispositivos, admite la penetración de NAT y admite IPC de marcas como Hikvision, Dahua y Uniview. , acceso NVR. Admite la conexión en cascada estándar nacional y admite el reenvío de cámaras/transmisiones en vivo/transmisiones push en vivo sin funciones estándar nacionales a otras plataformas estándar nacionales.

Servicio de transmisión basado en @Xiachu ZLMediaKit https://github.com/ZLMediaKit/ZLMediaKit
player usando @dexter jessibuca https://github.com/langhuihui/jessibuca/tree/v3
Portada basada en @Kyle MediaServerUI https://gitee .com/kkkkk5G/MediaServerUI para su modificación.

Escenario de aplicación

Admite navegador para reproducir video de cámara sin complemento. Admite acceso a equipos estándar nacionales (cámaras, plataformas, NVR, etc.) y admite acceso a equipos estándar no nacionales (onvif, rtsp, rtmp, equipos de transmisión en vivo, etc.), aprovechando al máximo los antiguos. Admite cascada estándar nacional. Cascada multiplataforma. Vista previa de video entre redes. Admite la interconexión de plataformas de gatekeeper entre redes.

documento oficial

La documentación oficial es muy clara. Este artículo también se basa en documentación oficial.

docker (pseudo máquina virtual)

Esta implementación e instalación está lista para configurarse en el contenedor docker. ¿Por qué configurarlo en docker? Aquí principalmente uso docker como máquina virtual. Esta configuración es conveniente para la migración y la implementación. Cuando se ejecuta en Linux, el rendimiento de Docker es mucho mejor que el de las máquinas virtuales.

Si no usa la ventana acoplable, puede omitir esta sección directamente.Mirando hacia atrás, es básicamente una operación ordinaria de ubuntu Linux.

instalación de la ventana acoplable

La instalación de Docker no es el tema central de este artículo. Consulte la documentación oficial de Docker:
https://docs.docker.com/engine/install/

Por ejemplo: me refiero a la instalación de ubuntu:
https://docs.docker.com/engine/install/ubuntu/

crear contenedor

Para el uso básico de la ventana acoplable, puede consultar:
"Notas de uso de la ventana acoplable"
https://blog.csdn.net/lxyoucan/article/details/121572097

espejo de descarga

Aquí elijo el sistema ubuntu, y en teoría las demás distribuciones son iguales.

docker pull ubuntu

Crear un CONTENEDOR

Ejecute el siguiente comando:

docker run --name wvp -it ubuntu bash

De esta forma creamos un contenedor llamado wvp y ejecutamos bash directamente.
Aquí hay algunas operaciones posibles.

Salir y entrar CONTENEDOR

  • Tecla de acceso directo ctrl -p ctrl-qpara salir y dejar que CONTENEDOR se ejecute en segundo plano
  • La salida del comando apagará directamente el CONTENEDOR

进入 CONTENEDOR
docker adjuntar $NOMBRES
docker adjuntar $CONTENEDOR ID

Por ejemplo, debemos ingresar aquí:

docker attach wvp

Se puede consultar la versión del sistema.

cat /etc/*-release

Estoy aquíUbuntu 22.04.2 LTS

Utilidad de configuración sencilla

Crear un contenedor es equivalente a simplemente instalar un sistema. Primero hagamos una configuración simple y una instalación de la utilidad. Esta sección no es obligatoria. Depende de la preferencia personal.

desminimizar

Debido a que el ubuntu en docker es una versión simplificada, es para restaurar el modo normal.
Este paso puede no ser necesario, pero después de este paso, el contenedor estará más cerca de un ubuntu real. La desventaja es que el contenedor será más grande.

Establecer fuente nacional

Hay muchas fuentes nacionales, solo encuentra lo que te gusta.
Para conocer el método de configuración, consulte: https://blog.csdn.net/lxyoucan/article/details/121691910

Instalar software común

El siguiente software es el software necesario para mi uso de Linux, solo como referencia.

apt-get update
# 安装文本编辑器
apt install vim
# 安装zsh ,本人比较喜爱zsh替换bash
apt install zsh
# 网络工具
apt install curl wget
apt install unzip ranger

Preparación

Estoy aquí Ubuntu 22.04.2 LTS, los pasos de operación básicamente se refieren al manual oficial.
https://doc.wvp-pro.cn/#/_content/introduction/compile

instalar dependencias

confiar Versión usar necesidades del entorno de desarrollo Necesidades del entorno de producción.
jdk >=1.8 Ejecutar y compilar código Java
experto >=3.3 Administrar dependencias de código Java No No
git Descargar/Actualizar/Enviar código No No
nodos Compilar y ejecutar archivos front-end No No
npm Administrar dependencias de archivos front-end No No
apt-get install -y openjdk-11-jre git maven nodejs npm

instalar mysql

Déjame decirte aquí, traté de instalar mysql, pero no se instaló correctamente en el contenedor. No le dediqué más tiempo.
Lo reemplacé con mariadb, que es compatible con mysql de todos modos.
Dirección oficial del tutorial:

https://mariadb.org/download/?t=repo-config&d=22.04+%22jammy%22&v=10.11&r_m=aliyun

Corté la parte clave.
Estos son los comandos que se ejecutarán al importar la clave del repositorio de MariaDB en un sistema Ubuntu:

sudo apt-get install apt-transport-https curl
sudo mkdir -p /etc/apt/keyrings
sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'

EDITAR /etc/apt/sources.list.d/mariadb.sources, dice lo siguiente:

# MariaDB 10.11 repository list - created 2023-06-19 10:07 UTC
# https://mariadb.org/download/
X-Repolib-Name: MariaDB
Types: deb
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# URIs: https://deb.mariadb.org/10.11/ubuntu
URIs: https://mirrors.aliyun.com/mariadb/repo/10.11/ubuntu
Suites: jammy
Components: main main/debug
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp

Ahora puede instalar MariaDB 10.11 desde el repositorio de MariaDB con:

sudo apt-get update
sudo apt-get install mariadb-server

Iniciar mysql manualmente (MariaDB)

mysqld_safe  --user=mysql &

El inicio es exitoso y la prueba posterior es la siguiente:
inserte la descripción de la imagen aquí

instalar redis

apt install redis

Debido a que lo estamos haciendo en un contenedor docker, systemctl start redisno podemos iniciarlo correctamente.

Iniciar manualmente el servicio redis

/usr/bin/redis-server /etc/redis/redis.conf

Compilar ZLMediaKit

Consulte ZLMediaKitWIKI e intercepte los pasos clave:

# 国内用户推荐从同步镜像网站gitee下载 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 千万不要忘记执行这句命令
git submodule update --init

La versión gcc que viene con ubuntu es generalmente lo suficientemente nueva, puede instalar el compilador gcc de esta manera:

sudo apt-get install build-essential

ZLMediaKit usa cmake para compilar el proyecto, y el Makefile (o el proyecto Xcode/VS) solo se puede generar a través de cmake, por lo que cmake debe instalarse primero para completar los siguientes pasos.

Si tiene un sistema operativo basado en Debian (incluidos los usuarios basados ​​en ubuntu), la versión de cmake que viene con él suele ser lo suficientemente nueva, puede instalar cmake así

sudo apt-get install cmake

El método de instalación de dependencias en el sistema Debian (incluido ubuntu):

Además de openssl, en realidad no se pueden instalar otros

sudo apt-get install libssl-dev
sudo apt-get install libsdl-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavutil-dev
sudo apt-get install ffmpeg

Compilar:

cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4

Comience bajo Linux:

cd ZLMediaKit/release/linux/Debug
#通过-h可以了解启动参数
./MediaServer -h
#以守护进程模式启动
./MediaServer -d &

Compilar WVP-PRO

Después de trabajar en él durante mucho tiempo, finalmente llegué al texto.

clon de gitee

git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git

clonar de github

git clone https://github.com/648540858/wvp-GB28181-pro.git

Aquí cloné desde github.

Compilar la página de inicio

cd wvp-GB28181-pro/web_src/
npm --registry=https://registry.npmmirror.com install
npm run build

Si se informa un error durante la compilación, generalmente se trata de un problema de red, lo que provoca que no se pueda descargar el paquete dependiente.
Si no funciona, use una computadora que pueda compilar con éxito y compílelo.
inserte la descripción de la imagen aquí

No tengo éxito en la ventana acoplable aquí npm instally no quiero perder el tiempo. Lo compilé y lo copié en mac.

PD: puedes usar la fuente de taobao asínpx nrm use taobao

generar jar ejecutable

cd wvp-GB28181-pro
mvn package

inicialización de la base de datos

Configure WVP-PRO
wvp admite múltiples bases de datos, incluidas Mysql, Postgresql, Jincang, etc. Puede elegir una de ellas para la configuración.

Inicializar la base de datos

Primero use crear base de datos, luego use sql/initialize.sql para inicializar la base de datos, si se actualizó desde una versión anterior, use upgrade sql para actualizar.

Configuración de la base de datos Mysql
El nombre de la base de datos toma wvp como ejemplo, y
el archivo de configuración de yml es el siguiente:

 spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
    username: root
    password: 12345678

mybatis:
  configuration:
    map-underscore-to-camel-case: true

Usaremos esto luego. Esto es para que todos lo vean y se incluirá en el archivo de configuración más adelante.

establecer contraseña raíz

Aquí tomamos el ajuste 12345678como ejemplo.
Ingrese mysql en la línea de comando para ingresar la línea de comando de mysql.
Luego ejecuta el siguiente comando:

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

inserte la descripción de la imagen aquí
Debido a que establecemos una contraseña, traeremos la contraseña la próxima vez que ingresemos a la línea de comando mysql

mysql -uroot -p12345678

crear base de datos

Primero ingrese la línea de comando de mysql:

mysql -uroot -p12345678

Luego ingrese el siguiente comando para crear el usuario.

CREATE DATABASE `wvp` CHARACTER SET UTF8;
use wvp;
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
source /root/wvp-GB28181-pro/sql/初始化.sql;

inserte la descripción de la imagen aquí
El script creará la siguiente estructura de tabla.

MySQL [wvp]> show tables;
+----------------------------+
| Tables_in_wvp              |
+----------------------------+
| wvp_device                 |
| wvp_device_alarm           |
| wvp_device_channel         |
| wvp_device_mobile_position |
| wvp_gb_stream              |
| wvp_log                    |
| wvp_media_server           |
| wvp_platform               |
| wvp_platform_catalog       |
| wvp_platform_gb_channel    |
| wvp_platform_gb_stream     |
| wvp_stream_proxy           |
| wvp_stream_push            |
| wvp_user                   |
| wvp_user_role              |
+----------------------------+
15 rows in set (0.002 sec)

Modificar el archivo de configuración yml

Copiamos directamente el comando wvp-GB28181-pro/src/main/resources/application-dev.ymlde la
wvp-GB28181-pro/src/main/resources/application-local.yml
siguiente manera:

cd ~/wvp-GB28181-pro/src/main/resources
cp application-dev.yml application-local.yml

Luego podemos editar application-local.yml.
Edité el siguiente contenido aquí:

fuente de datos mysql

url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
    username: root
    password: 12345678

Debido a que no establecimos una contraseña para redis
, comentamos directamente esta línea con #.

#password: face2020

Después de modificar el archivo de configuración, podemos ejecutar el proyecto con el siguiente comando para ver si hay algún error.

cd /root/wvp-GB28181-pro
mvn spring-boot:run

Otros lugares están básicamente de acuerdo con la configuración predeterminada del autor.

Configuración de ZLMediaKit

cd ZLMediaKit/release/linux/Debug
vim config.ini

La modificación aquí es principalmente el contenido correspondiente al yml anterior:

puerto http


Poner port=8091 en la configuración [http]

ID del servidor de medios

[general]

mediaServerId=FQ3TF8yT83wh5Wvz

Comienza el servicio

cd ZLMediaKit/release/linux/Debug
#以守护进程模式启动
./MediaServer -d &

correr

La configuración anterior se completa y también se menciona la operación. Tráigalo por separado y dígalo de nuevo. Porque la configuración suele ser una sola vez. La configuración ha terminado. Y correr tiene que hacerse a menudo.

Iniciar mysql manualmente (MariaDB)

mysqld_safe  --user=mysql &

Iniciar manualmente el servicio redis

/usr/bin/redis-server /etc/redis/redis.conf

Iniciar ZLMediaKit

cd ZLMediaKit/release/linux/Debug
./MediaServer -d &

Iniciar WVP

Hay muchas formas de empezar, la mía es la de arranque directo. No empaquetado en un paquete de tarro.

cd /root/wvp-GB28181-pro
mvn spring-boot:run

Ventajas: Es conveniente modificar la configuración.
Contras: un poco más lento para comenzar. En teoría, no afecta al rendimiento.
Si le gustan otros métodos, puede consultar la documentación oficial:
https://doc.wvp-pro.cn/#/_content/introduction/config
El paquete jar se puede iniciar así:

java -jar wvp-pro-*.jar 

Todo lo anterior se ha completado y no hay errores informados. Puede visitar IP:18080 a través de un navegador.

Problema restante

No está claro por qué la conexión redis siempre tendrá problemas después de que se reinicie el contenedor acoplable.
Los siguientes comandos se pueden ejecutar usando redis-cli. resolver el problema D.

FLUSHDB ASYNC

compartir mi configuración

https://download.csdn.net/download/lxyoucan/87933896

Resumir

El despliegue de este proyecto no es difícil. Pero es un poco complicado. La clave es que la documentación oficial no es exhaustiva, y algunos lugares se mencionan de un solo golpe. Será difícil para los estudiantes que no conocen Java.

referencia

Supongo que te gusta

Origin blog.csdn.net/lxyoucan/article/details/131290902
Recomendado
Clasificación