命令行基础与帮助系统
本教程共 32 篇 · 第 3 篇 · 更新于 2026-08-09 · 约 5 分钟阅读
本节目标:记住 ffmpeg 命令的固定结构,学会用内置帮助自己查参数,不用事事翻网页。
命令的五段式
一条完整的 ffmpeg 命令可以拆成五部分:
ffmpeg [全局参数] [输入文件参数] -i 输入文件 [输出文件参数] 输出文件
举个具体例子:
ffmpeg -y -ss 00:00:10 -i input.mp4 -c:v libx264 -c:a aac output.mp4
逐个拆开看:
ffmpeg:程序名。-y:全局参数,输出文件已存在时直接覆盖,不弹确认。-ss 00:00:10:输入参数,定位到第 10 秒开始读。-i input.mp4:指定输入文件。-c:v libx264 -c:a aac:输出参数,分别指定视频和音频编码器。output.mp4:输出文件。
参数多的时候可以用反斜杠换行,方便阅读:
ffmpeg \
-y \
-i input.mp4 \
-c:v libx264 \
-c:a aac \
output.mp4
NoteWindows PowerShell 里换行符是反引号
`,不是反斜杠。CMD 里用^。
参数的两种位置
同一个参数放在 -i 前还是后,作用对象不一样。
- 输入参数(
-i之前):作用于输入文件,比如-ss定位、-f指定输入格式。 - 输出参数(
-i之后):作用于输出文件,比如-c:v、-b:v、-vf。
这个区别后面讲截取时非常关键。现在先建立意识:参数的位置有意义。
最常用的全局参数
-y:自动覆盖输出文件,不问。-n:如果输出文件已存在就退出,不覆盖。-hide_banner:隐藏开头那一大段版权和编译信息,只留实际输出。-v或-loglevel:控制日志详细程度,常用值有quiet、error、warning、info、debug。-version:显示版本。-formats、-codecs、-encoders、-decoders、-filters、-pix_fmts、-sample_fmts:列出支持的各类能力。-h、-h long、-h full:帮助。
查看一个文件的基本信息,不带 -i 的值也能行:
ffmpeg -i input.mp4 -hide_banner
FFmpeg 会因为没给输出文件而报错,但在报错前会打印出输入文件的所有流信息,正好用来侦察。
帮助系统:三级详细度
-h 有三个级别,参数越多越啰嗦。
-h:基础帮助
ffmpeg -h
打印命令格式、常用全局选项和主要的 AVOptions。快速查参数写法时用这个。
-h long:高级帮助
ffmpeg -h long
比 -h 多出更多高级选项,包括格式、编码器、协议的细节。日常查资料够用了。
-h full:完整帮助
ffmpeg -h full
把所有能列的选项全打出来,包括所有滤镜、编码器、协议、设备的完整参数。输出非常长,建议重定向到文件里看:
ffmpeg -h full > ffmpeg-help.txt
然后用编辑器搜索关键词。
查具体组件的帮助
光看完整帮助太费劲。你可以把组件名跟在 -h 后面,只看那一项。
查某个编码器
ffmpeg -h encoder=libx264
会列出 libx264 支持的所有私有选项,比如 preset、crf、tune,以及它们的取值范围。
查某个解码器
ffmpeg -h decoder=h264
查某个封装/解封装格式
ffmpeg -h muxer=mp4
ffmpeg -h demuxer=mov
查某个滤镜
ffmpeg -h filter=scale
会告诉你 scale 滤镜接受哪些参数、每个参数是什么类型。这是最常用的查法之一。
查某个协议
ffmpeg -h protocol=http
列出支持的能力
这些命令帮你判断「当前装的 ffmpeg 到底能不能干某件事」。
ffmpeg -version # 版本号和编译选项
ffmpeg -buildconf # 编译配置,看启用了哪些库
ffmpeg -formats # 支持的封装格式(muxer + demuxer)
ffmpeg -codecs # 支持的编解码(只列名字和描述)
ffmpeg -encoders # 可用的编码器
ffmpeg -decoders # 可用的解码器
ffmpeg -filters # 可用的滤镜
ffmpeg -pix_fmts # 支持的像素格式
ffmpeg -sample_fmts # 支持的音频采样格式
ffmpeg -layouts # 支持的声道布局
ffmpeg -devices # 支持的输入输出设备
ffmpeg -protocols # 支持的协议
Windows PowerShell 下可以配合 Select-String 过滤:
ffmpeg -encoders | Select-String x265
ffmpeg -filters | Select-String scale
Linux/macOS 下用 grep:
ffmpeg -encoders | grep x265
Tip当你看到一条命令报错「Unknown encoder ‘libfdk_aac’」,先跑一下
ffmpeg -encoders看自己装的版本里到底有没有这个编码器。不同编译版本的能力差别很大。
看日志排错
默认日志级别是 info,会打印大量处理过程。出错时把日志级别调到 debug 能看到更多细节:
ffmpeg -v debug -i input.mp4 output.mp4
反过来,只想看错误:
ffmpeg -v error -i input.mp4 output.mp4
写脚本时用 -v error 很合适,正常信息不输出,有问题才报警。
小结
记住这几条就够了:
- 命令结构是
ffmpeg 全局参数 输入参数 -i 输入 输出参数 输出。 - 查参数用
ffmpeg -h filter=滤镜名或ffmpeg -h encoder=编码器名。 - 查能力用
-encoders、-decoders、-filters、-formats。 - 加
-hide_banner让输出清爽,加-y自动覆盖。
下一章我们真正跑第一条命令,把视频从一个格式转成另一个格式。