摘要:
FFmpeg 是一套开源音视频处理命令行工具,包含多个核心库和命令行工具。它能帮助电商相关开发者和运维人员批量处理音视频任务,例如将商品视频进行格式转换(如MOV转MP4)、从视频中提取音频、按时间剪辑或拼接视频片段、调整分辨率或帧率,以及处理RTMP、HLS等流媒体协议。该工具尤其适合需要在服务器上写脚本进行批量转码、截图、压缩、生成预览图的后端/服务端开发者,以及从事音视频客户端开发和自动化流程的运维人员。

FFmpeg:处理音视频的命令行工具
FFmpeg 是一套开源音视频处理工具,包含 libavcodec、libavformat 等7个核心库和3个命令行工具,在 GitHub 上有 64k star。开发者用它转格式、剪片段、提取音频、查看流媒体信息,通常一条命令就能完成。
适合谁
后端 / 服务端开发者:需要在服务器上批量处理视频转码、截图、拼接。FFmpeg 是命令行工具,没有图形界面,适合写进脚本调用。
音视频客户端开发者:做播放器、编辑器、直播推流。FFmpeg 的库提供了编码解码、滤镜、设备接入功能,不用自己从零写底层。
运维和自动化爱好者:处理监控视频存档、批量转码压缩、生成预览图。FFmpeg 能放进 shell 脚本和 CI 流程,用命令自动完成。
能解决什么问题
格式转换:把 MOV 转成 MP4、从视频里提取 MP3 音频、把 WebM 转成 GIF。比如用一条命令把 input.mp4 转成 output.avi,编解码参数交给 FFmpeg 自动处理。
视频剪辑和拼接:按时间截取片段、把多个文件接在一起、调整分辨率或帧率。用 -ss 指定开始时间,-t 指定时长,配合滤镜还能做画中画、加字幕、调音量。
流媒体处理:支持 RTMP、HLS 等协议,可以把本地视频推到直播服务器,或者把直播流保存成文件。libavformat 库负责读写各种流协议和容器格式。
文件分析排查:用 ffprobe 命令直接输出文件的编码格式、分辨率、码率、时长这些信息,排查播放问题比用播放器点菜单快。
怎么开始用
去官网下载对应系统的构建版本,或者用包管理器安装。Windows 用户解压后,把 bin 目录加到系统 PATH 里。
基础转换命令:
ffmpeg -i input.mp4 output.avi
查看文件信息:
ffprobe input.mp4
播放文件:
ffplay input.mp4
更多命令看 doc/ 目录的离线文档,或者查官网和 wiki。
优点和坑
优点
- 覆盖面广:编解码、容器格式、滤镜、设备接入、流协议,多媒体处理的需求基本都覆盖了。
- 命令行友好:适合写脚本批量处理,不依赖图形界面,服务器上也能跑。
- 文档齐全:仓库
doc/目录有离线文档,官网和 wiki 有在线版,doc/examples里还有 C 语言示例。
坑
- 学习曲线陡:参数特别多,滤镜语法复杂,新手容易懵,得边查文档边用。
- 编译安装不轻松:从源码编译要配一堆依赖和选项,普通用户建议直接用官方构建版本或包管理器装,别自己从头编。
- 协议是 NOASSERTION:仓库本身没明确声明 LICENSE,代码主体是 LGPL,部分组件是 GPL,商业分发前得理清自己的用法是否符合条款。
- GitHub 上不接受 PR:官方只通过邮件列表收补丁,GitHub 上的提交会被忽略,提交代码要走官方流程。
适合你吗
适合:经常在命令行处理音视频的开发者——转码、分析、写批处理脚本、调试流媒体,FFmpeg 可能是最省事的方案。
不太适合:只想偶尔转个格式、不想碰命令行的普通用户,图形界面工具更好上手;需要官方技术支持的商业项目,得自己评估协议和使用风险。
> 以上内容基于官方 README 与公开文档整理,不构成使用推荐。FFmpeg 用法灵活,具体命令参数请以你所用版本的官方文档为准。
常见问题
FFmpeg 是干什么用的?
FFmpeg 是一套开源音视频处理工具,主要用来转格式(比如 MOV 转 MP4)、剪辑拼接视频、提取音频、处理流媒体(像 RTMP、HLS)以及查看文件信息(编码、分辨率、时长等)。它通过命令行操作,适合开发者写脚本批量处理。
FFmpeg 怎么安装?
安装 FFmpeg:访问官网下载对应你操作系统的构建版本,或者用系统包管理器(比如 apt、brew)安装。Windows 用户下载解压后,把 bin 目录的路径加到系统 PATH 环境变量里,就能在命令行里用了。
FFmpeg 有哪些常用命令?
FFmpeg 基础命令包括:格式转换(ffmpeg -i input.mp4 output.avi)、查看文件详细信息(ffprobe input.mp4)、播放文件(ffplay input.mp4)。高级命令涉及剪辑(用 -ss 设开始时间,-t 设时长)、拼接、调分辨率帧率等。
FFmpeg 怎么从视频里抽帧?
用 FFmpeg 的 -ss(指定开始时间)和 -vf(视频滤镜)参数抽帧。例如,命令 ffmpeg -i input.mp4 -ss 00:00:01 -vframes 1 output.jpg 可以从视频第1秒抽一张帧存为图片。批量抽帧可以配合 -r(帧率)参数实现。
FFmpeg 是免费的吗?
FFmpeg 开源免费,代码主体是 LGPL 协议,部分组件是 GPL 协议。个人和商业项目都能免费使用,但商业分发前需要仔细核对你的使用方式是否符合相关开源协议条款。
相关工具推荐
- 免费高清直播推流软件 OBS Studio,可与 FFmpeg 配合处理流媒体
- 商品视频批量配音工具 VoiceStudio,与 FFmpeg 同为本地化音视频处理工具
- 语音克隆工具 MockingBird,可与 FFmpeg 结合用于视频音频替换与处理
官方地址,点开新窗口;本文仅为工具介绍,与该项目无隶属关系。


