【FFmpeg 智慧园区场景应用】9.项目交付文档模板
·
智慧园区 FFmpeg 音视频自动化运维系统
项目交付文档
文档版本:V1.0
交付日期:[填写实际交付日期]
适用场景:智慧园区摄像头录制、AI 视频预处理、存储管理、告警运维
维护团队:[填写运维团队名称]
目录
1. 项目概述
1.1 项目背景
为解决智慧园区摄像头音视频数据录制分散、人工处理效率低、存储成本高、故障响应慢等问题,搭建基于 FFmpeg 的自动化运维系统,实现 24h 自动录制、批量 AI 预处理、历史录像压缩、磁盘监控告警、多摄像头集群管理 全流程闭环,支撑园区安防监控、AI 行为分析等业务需求。
1.2 核心目标
- 实现园区所有摄像头 RTSP 流的稳定录制与分段存储,支持故障自动重启。
- 完成录像批量标准化预处理,适配 AI 分析模型输入要求。
- 基于 H.265 编码压缩历史录像,节省 50% 以上存储资源。
- 构建磁盘监控与多渠道告警机制,避免存储溢出风险。
- 支持多摄像头集群一键运维,降低大规模部署管理成本。
1.3 环境依赖
| 环境类型 | 配置要求 |
|---|---|
| 服务器系统 | Linux(Ubuntu 20.04+/CentOS 7+) |
| 硬件配置 | 8 核 16G 以上 CPU/内存,存储根据摄像头数量扩容 |
| 软件依赖 | FFmpeg(支持 libx264/libx265)、curl、cron、logrotate |
| 网络要求 | 服务器与摄像头内网互通,服务器可访问企业微信/钉钉 API |
2. 系统架构与功能清单
2.1 系统架构图
┌─────────────────┐ ┌─────────────────────────────────────┐
│ 园区摄像头集群 │ │ 运维服务器 │
│ (RTSP 协议) │───>│ ┌──────────┐ ┌────────────────┐ │
└─────────────────┘ │ │录制模块 │ │ 存储管理模块 │ │
│ │(故障重启) │ │ (压缩+清理) │ │
┌─────────────────┐ │ └──────────┘ └────────────────┘ │
│ 运维终端 │<───│ ┌──────────┐ ┌────────────────┐ │
│ (批量启停/监控) │ │ │预处理模块│ │ 告警监控模块 │ │
└─────────────────┘ │ │(AI 标准化)│ │ (企微/钉钉) │ │
│ └──────────┘ └────────────────┘ │
└─────────────────────────────────────┘
│
▼
┌─────────────────────┐
│ 企微/钉钉运维群 │
│ (告警/恢复通知) │
└─────────────────────┘
2.2 核心功能清单
| 模块名称 | 核心脚本 | 功能描述 |
|---|---|---|
| 摄像头录制模块 | camera_record.sh camera_batch_manage.sh |
单摄像头 24h 分段录制、故障自动重启;多摄像头集群一键启动/停止/状态监控 |
| AI 预处理模块 | batch_ai_preprocess.sh |
批量统一录像分辨率(720P)、帧率(15fps)、去除音频,适配 AI 模型输入 |
| 存储管理模块 | history_record_compress.sh |
按时间筛选历史录像,H.265 编码压缩,节省 50% 存储;支持原文件保留/删除 |
| 告警监控模块 | disk_monitor_alert.sh |
磁盘使用率实时监控,超阈值触发企微/钉钉告警;支持静默周期防重复、恢复通知 |
| 日志管理模块 | logrotate 配置 |
日志自动轮转压缩,保留 30 天历史日志,避免磁盘占用 |
3. 部署验收报告
3.1 验收结论
| 验收项目 | 验收结果 | 判定标准 | 备注 |
|---|---|---|---|
| 基础环境配置 | □ 合格 □ 不合格 | FFmpeg 及依赖工具安装正常,目录权限正确,摄像头连通性达标 | 参考验收清单基础环境项 |
| 核心脚本功能 | □ 合格 □ 不合格 | 录制、预处理、压缩功能 100% 达标,断点续跑、故障重启生效 | 参考验收清单核心脚本项 |
| 告警监控功能 | □ 合格 □ 不合格 | 告警触发、静默周期、恢复通知功能正常,定时任务执行稳定 | 参考验收清单告警监控项 |
| 多摄像头批量运维 | □ 合格 □ 不合格 | 集群一键启停、状态监控功能正常,大规模部署无进程崩溃 | 参考验收清单批量运维项 |
| 最终结论 | □ 整体合格 □ 整改后重验 | 所有核心项 100% 合格,非核心项通过率 ≥ 95% | 合格则可正式上线 |
3.2 验收签字确认
| 角色 | 姓名 | 签字 | 日期 |
|---|---|---|---|
| 甲方验收负责人 | |||
| 乙方交付负责人 |
4. 日常运维手册
4.1 每日巡检(5 分钟)
| 巡检项 | 操作命令 | 正常状态 | 异常处理 |
|---|---|---|---|
| 录制进程状态 | ./camera_batch_manage.sh status |
所有摄像头状态为「运行中」 | 对「已停止」摄像头,查看日志排查 RTSP/网络问题,执行 start 重启 |
| 磁盘使用率 | df -h /data/park |
使用率 < 85%(告警阈值) | 手动执行压缩脚本:./history_record_compress.sh,清理 30 天前录像 |
| 告警日志检查 | tail -f /data/park/logs/disk_monitor.log |
无「告警」关键字,或告警已处理 | 若有未处理告警,立即清理磁盘空间 |
| 录像文件生成 | `ls -lh /data/park/record/cam001 | grep $(date +%Y%m%d)` | 有当日命名的 MP4 文件 |
4.2 每周巡检(30 分钟)
- 压缩功能检查:查看压缩日志
grep "压缩完成" /data/park/logs/history_record_compress.log,确认每周日凌晨压缩任务执行成功。 - 日志轮转检查:查看
/data/park/logs目录,确认存在.log.gz压缩日志文件。 - AI 预处理检查:查看
/data/park/ai_input目录,确认预处理文件生成正常,无重复文件。 - 服务器资源检查:执行
top命令,确认 CPU 占用 < 70%,内存占用 < 60%。
4.3 每月维护(1 小时)
- 录像归档清理:执行
find /data/park/record -name "*.mp4" -mtime +30 -delete,删除超过 30 天的录像文件(可根据需求调整天数)。 - 脚本配置备份:将
/data/park/scripts目录打包备份至远程服务器:tar -zcvf park_scripts_$(date +%Y%m%d).tar.gz /data/park/scripts。 - 软件版本更新:执行
sudo apt update && sudo apt upgrade ffmpeg -y,更新 FFmpeg 至最新版本,修复已知漏洞。 - 配置参数优化:根据实际运行情况,调整告警阈值、压缩 CRF 值、静默周期等参数,提升系统性能。
5. 应急响应预案
5.1 紧急故障处理流程
| 故障类型 | 现象 | 处理步骤 |
|---|---|---|
| 全量录制中断 | 所有摄像头状态为「已停止」,无新录像生成 | 1. 执行 ./camera_batch_manage.sh stop 停止残留进程2. 检查服务器网络是否连通摄像头集群 3. 检查磁盘是否满额( df -h),清理空间4. 执行 ./camera_batch_manage.sh start 重启所有进程 |
| 磁盘存储溢出 | 告警频繁触发,df -h 显示使用率 100% |
1. 紧急停止预处理/压缩脚本,优先保证录制 2. 手动删除超过 7 天的历史录像( find /data/park/record -mtime +7 -delete)3. 执行压缩脚本,对近期录像批量压缩 4. 扩容服务器存储或调整录像保留天数 |
| 告警消息未收到 | 磁盘使用率超阈值,但群聊无告警 | 1. 检查 Webhook 地址是否正确:curl -I 企微/钉钉Webhook2. 检查服务器网络是否能访问外网( ping qyapi.weixin.qq.com)3. 查看告警日志: grep "错误" /data/park/logs/disk_monitor.log4. 重新配置机器人 Webhook,测试发送 |
| 大规模进程崩溃 | 部分摄像头进程消失,状态显示「已停止」 | 1. 查看对应摄像头日志,排查 RTSP 地址错误或摄像头离线 2. 检查服务器资源,若 CPU/内存占用过高,升级硬件或延长启动延迟 3. 执行 ./camera_batch_manage.sh start 重启故障进程 |
5.2 应急联系方式
| 角色 | 姓名 | 联系电话 | 职责 |
|---|---|---|---|
| 运维负责人 | 统筹故障处理,协调资源 | ||
| 技术支持工程师 | 脚本问题排查,功能修复 | ||
| 摄像头设备负责人 | 摄像头在线状态排查,网络故障处理 |
6. 附件
附件 1:脚本目录清单
/data/park/scripts/
├── camera_list.conf # 摄像头集群配置文件
├── camera_record.sh # 单摄像头录制脚本(带故障重启)
├── camera_batch_manage.sh # 多摄像头批量管理脚本
├── batch_ai_preprocess.sh # 批量 AI 预处理脚本
├── history_record_compress.sh # 历史录像压缩脚本
├── disk_monitor_alert.sh # 磁盘监控告警脚本
└── park_ffmpeg # logrotate 日志轮转配置文件
附件 2:核心配置参数说明
| 参数名称 | 配置文件 | 默认值 | 调整建议 |
|---|---|---|---|
ALERT_THRESHOLD |
disk_monitor_alert.sh |
85% | 磁盘容量小时可调低至 80% |
SILENT_PERIOD |
disk_monitor_alert.sh |
3600s | 避免频繁告警,建议 3600s(1 小时) |
KEEP_DAYS |
history_record_compress.sh |
7 天 | 按园区录像保留政策调整 |
SEGMENT_TIME |
camera_record.sh |
3600s | 需快速检索片段可调整为 1800s(30 分钟) |
CRF |
history_record_compress.sh |
28 | 追求画质设为 23-26,追求压缩率设为 28-32 |
更多推荐
所有评论(0)