151 lines
3.9 KiB
Markdown
151 lines
3.9 KiB
Markdown
# 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文档
|