【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:将第二个摄像头画面叠加到画布右侧
相关推荐
xmRao13 小时前
Qt+FFmpeg 实现 PCM 音频转 AAC 编码
qt·ffmpeg·pcm
xmRao13 小时前
Qt+FFmpeg 实现录音程序(pcm转wav)
qt·ffmpeg
阿里巴啦2 天前
python+yt-dlp开源项目,支持 YouTube, Bilibili, TikTok/抖音,快手 等多个平台的视频/音频/字幕下载/ai摘要等功能
python·ffmpeg·whisper·音视频·视频处理·ai摘要·音视频转录
来鸟 鸣间3 天前
linux下ffmpeg源码编译
linux·运维·ffmpeg
Echo_NGC22373 天前
【FFmpeg使用指南】Part 2:滤镜图架构与信号处理
架构·ffmpeg·音视频·信号处理
Echo_NGC22373 天前
【FFmpeg使用指南】Part 1:核心架构与媒体流处理
ffmpeg·音视频·媒体·视频
ssxueyi3 天前
用 Claude Code 从零开发自己的Direct3D 硬件加速播放器
ffmpeg·ai编程·directx·视频播放器·从零开始·claude code·csdn征文活动
Yan_uuu3 天前
ubuntu18.04 安装 x264、ffmpeg、nv-codec-hearers 支持GPU硬件加速
c++·图像处理·ubuntu·ffmpeg
runner365.git3 天前
做一个基于ffmpeg的AI Agent智能体
人工智能·ffmpeg·大模型
彷徨而立4 天前
【FFmpeg】理解 av_packet_from_data 和 av_packet_unref 接口
ffmpeg