智慧园区 FFmpeg 音视频自动化运维系统

项目交付文档

文档版本:V1.0
交付日期:[填写实际交付日期]
适用场景:智慧园区摄像头录制、AI 视频预处理、存储管理、告警运维
维护团队:[填写运维团队名称]


目录

  1. 项目概述
  2. 系统架构与功能清单
  3. 部署验收报告
  4. 日常运维手册
  5. 应急响应预案
  6. 附件

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 分钟)

  1. 压缩功能检查:查看压缩日志 grep "压缩完成" /data/park/logs/history_record_compress.log,确认每周日凌晨压缩任务执行成功。
  2. 日志轮转检查:查看 /data/park/logs 目录,确认存在 .log.gz 压缩日志文件。
  3. AI 预处理检查:查看 /data/park/ai_input 目录,确认预处理文件生成正常,无重复文件。
  4. 服务器资源检查:执行 top 命令,确认 CPU 占用 < 70%,内存占用 < 60%。

4.3 每月维护(1 小时)

  1. 录像归档清理:执行 find /data/park/record -name "*.mp4" -mtime +30 -delete,删除超过 30 天的录像文件(可根据需求调整天数)。
  2. 脚本配置备份:将 /data/park/scripts 目录打包备份至远程服务器:tar -zcvf park_scripts_$(date +%Y%m%d).tar.gz /data/park/scripts
  3. 软件版本更新:执行 sudo apt update && sudo apt upgrade ffmpeg -y,更新 FFmpeg 至最新版本,修复已知漏洞。
  4. 配置参数优化:根据实际运行情况,调整告警阈值、压缩 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 企微/钉钉Webhook
2. 检查服务器网络是否能访问外网(ping qyapi.weixin.qq.com
3. 查看告警日志:grep "错误" /data/park/logs/disk_monitor.log
4. 重新配置机器人 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
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐