1. 基本参数
-i [input_file]
指定输入文件。-f [format]
指定输入或输出格式,如mp4
,avi
,mp3
。-y
覆盖已存在的输出文件。-hide_banner
隐藏启动时显示的FFmpeg版本和配置信息。
2. 编解码器相关
-c:v [codec]
指定视频编解码器,如libx264
、libx265
、mpeg4
。-c:a [codec]
指定音频编解码器,如aac
、mp3
。-c:s [codec]
指定字幕编解码器,如mov_text
。
3. 视频相关参数
-b:v [bitrate]
设置视频码率,如-b:v 1000k
。-r [fps]
设置帧率,如-r 30
。-s [size]
设置分辨率,如-s 1920x1080
。-aspect [aspect_ratio]
设置宽高比,如-aspect 16:9
。-pix_fmt [format]
设置像素格式,如yuv420p
。-vf [filter]
使用视频滤镜,如-vf scale=1280:720
。
4. 音频相关参数
-b:a [bitrate]
设置音频码率,如-b:a 192k
。-ar [sample_rate]
设置音频采样率,如-ar 44100
。-ac [channels]
设置音频通道数,如-ac 2
。-af [filter]
使用音频滤镜,如-af volume=1.5
。
5. 字幕相关参数
-scodec [codec]
指定字幕编解码器。-map_subtitle [index]
指定使用的字幕流。-ss [timestamp]
提取指定时间范围的字幕。
6. 时间控制参数
-ss [start_time]
设置起始时间。-to [end_time]
设置结束时间。-t [duration]
设置处理的持续时间。-itsoffset [offset]
设置输入流的时间偏移。
7. 多流与映射
-
-map [input_stream]
指定要使用的流,如-map 0:v:0
。-
0
表示第一个输入文件(输入文件按顺序从 0 开始编号)。
如果有多个输入文件,可以使用1
,2
等表示第二个、第三个输入文件。v
表示选择视频流。流类型包括:v
:视频流a
:音频流s
:字幕流
0
表示选择输入文件中的第一个视频流(视频流从 0 开始编号)。如果输入文件有多个视频流,可以用1
,2
等选择其他视频流。
-
-
-map_channel
指定多声道音频流的通道映射。
8. 质量与压缩
-crf [value]
恒定质量控制(通常范围0-51,值越低质量越高)。-preset [speed]
设置编码速度,如ultrafast
、medium
。-tune [option]
针对特定场景优化,如film
或animation
。
9. 格式转换
-vn
禁用视频。-an
禁用音频。-sn
禁用字幕。-movflags
设置MOV/MP4格式标志,如+faststart
。
10. 滤镜和特效
-filter:v [filter]
应用视频滤镜。-filter:a [filter]
应用音频滤镜。-filter_complex
配置复杂滤镜链。
11. 进阶参数
-threads [number]
设置线程数。-hwaccel [type]
启用硬件加速,如cuda
、vulkan
。-copyts
保留原始时间戳。
12. 输出控制
-progress [file]
将进度信息输出到指定文件或标准输出。-loglevel [level]
设置日志输出级别,如quiet
,error
,info
。
常用示例
-
转码为MP4格式:
ffmpeg -i input.avi -c:v libx264 -crf 23 -preset fast output.mp4
-
提取音频:
ffmpeg -i input.mp4 -vn -c:a libmp3lame output.mp3
-
视频剪辑:
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4
FFmpeg 参数众多,这里仅列出主要部分。具体需求可以参考 FFmpeg官方文档。