ffmpeg [全局选项] -i <输入文件/流> [针对输入的过滤与参数] [输出选项] <输出文件/流>
ffmpeg:可执行程序,直接调用。[全局选项]:影响整个 FFmpeg 进程的参数,如日志级别(-loglevel)、线程数(-threads)等。-i <输入>:指定输入文件、URL 或设备。 如果需要多个输入,可多次使用 -i。[针对输入的过滤与参数]:可以对输入进行一些局部参数调整,比如输入裁剪、开始偏移、抓取帧率等。[输出选项]:包括输出文件格式、编解码器、码率、分辨率、帧率等设置。<输出>:输出到本地文件、管道、网络推流地址等。输入与输出文件(-i、输出路径)
-i <文件路径或 URL>:指定输入源。-i ./video.mp4-i https://example.com/video.flv-i video="Integrated Camera"。-f mp3)或输出文件后缀自动推断。-i,但要留意输入顺序和对应的流映射。-f matroska 将数据输出到标准输出,便于与其他进程联动。编解码器参数(-c:v、-c:a)
-c:v <视频编码器>:指定视频编码器。常见选项:libx264:H.264 编码器,高效且兼容性好。libx265:H.265 编码器,压缩效率高,但兼容性稍差。mpeg4:旧版 MPEG-4 编码(.mp4 容器)。copy:流复制(不重新编码)。-c:a <音频编码器>:指定音频编码器。常见选项:aac:AAC 编码(内置或外部库)。libmp3lame:MP3 编码。copy:流复制。码率与质量控制(-b:v、-crf)
-b:v <视频码率>:设置输出视频的目标码率(比特率)。-b:v 800k 表示 800kbps。适用于 CBR(恒定码率)场景,但可能导致画面忽大忽小。-crf <常量质量因子>:常量质量模式,仅适用于某些编码器(如 x264、x265)。-crf 值范围通常是 0 ~ 51,值越小质量越高,文件越大;常见取值范围在 18 ~ 28。分辨率与帧率(-s、-r)
-s <width>x<height>:设置输出分辨率,如 -s 1280x720 或者标准符号 -s hd720、-s pal 等。-r <fps>:设置帧率(帧/秒),如 -r 30、-r 24 等。其他常见参数(-ss、-t、-vf、-af)
-ss <时间偏移>:跳转到指定时间位置再开始处理。可以放在输入前或输出参数前:-ss 00:01:00 -i input.mp4 -c copy clip.mp4(先跳到 1 分钟处再读取)-i input.mp4 -ss 00:01:00 -c copy clip.mp4(读取整个文件后再跳到 1 分钟位置输出)-t <持续时长>:指定持续时间,例如 -t 00:00:30 表示处理 30 秒。-vf <视频滤镜链>:一系列视频滤镜,例如缩放、裁剪、水印、水平翻转等。-vf "scale=1280:720,transpose=1"。-af <音频滤镜链>:音频滤镜,例如扬声器环绕、音量调整、降噪等。- 语法:`-af "volume=1.5,atempo=0.9"`。
:::tip滤镜链之间用逗号 , 分隔,滤镜参数使用 =。
可通过 ffmpeg -filters 查看所有内置滤镜列表及参数说明。
滤镜的处理顺序从左往右,与管道风格类似。 :::