首页 / FFmpeg 入门教程 / 命令行基础与帮助系统

FFmpeg 入门教程

命令行基础与帮助系统

本教程共 32 篇 · 第 3 篇 · 更新于 2026-08-09 · 约 5 分钟阅读

FFmpeg命令行帮助系统-h-codecs-filters参数

本节目标:记住 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
Note

Windows PowerShell 里换行符是反引号 `,不是反斜杠。CMD 里用 ^

参数的两种位置

同一个参数放在 -i 前还是后,作用对象不一样。

  • 输入参数-i 之前):作用于输入文件,比如 -ss 定位、-f 指定输入格式。
  • 输出参数-i 之后):作用于输出文件,比如 -c:v-b:v-vf

这个区别后面讲截取时非常关键。现在先建立意识:参数的位置有意义

最常用的全局参数

  • -y:自动覆盖输出文件,不问。
  • -n:如果输出文件已存在就退出,不覆盖。
  • -hide_banner:隐藏开头那一大段版权和编译信息,只留实际输出。
  • -v-loglevel:控制日志详细程度,常用值有 quieterrorwarninginfodebug
  • -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 支持的所有私有选项,比如 presetcrftune,以及它们的取值范围。

查某个解码器

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 很合适,正常信息不输出,有问题才报警。

小结

记住这几条就够了:

  1. 命令结构是 ffmpeg 全局参数 输入参数 -i 输入 输出参数 输出
  2. 查参数用 ffmpeg -h filter=滤镜名ffmpeg -h encoder=编码器名
  3. 查能力用 -encoders-decoders-filters-formats
  4. -hide_banner 让输出清爽,加 -y 自动覆盖。

下一章我们真正跑第一条命令,把视频从一个格式转成另一个格式。