【FFmpeg 智慧园区场景应用】1.实战命令清单

智慧园区中,FFmpeg 主要用于摄像头流处理、视频监控录像、AI 分析预处理、流媒体分发等场景,以下是针对性的实战命令,适配园区安防、设备监控、视频分析等需求。

一、 摄像头流拉取与录制(RTSP/RTMP 协议)

智慧园区摄像头多采用 RTSP 协议,以下命令可实现流拉取、本地录制、格式转换。

1. 实时拉取 RTSP 流并保存为 MP4 文件

bash 复制代码
# 基础录制(按默认编码,适合长时间录像)
ffmpeg -i rtsp://admin:password@192.168.1.100:554/stream1 -c copy -f mp4 park_record.mp4

# 高性能录制(禁用缓冲,避免断流)
ffmpeg -rtsp_transport tcp -i rtsp://admin:password@192.168.1.100:554/stream1 -c copy -f mp4 park_record.mp4

参数说明:

  • -rtsp_transport tcp:强制使用 TCP 传输(UDP 易丢包,适合园区远距离传输)
  • admin:password:摄像头的登录账号密码
  • 192.168.1.100:554:摄像头 IP 与 RTSP 端口

2. 定时分段录制(避免单个文件过大)

适合园区 24h 监控,按小时/天自动分割文件:

bash 复制代码
ffmpeg -rtsp_transport tcp -i rtsp://admin:password@192.168.1.100:554/stream1 -c copy -f segment -segment_time 3600 -segment_format mp4 "park_record_%Y%m%d_%H%M%S.mp4"

参数说明:

  • -segment_time 3600:每 3600 秒(1 小时)分割一次
  • %Y%m%d_%H%M%S:按时间戳命名文件,便于检索

3. 拉取流并推送到园区流媒体服务器(RTMP)

用于园区大屏展示、多终端共享监控画面:

bash 复制代码
ffmpeg -rtsp_transport tcp -i rtsp://admin:password@192.168.1.100:554/stream1 -c:v libx264 -c:a aac -f flv rtmp://192.168.1.200:1935/live/park_camera1

参数说明:

  • 192.168.1.200:1935:园区流媒体服务器 IP 与端口
  • live/park_camera1:流名称(用于终端拉流标识)

二、 AI 视频分析预处理命令

智慧园区的 AI 分析(如人脸识别、车辆识别、行为检测)对输入视频有严格要求,FFmpeg 可完成分辨率统一、帧率调整、格式转换等预处理。

1. 统一视频分辨率(适配 AI 模型输入尺寸)

AI 模型常要求 1080P/720P 输入,批量转换园区摄像头录像:

bash 复制代码
# 转 1080P(1920x1080)
ffmpeg -i camera_input.mp4 -s 1920x1080 -c:v libx264 -preset fast -c:a copy ai_input_1080p.mp4

# 转 720P(1280x720)
ffmpeg -i camera_input.mp4 -s 1280x720 -c:v libx264 -preset fast -c:a copy ai_input_720p.mp4

参数说明:

  • -preset fast:平衡转码速度与压缩率,适合批量处理

2. 调整帧率(降低 AI 计算量)

多数 AI 分析无需 30fps,降至 10-15fps 可大幅减少算力消耗:

bash 复制代码
ffmpeg -i camera_input.mp4 -r 15 -c:v libx264 -c:a copy ai_input_15fps.mp4

参数说明:

  • -r 15:设置输出帧率为 15fps

3. 提取关键帧(用于 AI 图片检测)

从监控视频中按时间间隔提取帧,生成图片数据集:

bash 复制代码
# 每 5 秒提取 1 帧
ffmpeg -i camera_input.mp4 -vf "fps=1/5" -q:v 2 park_frame_%04d.jpg

参数说明:

  • fps=1/5:每 5 秒 1 帧(fps=1 则每秒 1 帧)
  • -q:v 2:图片质量(0-31,数值越小质量越高)
  • %04d:4 位数字序号命名(0001、0002...)

4. 去除视频音频流(纯视频流用于 AI 分析)

AI 视觉分析无需音频,去除后减小文件体积:

bash 复制代码
ffmpeg -i camera_input.mp4 -an -c:v copy ai_video_only.mp4

参数说明:

  • -an:禁用音频流

三、 园区视频监控录像管理命令

1. 批量压缩历史录像(节省存储)

园区录像文件量大,用 H.265 编码压缩(比 H.264 节省 50% 空间):

bash 复制代码
ffmpeg -i old_record.mp4 -c:v libx265 -crf 28 -c:a aac compressed_record.mp4

参数说明:

  • -crf 28:画质参数(0-51,数值越小画质越高,28 为平衡值)

2. 录像文件格式转换(兼容园区管理平台)

将老旧 AVI 格式转为平台支持的 MP4 格式:

bash 复制代码
ffmpeg -i old_record.avi -c:v libx264 -c:a aac -movflags +faststart park_record.mp4

参数说明:

  • -movflags +faststart:优化 MP4 文件,支持边下载边播放

3. 提取录像中的异常片段(按时间截取)

从全天录像中截取指定时间段的异常片段(如人员闯入时段):

bash 复制代码
# 截取 2024-05-20 14:30:00 至 14:35:00 的片段
ffmpeg -ss 08:30:00 -i full_day_record.mp4 -to 08:35:00 -c copy abnormal_segment.mp4

参数说明:

  • -ss 放在 -i 前:快速定位到起始时间(无需解码全片)

四、 多摄像头流合成(园区全景拼接)

将多个摄像头画面合成一个分屏画面,用于园区总控中心大屏:

bash 复制代码
# 2 路摄像头画面左右拼接
ffmpeg -i rtsp://cam1_ip/stream -i rtsp://cam2_ip/stream -filter_complex "[0:v]scale=640:360,pad=1280:360:0:0[v0];[1:v]scale=640:360[v1];[v0][v1]overlay=640:0" -c:v libx264 -f flv rtmp://server_ip/live/panorama

参数说明:

  • scale=640:360:将每个摄像头画面缩放到 640x360
  • pad=1280:360:0:0:创建 1280x360 的画布
  • overlay=640:0:将第二个摄像头画面叠加到画布右侧
相关推荐
天虎2 小时前
使用VS2019编译ShiftMediaProject版本FFmpeg
ffmpeg
kkoral3 小时前
【FFmpeg 智慧园区场景应用】2.自动化处理 Shell 脚本
运维·ffmpeg·自动化
代码煮茶君14 小时前
FFmpeg 音视频转码全攻略:参数详解与实战指南
ffmpeg·音视频
深念Y1 天前
录屏意外中断的视频修复软件 untrunc
ffmpeg·文件·视频·录屏·软件·修复工具·untrunc
Black蜡笔小新1 天前
国标设备如何在EasyCVR视频汇聚平台获取RTSP/RTMP流?
网络·ffmpeg·音视频
lcyw2 天前
GB28181: 使用ffmpeg编码h264为ps流
ffmpeg
weixin_462446232 天前
使用 Python + FFmpeg 将 MP4 视频与 SRT 字幕无损合并(支持中文)
python·ffmpeg·音视频
winfredzhang3 天前
实战:从零构建一个支持屏幕录制与片段合并的视频管理系统 (Node.js + FFmpeg)
ffmpeg·node.js·音视频·录屏
winfredzhang3 天前
自动化视频制作:深入解析 FFmpeg 图片转视频脚本
ffmpeg·自动化·音视频·命令行·bat·图片2视频