当前位置: 首页 > news >正文

GB28181国标视频服务器WVP-PRO搭建

🎬 WVP-PRO Docker 一键部署与 SIP 配置

基于 GB28181-2016 标准的视频监控平台搭建完整教程

版本:WVP-PRO v2.7+ | ZLMediaKit latest


📋 目录

  1. 项目简介
  2. 环境准备
  3. Docker 服务部署
  4. WVP-PRO 主应用安装
  5. SIP 配置详解
  6. 设备接入配置
  7. 运维管理
  8. 常见问题

🎯 项目简介

什么是 WVP-PRO?

WVP-PRO 是一个基于 GB/T 28181-2016 标准实现的网络视频平台,集成了优秀的开源流媒体服务 ZLMediaKit,提供以下核心功能:

  • ✅ 摄像机、NVR 设备统一接入
  • ✅ 国标级联,支持上级平台注册
  • ✅ 实时视频预览、云台控制
  • ✅ 录像存储与回放
  • ✅ 设备管理、用户权限控制
  • ✅ WebRTC 低延迟直播

技术架构

┌─────────────────────────────────────────────────────────┐
│                     客户端浏览器                          │
│              http://ip:18080 (Web UI)                    │
└──────────────────────┬──────────────────────────────────┘│
┌──────────────────────▼──────────────────────────────────┐
│                   WVP-PRO 应用                           │
│           GB28181 信令服务 (SIP 端口:5060)               │
│           设备管理、用户认证、录像计划                     │
└──────────┬──────────────────────────────┬───────────────┘│                              │
┌──────────▼──────────┐    ┌─────────────▼────────────────┐
│    ZLMediaKit 流媒体   │    │        MySQL + Redis        │
│                        │    │                             │
│  ┌──────┐  ┌───────┐ │    │  • 设备信息存储               │
│  │ RTSP │  │ RTMP  │ │    │  • 用户数据管理               │
│  │ 554  │  │ 1935  │ │    │  • 会话缓存                   │
│  └──────┘  └───────┘ │    │  • 配置存储                   │
│  ┌──────┐  ┌───────┐ │    └───────────────────────────────┘
│  │ HTTP │  │ WebRTC│ │
│  │ 8081 │  │ 10000 │ │
│  └──────┘  └───────┘ │
└──────────────────────┘

系统要求

项目 最低配置 推荐配置
CPU 2 核 4 核+
内存 4 GB 8 GB+
磁盘 50 GB 100 GB+
系统 Ubuntu 18.04+ / CentOS 7+ / Windows 10+ -
Docker 20.10+ 最新版

🔧 环境准备

Windows 环境

1. 安装 Docker Desktop

下载地址:https://www.docker.com/products/docker-desktop

安装要求

  • Windows 10/11 专业版/企业版
  • 启用 WSL 2 或 Hyper-V
  • 至少 4GB RAM 分配给 Docker

验证安装

docker --version
# Docker version 27.5.1, build 9f582dadocker-compose --version
# Docker Compose version v2.30.3

2. 创建项目目录

# 创建项目目录
mkdir WVP-PRO
cd WVP-PRO# 创建子目录
mkdir -p mysql/data mysql/init redis/data
mkdir -p zlmediakit/logs zlmediakit/record
mkdir -p wvp/logs wvp/data wvp/conf

Linux 环境

# 一键安装 Docker
curl -fsSL https://get.docker.com | bash# 启动 Docker
sudo systemctl start docker
sudo systemctl enable docker# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose# 添加用户组(可选)
sudo usermod -aG docker $USER

🐳 部署zlmediakit+redis+mysql三个服务(WVP-PRO需要这三个服务)

方案一:使用 Docker Compose(一键启动zlmediakit+redis+mysql)

1. 创建 docker-compose.yml

version: '3.8'services:# ==========================================# MySQL 5.7 数据库# ==========================================mysql:image: mysql:5.7.36container_name: wvp-mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: Wvp@2024!mysqlMYSQL_DATABASE: wvp2MYSQL_USER: wvpMYSQL_PASSWORD: Wvp@2024!mysqlTZ: Asia/Shanghaiports:- "3319:3306"volumes:- ./mysql/data:/var/lib/mysql- ./mysql/init:/docker-entrypoint-initdb.dcommand:- --character-set-server=utf8mb4- --collation-server=utf8mb4_unicode_ci- --default-authentication-plugin=mysql_native_passwordnetworks:- wvp-network# ==========================================# Redis 7.2 缓存# ==========================================redis:image: redis:7.2-alpinecontainer_name: wvp-redisrestart: alwaysenvironment:TZ: Asia/Shanghaiports:- "6380:6379"volumes:- ./redis/data:/datacommand: redis-server --appendonly yesnetworks:- wvp-network# ==========================================# ZLMediaKit 流媒体服务器# ==========================================zlmediakit:image: zlmediakit/zlmediakit:mastercontainer_name: zlmediakitrestart: alwaysports:- "8081:80"         # HTTP Web- "8443:443"        # HTTPS- "554:554"         # RTSP- "1935:1935"       # RTMP- "8090:8090"       # API- "10000:10000"     # WebRTC/TCP- "10000:10000/udp" # WebRTC/UDP- "8000:8000"       # HTTP-FLV- "9000:9000/udp"   # RTPvolumes:- ./zlmediakit/config.ini:/opt/zlmediakit/conf/config.ini:ro- ./zlmediakit/logs:/opt/zlmediakit/logs- ./zlmediakit/record:/opt/zlmediakit/www/recordenvironment:TZ: Asia/Shanghaiprivileged: truenetworks:- wvp-networknetworks:wvp-network:driver: bridge

2. 启动服务

# Windows PowerShell
docker-compose up -d# Linux/macOS
sudo docker-compose up -d

3. 验证服务状态

docker ps --format "table {{.Names}}`t{{.Status}}`t{{.Ports}}"

输出示例

NAMES         STATUS          PORTS
wvp-mysql     Up 2 minutes    0.0.0.0:3319->3306/tcp
wvp-redis     Up 2 minutes    0.0.0.0:6380->6379/tcp
zlmediakit    Up 2 minutes    0.0.0.0:8081->80/tcp, 0.0.0.0:8090->8090/tcp

启动完毕后可以看到管理界面
image

image

调用api文档
image

方案二:手动逐个启动zlmediakit+redis+mysql

如果 Docker Compose 有问题,可以手动启动:

# 1. 启动 MySQL
docker run -d `--name wvp-mysql `-e MYSQL_ROOT_PASSWORD=Wvp@2024!mysql `-e MYSQL_DATABASE=wvp2 `-p 3319:3306 `-v $PWD/mysql/data:/var/lib/mysql `mysql:5.7.36 `--character-set-server=utf8mb4 `--collation-server=utf8mb4_unicode_ci# 2. 启动 Redis
docker run -d `--name wvp-redis `-p 6380:6379 `-v $PWD/redis/data:/data `redis:7.2-alpine `redis-server --appendonly yes# 3. 启动 ZLMediaKit
docker run -d `--name zlmediakit `--network host `-v $PWD/zlmediakit/config.ini:/opt/zlmediakit/conf/config.ini:ro `-v $PWD/zlmediakit/logs:/opt/zlmediakit/logs `--privileged `zlmediakit/zlmediakit:master

ZLMediaKit 配置

创建 zlmediakit/config.ini

[api]
# API 密钥(生产环境请修改!)
secret=035c73f401882f95e526a06de5bfe5d5
# 接受 IP 黑名单
deny_ip=
# 接受 IP 白名单
allow_ip=*[ffmpeg]
# FFmpeg 路径
bin=/usr/bin/ffmpeg
# 阻塞等待时间(毫秒)
cmd=10000
# 日志路径
log=./ffmpeg/ffmpeg.log
# 拉流超时时间(秒)
timeout=30[general]
# 是否启用多进程模式
enableVhost=1
# 是否启用虚拟主机
enable audition of none
flowThreshold=1024
# 最大连接数
maxConn=2000
# 播放器最大数量
maxPlayerSlowCount=1[protocol]
# 低延迟配置
low_latency=1
# 自动整理 MP4
auto_flush_writer=1[record]
# 开启 MP4 录制
enabled=1
# 录制文件路径
path=./www/record/
# 应用名称
appName=record[rtmp]
# RTMP 服务开关
enabled=1
# RTMP 端口
port=1935
# RTMP 超时时间(秒)
timeout=60[rtsp]
# RTSP 服务开关
enabled=1
# RTSP 端口
port=554
# RTSP 认证
auth=0
# RTSP 超时时间(秒)
timeout=60[shell]
# 调试 Shell 服务
enabled=1
port=9000

初始化数据库

创建 mysql/init/wvp_init.sql

-- ============================================
-- WVP-PRO 数据库初始化脚本
-- ============================================-- 创建数据库(如果不存在)
CREATE DATABASE IF NOT EXISTS wvp2 DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;USE wvp2;-- -----------------------------------------
-- 管理员用户表
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS wvp_user (id BIGINT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',password VARCHAR(100) NOT NULL COMMENT '密码(加密)',role VARCHAR(20) DEFAULT 'admin' COMMENT '角色:admin/user',create_time DATETIME DEFAULT CURRENT_TIMESTAMP,update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';-- 插入默认管理员
INSERT IGNORE INTO wvp_user (username, password, role) VALUES 
('admin', 'admin', 'admin');-- -----------------------------------------
-- 设备表
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS wvp_device (id BIGINT PRIMARY KEY AUTO_INCREMENT,device_id VARCHAR(20) NOT NULL UNIQUE COMMENT '设备ID(国标编码)',device_name VARCHAR(100) COMMENT '设备名称',device_type VARCHAR(50) DEFAULT 'camera' COMMENT '设备类型:camera/nvr',host VARCHAR(50) COMMENT '设备IP',port INT DEFAULT 5060 COMMENT 'SIP端口',password VARCHAR(50) COMMENT '注册密码',manufacturer VARCHAR(50) COMMENT '制造商',status VARCHAR(20) DEFAULT 'offline' COMMENT '状态:online/offline',create_time DATETIME DEFAULT CURRENT_TIMESTAMP,update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备表';-- -----------------------------------------
-- 设备通道表(摄像头)
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS wvp_device_channel (id BIGINT PRIMARY KEY AUTO_INCREMENT,device_id VARCHAR(20) NOT NULL COMMENT '所属设备ID',channel_id VARCHAR(20) NOT NULL UNIQUE COMMENT '通道ID',channel_name VARCHAR(100) COMMENT '通道名称',longitude DECIMAL(10,6) COMMENT '经度',latitude DECIMAL(10,6) COMMENT '纬度',status VARCHAR(20) DEFAULT 'offline' COMMENT '状态',create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备通道表';-- -----------------------------------------
-- 国标平台表(上级/下级)
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS wvp_platform (id BIGINT PRIMARY KEY AUTO_INCREMENT,platform_id VARCHAR(20) NOT NULL UNIQUE COMMENT '平台ID',platform_name VARCHAR(100) COMMENT '平台名称',host VARCHAR(50) COMMENT '平台地址',port INT DEFAULT 5060 COMMENT 'SIP端口',password VARCHAR(50) COMMENT '连接密码',catalog_id VARCHAR(20) COMMENT '目录服务器ID',status VARCHAR(20) DEFAULT 'offline' COMMENT '状态',create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国标平台表';-- -----------------------------------------
-- 视频流表
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS wvp_stream (id BIGINT PRIMARY KEY AUTO_INCREMENT,stream_id VARCHAR(50) NOT NULL UNIQUE COMMENT '流ID',device_id VARCHAR(20) COMMENT '设备ID',channel_id VARCHAR(20) COMMENT '通道ID',app VARCHAR(50) DEFAULT 'live' COMMENT '应用名',stream VARCHAR(50) COMMENT '流名',status VARCHAR(20) DEFAULT 'stopped' COMMENT '状态',create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='视频流表';-- -----------------------------------------
-- 录像计划表
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS wvp_record_plan (id BIGINT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100) NOT NULL COMMENT '计划名称',device_id VARCHAR(20) COMMENT '设备ID',channel_id VARCHAR(20) COMMENT '通道ID',type VARCHAR(20) DEFAULT 'timing' COMMENT '类型:timing/alarm',schedule TEXT COMMENT '时间计划(JSON)',enabled TINYINT DEFAULT 1 COMMENT '是否启用',create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='录像计划表';

执行初始化

# Windows
docker cp mysql/init/wvp_init.sql wvp-mysql:/wvp_init.sql
docker exec wvp-mysql mysql -u root -pWvp@2024!mysql < wvp_init.sql# Linux
docker exec -i wvp-mysql mysql -u root -pWvp@2024\!mysql < mysql/init/wvp_init.sql

验证数据库

docker exec wvp-mysql mysql -u root -pWvp@2024!mysql -e "USE wvp2; SHOW TABLES;"

输出示例

Tables_in_wvp2
wvp_user
wvp_device
wvp_device_channel
wvp_platform
wvp_stream
wvp_record_plan

🚀 部署WVP-PRO(调用zlmediakit+redis+mysql这三个服务)

方式一:下载预编译版本(推荐)

1. 下载最新版本

访问 GitHub Releases:https://github.com/648540858/wvp-GB28181-pro/releases

选择 wvp-pro-*-bin.zip 下载。

2. 解压并配置

# 解压到 wvp 目录
Expand-Archive -Path wvp-pro-*-bin.zip -DestinationPath wvp
cd wvp# 修改配置
notepad conf/application.yml

3. 启动应用

# Windows
./start.sh   # 或双击 start.bat# Linux
chmod +x start.sh
./start.sh

方式二:使用wvp-pro的社区 Docker 镜像

# 添加到 docker-compose.yml
wvp-pro:image: registry.cn-beijing.aliyuncs.com/nicerom/wvp-pro:latestcontainer_name: wvp-prorestart: alwaysports:- "18080:18080"environment:SPRING_PROFILES_ACTIVE: devvolumes:- ./wvp/conf:/app/config- ./wvp/logs:/app/logsdepends_on:- mysql- redis- zlmediakit

方式三:从源码构建wvp-pro

# 克隆源码
git clone https://github.com/648540858/wvp-GB28181-pro.git
cd wvp-GB28181-pro# 安装依赖
mvn clean package -DskipTests# 运行
java -jar wvp-pro/target/wvp-pro.jar

📡 SIP 配置详解

什么是 SIP?

SIP(Session Initiation Protocol)是 GB28181 协议的核心,用于:

  • 📌 设备注册 - 摄像机/NVR 向 WVP 注册
  • 📌 信令传输 - 设备控制指令
  • 📌 心跳保活 - 维持设备在线状态
  • 📌 媒体协商 - 建立音视频流传输通道

SIP ID 编码规则(20位)

SIP ID 是设备的唯一标识,必须符合 GB28181 标准:

34020000002000000001
└─┬─┘└────┬─────┘└┬┘└──┬──┘└─────┬────┘│       │       │     │         ││       │       │     │         └─ 序号(7位)│       │       │     └─ 类型编码(3位)│       │       │        200 = 一般事件│       │       │        215 = 视频监控│       │       │        216 = 报警主机│       │       └─ 行业编码(4位)│       │          2000 = 社会公共│       │          1100 = 公安│       └─ 行政区划代码(6位)│          340200 = 安徽省合肥市└─ 省、市、区县代码

常用行政区划代码

区域 代码
北京 110000
上海 310000
广东广州 440100
深圳市 440300
浙江杭州 330100
江苏南京 320100
四川成都 510100

完整 SIP 配置示例

wvp/conf/application-dev.yml 中配置:

server:port: 18080servlet:context-path: /tomcat:uri-encoding: UTF-8max-threads: 500spring:application:name: wvp-prodatasource:url: jdbc:mysql://localhost:3319/wvp2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=trueusername: rootpassword: Wvp@2024!mysqldriver-class-name: com.mysql.cj.jdbc.Driverredis:host: localhostport: 6380password:database: 0wvp:# ============================================# SIP 服务配置(GB28181 核心)# ============================================sip:# SIP 服务器唯一标识(20位国标编码)id: 34020000002000000001# SIP 域(通常与SIP ID前10位相同)domain: 3402000000# SIP 服务监听地址host: 0.0.0.0# SIP 服务端口(UDP/TCP)port: 5060# 设备注册密码password: wvp2024@password# 注册有效期(秒)register-interval: 3600# 心跳间隔(秒)keepalive-interval: 60# ============================================# 传输协议配置# ============================================transport: UDP# 是否支持 TCP 被动模式tcp-support: true# 媒体流传输协议media-transport: UDP# ============================================# 端口范围配置# ============================================rtp-offset: 10000rtp-port-range: 10000-35000# ============================================# 超时与重试配置# ============================================heartbeat-timeout: 90register-timeout: 30retry-count: 3# ============================================# ZLMediaKit 流媒体配置# ============================================media:host: 127.0.0.1port: 1935http-port: 8081rtsp-port: 554api-url: http://127.0.0.1:8090auto-start: truestream-none-reader-duration: 30logging:level:root: INFOcom.stringpower.wvp: DEBUGfile:path: ./logs

配置参数说明

参数 说明 推荐值
sip.id SIP 服务器唯一ID 20位国标编码
sip.domain SIP 域 SIP ID 前10位
sip.host 监听地址 0.0.0.0(内网)
sip.port SIP 端口 5060
sip.password 注册密码 强密码
sip.transport 信令传输协议 UDP(内网)/ TCP(公网)
rtp-port-range RTP 端口范围 10000-35000
heartbeat-timeout 心跳超时 90

不同网络环境配置

1. 内网部署

sip:host: 0.0.0.0port: 5060transport: UDP

2. 公网部署(NAT)

sip:host: 内网IPport: 5060transport: TCP  # 公网建议 TCPpublic-ip: 公网IP  # 必须填写!

3. Docker 部署

sip:host: 0.0.0.0port: 5060

注意:Docker 需要端口映射:

ports:- "5060:5060/udp"

📱 设备接入配置

海康威视摄像机

1. 登录 Web 管理界面

http://摄像机IP
默认账号:admin
默认密码:12345

2. 配置 GB28181

路径:配置 → 网络 → 高级设置 → 平台接入

参数
启用
SIP 服务器ID 34020000002000000001
SIP 服务器域 3402000000
SIP 服务器地址 WVP服务器IP
SIP 服务器端口 5060
SIP 用户名 34020000001320000001(设备ID)
SIP 密码 wvp2024@password
心跳周期 60

3. 保存并等待注册

注册成功后,设备状态变为 在线

NVR 设备接入

NVR(网络视频录像机)通常包含多个通道,配置方式:

  1. NVR 设备注册

    • 配置 NVR 的 SIP 信息(同摄像机)
    • NVR 的 ID 编码需唯一
  2. 通道自动发现

    • WVP 会自动获取 NVR 下的所有通道
    • 可在 WVP 管理界面查看通道列表
  3. 手动添加通道

    channel:device_id: "34020000001320000001"  # NVR IDchannel_id: "34020000001320000001"  # 通道IDchannel_name: "通道1"
    

🛠️ 运维管理

常用 Docker 命令

# 查看容器状态
docker ps -a# 查看日志
docker logs -f wvp-mysql
docker logs -f zlmediakit# 重启服务
docker-compose restart# 停止服务
docker-compose down# 清理数据(慎用!)
docker-compose down -v

防火墙配置(Linux)

# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=18080/tcp   # WVP Web
sudo firewall-cmd --permanent --add-port=5060/udp   # SIP
sudo firewall-cmd --permanent --add-port=554/tcp    # RTSP
sudo firewall-cmd --permanent --add-port=1935/tcp    # RTMP
sudo firewall-cmd --permanent --add-port=8081/tcp    # HTTP
sudo firewall-cmd --permanent --add-port=8090/tcp    # API
sudo firewall-cmd --permanent --add-port=10000-35000/udp  # RTP
sudo firewall-cmd --reload# Ubuntu/Debian
sudo ufw allow 18080/tcp
sudo ufw allow 5060/udp
sudo ufw allow 554/tcp
sudo ufw allow 1935/tcp
sudo ufw allow 8081/tcp
sudo ufw allow 10000:35000/udp
sudo ufw enable

监控与日志

ZLMediaKit API

# 获取服务配置
curl http://localhost:8090/index/api/getServerConfig# 获取流列表
curl http://localhost:8090/index/api/getAllSession# 查看在线播放人数
curl http://localhost:8090/index/api/getMediaList

WVP 日志

# 实时查看日志
tail -f wvp/logs/wvp.log# 查看错误日志
grep -i error wvp/logs/wvp.log

数据备份

# 备份 MySQL 数据
docker exec wvp-mysql mysqldump -u root -pWvp@2024\!mysql wvp2 > backup_$(date +%Y%m%d).sql# 备份配置文件
tar -czf config_backup.tar.gz wvp/conf/ zlmediakit/config.ini

❓ 常见问题

Q1: 设备无法注册?

可能原因

  • SIP ID 或密码不匹配
  • 网络不通(防火墙未开放)
  • 端口被占用

解决方法

# 检查端口监听
netstat -ano | findstr 5060# 检查防火墙
sudo firewall-cmd --list-ports

Q2: 视频播放卡顿?

优化建议

  • 使用 TCP 传输模式
  • 降低视频码率
  • 启用低延迟模式

Q3: Docker 网络问题?

Windows Docker Desktop

  • 使用端口映射替代 network_mode: host
  • 检查 WSL 2 配置
# 错误配置
network_mode: host  # Windows 不支持!# 正确配置
ports:- "8081:80"- "8090:8090"

Q4: 数据库连接失败?

检查项

  1. MySQL 容器是否运行
  2. 端口是否正确映射
  3. 密码是否正确
  4. 防火墙是否开放 3319 端口
docker exec wvp-mysql mysql -u root -pWvp@2024!mysql -e "SELECT 1"

Q5: ZLMediaKit 无法访问?

# 检查容器状态
docker ps | grep zlmediakit# 查看日志
docker logs zlmediakit# 测试 API
Invoke-RestMethod http://localhost:8090/index/api/getServerConfig

🎯 快速部署清单

部署前请确认以下项目:


📚 相关资源

资源 链接
WVP-PRO 官方文档 https://doc.wvp-pro.cn
GitHub 仓库 https://github.com/648540858/wvp-GB28181-pro
ZLMediaKit https://github.com/ZLMediaKit/ZLMediaKit
Docker Hub https://hub.docker.com
GB28181 标准 GB/T 28181-2016

🎉 结语

  • ✅ 接入多路摄像机和 NVR
  • ✅ 实现视频实时预览和回放
  • ✅ 进行云台控制和录像管理
  • ✅ 与上级平台进行级联对接

http://www.jsqmd.com/news/847336/

相关文章:

  • AUTOSAR COM的DeadlineMonitor:从ISO 17356标准到实战配置,一次讲透发送与接收超时监控
  • 图书管理|图书管理系统|基于SprinBoot+vue图书管理系统设计与实现(源码+数据库+文档)
  • 初识NixOS
  • 10个内部工具批量交付实战:Vibe Coding 的 4 步自动化流水线搭建
  • Perplexity播客搜索效率提升300%的实战方法论(仅限技术决策者内部流通版)
  • 医生必备的AI搜索新范式,Perplexity如何在3秒内过滤92%低质医学信息?
  • 软件工程视角的Qt单元测试全景报告:从基础原理到企业级工程实践
  • ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本静音高效运行
  • 多元美学与在地表达:2026广元装修风格趋势深度解析 - 优家闲谈
  • 英雄联盟录像编辑神器:用League Director制作专业游戏视频
  • 别再让日志拖慢你的服务器!深入对比C++同步与异步日志的性能差异与选型指南
  • 5步快速掌握Depth Anything V2:单目深度估计终极指南
  • OBS多路推流技术架构深度解析:构建高效同步直播解决方案
  • 抖音无水印视频下载效率革命:3种智能方案彻底告别水印困扰
  • 警惕过度设计:从C语言务实哲学看软件开发的灵活性与复杂性平衡
  • 2025年终极指南:LinkSwift网盘直链下载助手完整使用教程
  • 从‘滋滋’声到过认证:我的Buck电源EMI整改实战记录(附RC/RL缓冲电路计算)
  • MATLAB R2021a离线安装硬件支持包保姆级教程(解决CMSIS下载失败问题)
  • 口袋实验室实战:用Digilent AD2/3精准测绘二极管IV曲线,告别纸上谈兵
  • QT项目里集成FastDDS通信库,从ROS2移植到智能驾驶的完整实战(附避坑指南)
  • OpenClaw 架构解析:AI 的工具箱是怎么工作的
  • ContextMenuManager:5分钟掌握Windows右键菜单管理的终极免费工具
  • 运营商集体变了:从卖流量到卖Token,运营商算力生意破局
  • 【Perplexity症状查询功能深度解密】:20年AI医疗系统架构师亲授5大隐藏能力与3个临床误用雷区
  • 2026 青岛优质 GEO 公司深度解析:五大专业机构实力全景评测 - GEO优化
  • 从防御者视角看theHarvester:手把手教你监控自己的公司域名,提前发现信息泄露
  • 在 Taotoken 模型广场中根据任务需求与预算快速筛选合适的大模型
  • 关于以“可持续商业化发展”为目标切割部分群体和停止服务的声明
  • FFXIV TexTools终极指南:如何从零开始掌握游戏模组制作与个性化定制
  • OpenMV视觉数据怎么传?手把手教你用Python给STM32发坐标(含帧协议设计)