FFmpeg 是一套命令行工具,装好之后没有窗口、没有图标,但它是绝大多数转码软件、剪辑工具和录屏程序的底层。学会几条命令,处理视频就不用再找「免费转换器」了。
Windows 安装
官方不提供 Windows 安装包,需要用社区构建(gyan.dev 或 BtbN)。步骤很短:
- 下载 full 版本压缩包,解压到固定目录,例如
D:\tools\ffmpeg - 把
D:\tools\ffmpeg\bin加入系统环境变量 PATH - 新开一个命令行窗口,执行
ffmpeg -version,能看到版本号就成功了
先装 ffprobe 的好处是能看懂源文件:ffprobe input.mp4 会列出容器、编码、码率、帧率与音轨信息,后面选参数时心里有数。
最常用的几条命令
1. 转码压缩
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k out.mp4
CRF 是质量档位,数值越小越清晰、文件越大:18 接近视觉无损,23 是常用平衡点,28 以上开始出现明显压缩痕迹。只想改容器不改画质,用 -c copy,几秒就能完成。
2. 按时间剪切
ffmpeg -ss 00:01:30 -i in.mp4 -t 30 -c copy out.mp4
-ss 是起点,-t 是持续时长(也可以用 -to 指定终点)。配合 -c copy 不重新编码,速度快,但切点可能落在关键帧上,需要精确到帧就别用 copy。
3. 合并多段视频
先把要合并的文件写进 list.txt(每行 file 'a.mp4'),再执行:
ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4
前提是各段的编码参数一致,否则要先统一转码再合并。
4. 提取音轨 / 去音轨
ffmpeg -i in.mp4 -vn -c:a copy audio.m4a 抽音频;ffmpeg -i in.mp4 -an -c:v copy silent.mp4 去掉声音。
5. 截图与动图
ffmpeg -ss 00:00:10 -i in.mp4 -frames:v 1 shot.png 抓一帧;把 -frames:v 1 换成 -vf fps=10,scale=480:-1 并输出 gif,就能做预览动图。
6. 批量处理
Windows 下可以用 for 循环,或写成 PowerShell 脚本遍历目录:
for %f in (*.mov) do ffmpeg -i "%f" -c:v libx264 -crf 24 "%~nf.mp4"
几个容易踩的坑
- 参数顺序很重要:
-ss放在-i前面是快速定位,放在后面是解码后定位 - 文件名带空格或中文时,命令里要加引号
- 输出格式由扩展名和
-f决定,写错扩展名会报「无法识别的输出格式」 - 处理重要素材前,先剪一个小片段试参数,确认没问题再批量跑
要不要图形界面
偶尔转一个视频,用 HandBrake 更直观;需要批量、自动化、或者参数要精确控制时,FFmpeg 才是正解。两者用的是同一套底层库,输出质量没有本质差别。