FFmpeg

开源音视频处理工具集,支持转码、mux/demux、滤镜、抽帧、场景检测等。

#type / resource #status / evergreen #media / video #media / tool

[!info] related notes

FFmpeg

这是什么

FFmpeg 是开源音视频处理的事实标准工具集。几乎所有的视频播放器、转码服务、流媒体平台底层都依赖它。

核心组件:

  • ffmpeg:音视频转换、滤镜处理、流媒体推送
  • ffprobe:获取媒体文件的元数据(时长、帧率、分辨率、编码格式)
  • ffplay:简单播放器(开发调试用)

适用平台

Windows、macOS、Linux、Docker。可通过包管理器安装或下载静态构建。

# Windows (winget)
winget install ffmpeg

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

核心能力

1. 转码与格式转换

# mp4 转 webm
ffmpeg -i input.mp4 output.webm

# 指定编码器
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4

2. 获取媒体信息

# 获取时长、帧率、分辨率
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

3. 抽帧

# 每秒抽 1 帧
ffmpeg -i input.mp4 -vf "fps=1" frames/frame_%03d.jpg

# 按时间点抽单帧
ffmpeg -ss 5.0 -i input.mp4 -frames:v 1 frame.jpg

4. 场景检测

详见 FFmpeg 镜头检测

ffmpeg -i input.mp4 -vf "select='gt(scene,0.3)',showinfo" -f null - 2> scene.log

5. 滤镜系统

FFmpeg 的 -vf / -filter_complex 支持链式滤镜:

  • scale:缩放
  • crop:裁剪
  • fps:帧率转换
  • select:条件选择帧
  • showinfo:输出帧信息(含 pts_time)
  • drawtext:叠加文字
  • overlay:画中画

6. 音频处理

# 提取音频
ffmpeg -i input.mp4 -vn output.mp3

# 调节音量
ffmpeg -i input.mp4 -af "volume=0.5" output.mp4

局限

  • 纯命令行工具,没有 GUI(复杂操作需要写脚本)
  • 参数语法晦涩,复杂滤镜链容易出错
  • 场景检测是像素级变化检测,不是 AI 语义理解
  • 阈值需要针对不同视频调参

常见用途

  • 视频转码和格式适配
  • 批量抽帧用于 AI 分析
  • 镜头切换点检测
  • 视频合成和剪辑(拼接、裁剪、加字幕)
  • 直播推流
  • 提取音频/字幕

相关链接

创建于 2026/6/8 更新于 2026/6/8