diff --git a/docs/deployment.md b/docs/deployment.md index dd82fff..e747762 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -1,5 +1,25 @@ # RK3588 Media Server 部署指南 +## 架构说明 + +``` +┌─────────────────┐ ┌─────────────────┐ +│ Media Server │ │ RK3588 Agent │ +│ (systemd) │◄────│ (systemd) │ +│ 高可用独立服务 │ │ 监控/控制 │ +└─────────────────┘ └─────────────────┘ + │ │ + ▼ ▼ + RTSP 输出流 Web 管理界面 + HLS 输出流 http://IP:9100 +``` + +- **Media Server**: 独立的 systemd 服务,高可用(崩溃自动重启) +- **Agent**: 独立的 systemd 服务,通过 `systemctl` 监控和控制 Media Server +- **两者可独立重启**: 重启 Agent 不会影响 Media Server + +--- + ## 快速开始 ### 1. 编译 @@ -14,28 +34,23 @@ mkdir -p build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) -# 编译 Agent(可选,用于 Web 管理) +# 编译 Agent cd ../agent -GOOS=linux GOARCH=arm64 go build -o rk3588-agent_linux_arm64 ./cmd +go build -o rk3588-agent_linux_arm64 ./cmd/rk3588-agent ``` ### 2. 安装 -使用统一脚本安装: - ```bash cd ~/apps/OrangePi3588Media sudo ./scripts/manage.sh install ``` 安装过程会提示选择**配置文件**: -- **配置文件**: - - `test_cam1_face_det_rtsp_server.json` - 人脸检测(推荐) - - `sample_cam1_native_rtsp_face.json` - 完整功能 - - `test_cam1_face_det_recog_rtsp_server.json` - 人脸识别 - - `sample_cam1.json` - 完整功能(需手动修复) - -Media Server 由 Agent 统一管理,可通过 Web 界面 `http://<设备IP>:9100` 查看状态和控制服务。 +- `test_cam1_face_det_rtsp_server.json` - 人脸检测(推荐) +- `sample_cam1_native_rtsp_face.json` - 完整功能 +- `test_cam1_face_det_recog_rtsp_server.json` - 人脸识别 +- `sample_cam1.json` - 完整功能(需手动修复) ### 3. 查看状态 @@ -47,7 +62,7 @@ sudo ./scripts/manage.sh status - 系统运行时间 - NPU 负载 - Media Server 状态(PID、CPU/内存、端口) -- Agent 状态(如果安装) +- Agent 状态 - 最近日志 ### 4. 卸载 @@ -56,22 +71,14 @@ sudo ./scripts/manage.sh status sudo ./scripts/manage.sh uninstall ``` -卸载会: -1. 停止所有服务 -2. 删除 systemd 服务文件 -3. 自动备份配置文件和模型到 `/root/rk3588-backup-时间戳/` -4. 提示是否删除安装目录 - --- ## 升级 -升级步骤与安装相同,脚本会自动处理: - ```bash cd ~/apps/OrangePi3588Media -# 1. 拉取最新代码(如果是 git 仓库) +# 1. 拉取最新代码 git pull # 2. 重新编译 @@ -79,7 +86,10 @@ mkdir -p build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) -# 3. 重新安装(会自动备份旧配置) +cd ../agent +go build -o rk3588-agent_linux_arm64 ./cmd/rk3588-agent + +# 3. 重新安装 cd .. sudo ./scripts/manage.sh install ``` @@ -88,24 +98,47 @@ sudo ./scripts/manage.sh install ## 管理命令 -Agent 统一管理 Media Server,使用以下命令: +### Media Server(独立服务) ```bash -# 启动/停止/重启 Agent(同时会启动/停止 Media Server) +# 启动/停止/重启 +sudo systemctl start media-server +sudo systemctl stop media-server +sudo systemctl restart media-server + +# 查看状态 +sudo systemctl status media-server + +# 查看日志 +sudo journalctl -u media-server -f +``` + +### Agent(独立服务) + +```bash +# 启动/停止/重启(不影响 Media Server) sudo systemctl start rk3588-agent sudo systemctl stop rk3588-agent sudo systemctl restart rk3588-agent -# 查看 Agent 状态 +# 查看状态 sudo systemctl status rk3588-agent # 查看日志 sudo journalctl -u rk3588-agent -f +``` -# Web 管理界面 +### Web 管理界面 + +``` http://<设备IP>:9100 ``` +功能: +- 查看 Media Server 运行状态 +- 启动/停止/重启 Media Server(通过 systemctl) +- 查看配置信息 + --- ## 配置修改 @@ -116,44 +149,30 @@ http://<设备IP>:9100 sudo nano /opt/rk3588-media-server/etc/media-server.json ``` -常用修改: -- **修改 RTSP 输入源**:找到 `input_rtsp` 节点,修改 `url` 字段 -- **修改输出端口**:找到 `publish` 节点,修改 `port` 字段 - -修改后重启服务: +修改后重启 Media Server: ```bash -# 独立模式 sudo systemctl restart media-server - -# Agent 模式 -sudo systemctl restart rk3588-agent ``` --- ## 目录结构 -安装后的目录结构: - ``` /opt/rk3588-media-server/ ├── bin/ │ ├── media-server # 主程序 -│ └── plugins/ # 插件目录 -│ ├── libinput_rtsp.so -│ ├── libai_yolo.so -│ └── ... -├── lib/ # 依赖库 +│ └── plugins/ # 插件 ├── etc/ │ └── media-server.json # 配置文件 ├── models/ # AI 模型 -├── logs/ # 日志目录 -└── web/hls/ # HLS 输出目录 +├── logs/ # 日志 +└── web/hls/ # HLS 输出 -/opt/rk3588-agent/ # Agent 安装目录(如果使用) -├── rk3588-agent -└── agent.config.json +/opt/rk3588-agent/ +├── rk3588-agent # Agent 程序 +└── agent.config.json # Agent 配置 ``` --- @@ -163,37 +182,28 @@ sudo systemctl restart rk3588-agent ### 服务无法启动 ```bash -# 查看详细错误 +# Media Server 错误 sudo journalctl -u media-server -n 50 -# 或 + +# Agent 错误 sudo journalctl -u rk3588-agent -n 50 ``` -### 检查 NPU 是否正常 +### 检查 NPU ```bash -# 查看 NPU 负载 cat /sys/kernel/debug/rknpu/load - -# 查看 NPU 驱动 ls /dev/rknpu ``` -### RTSP 流无法播放 +### RTSP 测试 ```bash -# 在设备上测试播放 +# 本地测试 ffplay rtsp://localhost:8555/live/cam1_face_det -# 测试输入源 -ffplay rtsp://输入源IP:端口/路径 -``` - -### 端口占用 - -```bash -# 查看端口占用 -sudo ss -tlnp | grep -E "(8554|8555|9000|9100)" +# 远程测试 +ffplay rtsp://<设备IP>:8555/live/cam1_face_det ``` --- @@ -202,7 +212,4 @@ sudo ss -tlnp | grep -E "(8554|8555|9000|9100)" - **硬件**: Orange Pi 5 Plus (RK3588) - **系统**: Ubuntu 22.04 LTS (ARM64) -- **依赖**: - - RKNN Runtime - - MPP (Media Process Platform) - - FFmpeg (带 rkmpp 支持) +- **依赖**: RKNN Runtime, MPP, FFmpeg