safesight-edge/scripts/systemd/README.md
2026-02-25 12:37:08 +08:00

151 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RK3588 Media Server Systemd 部署脚本
本目录包含 RK3588 Media Server 的完整 systemd 部署方案,适用于 Orange Pi 5 Plus。
## 文件说明
| 文件 | 用途 |
|------|------|
| `install.sh` | **主安装脚本** - 一键安装media-server到systemd |
| `uninstall.sh` | 卸载脚本 |
| `status.sh` | 状态查看脚本 |
| `media-server.service` | Systemd服务文件 |
| `rk3588-agent.service` | Agent服务文件可选 |
## 快速开始
### 1. 编译项目
确保已编译项目:
```bash
cd /path/to/OrangePi3588Media
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTS=OFF \
-DRK3588_ENABLE_FFMPEG=ON \
-DRK3588_ENABLE_MPP=ON \
-DRK3588_ENABLE_RGA=ON \
-DRK3588_ENABLE_RKNN=ON
cmake --build build -j$(nproc)
```
### 2. 安装服务
```bash
cd /path/to/OrangePi3588Media
sudo ./scripts/systemd/install.sh
```
安装脚本会:
1. 自动选择配置文件(推荐用 `test_cam1_face_det_rtsp_server.json`
2. 复制主程序和**所有插件**到 `/opt/rk3588-media-server/`
3. 复制模型文件
4. **自动修复配置文件**处理路径、禁用无输入的gate节点
5. 安装并启动systemd服务
### 3. 修改RTSP源地址
编辑配置文件修改为你的RTSP源
```bash
sudo nano /opt/rk3588-media-server/etc/media-server.json
```
找到 `"url": "rtsp://..."`,改成你的摄像头/推流地址。
### 4. 管理服务
```bash
# 查看状态
sudo ./scripts/systemd/status.sh
# 或手动管理
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 # 实时跟踪
sudo journalctl -u media-server -n 100 # 最近100行
```
## 目录结构
安装后的目录结构:
```
/opt/rk3588-media-server/
├── bin/
│ ├── media-server # 主程序
│ └── plugins/ # 插件目录
│ ├── libinput_rtsp.so
│ ├── libpublish.so
│ ├── libpreprocess.so
│ ├── libai_yolo.so
│ └── ...
├── lib/ # 依赖库
├── etc/
│ └── media-server.json # 配置文件
├── models/ # 模型文件
│ ├── yolov5s-640-640.rknn
│ └── ...
├── web/hls/ # HLS输出目录
└── logs/ # 日志目录
```
## 故障排查
### 服务启动失败
```bash
# 1. 查看详细错误
sudo journalctl -u media-server -n 50 --no-pager
# 2. 检查插件是否存在
ls -la /opt/rk3588-media-server/bin/plugins/
# 3. 检查模型文件
ls -la /opt/rk3588-media-server/models/
# 4. 直接运行看错误
sudo /opt/rk3588-media-server/bin/media-server --config /opt/rk3588-media-server/etc/media-server.json
```
### 常见错误
**错误1**: `Failed to load plugin 'input_rtsp': ... No such file or directory`
- 原因:插件未复制
- 解决:重新运行 `sudo ./scripts/systemd/install.sh`
**错误2**: `Node gate_face_cam1 role=filter must have input`
- 原因配置文件中的gate节点没有输入连接
- 解决:安装时选择 `test_cam1_face_det_rtsp_server.json`选项1或手动禁用该节点
**错误3**: `Failed to open input: Connection refused`
- 原因RTSP源无法连接
- 解决检查RTSP源地址和端口
## 卸载
```bash
sudo ./scripts/systemd/uninstall.sh
```
会保留配置备份到 `/root/rk3588-backup-xxx/`
## 更新配置
修改配置后重启服务:
```bash
sudo nano /opt/rk3588-media-server/etc/media-server.json
sudo systemctl restart media-server
```
## 相关文档
- [命令.md](../../docs/命令.md) - 开发和部署命令参考
- [API_Device_RemoteMgmt_InterfaceTable.md](../../API_Device_RemoteMgmt_InterfaceTable.md) - Agent API文档