FFmpeg 是一个开源的多媒体框架,能够处理音频、视频以及其他多媒体文件和流的记录、转换和播放。它提供了一系列强大的命令行工具,如 ffmpeg、ffplay 和 ffprobe,用于各种多媒体操作。理解和掌握 FFmpeg 的通用选项是高效使用这些工具的关键。本文将详细介绍 FFmpeg 的各种通用选项,帮助用户更好地利用这一强大的工具来完成复杂的多媒体处理任务。
显示信息和帮助
- -L: 显示许可证信息。
-
-h, -?, -help, --help [arg]: 显示帮助信息。如果没有参数,显示基本选项;如果有参数,可以显示特定项目的帮助信息。
-
long: 显示高级工具选项。
-
full: 显示完整的选项列表,包括编码器、解码器、复用器等。
-
decoder=decoder_name: 显示指定解码器的详细信息。
-
encoder=encoder_name: 显示指定编码器的详细信息。
-
demuxer=demuxer_name: 显示指定解复用器的详细信息。
- encoder与demuxer可以用
c:v xxx
来代替
- encoder与demuxer可以用
-
muxer=muxer_name: 显示指定复用器的详细信息。
-
filter=filter_name: 显示指定过滤器的详细信息。
-
bsf=bitstream_filter_name: 显示指定比特流过滤器的详细信息。
-
protocol=protocol_name: 显示指定协议的详细信息。
-
版本和配置
- -version: 显示版本信息。
- -buildconf: 显示编译配置,每行一个选项。
显示可用的格式、设备和编码器等
- -formats: 显示可用的格式(包括设备)。
- -demuxers: 显示可用的解复用器。
- -muxers: 显示可用的复用器。
- -devices: 显示可用的设备。
- -codecs: 显示所有已知的编解码器。
- -decoders: 显示可用的解码器。
- -encoders: 显示可用的编码器。
- -bsfs: 显示可用的比特流过滤器。
- -protocols: 显示可用的协议。
- -filters: 显示可用的 libavfilter 过滤器。
- -pix_fmts: 显示可用的像素格式。
- -sample_fmts: 显示可用的采样格式。
- -layouts: 显示声道名称和标准声道布局。
- -dispositions: 显示流的状态。
- -colors: 显示识别的颜色名称。
自动检测源和接收器
- -sources device[,opt1=val1[,opt2=val2]…]: 显示输入设备的自动检测源。
- -sinks device[,opt1=val1[,opt2=val2]…]: 显示输出设备的自动检测接收器。
日志和报告
-
-loglevel [flags+]loglevel | -v [flags+]loglevel: 设置日志级别和标志。
- quiet, -8: 不显示任何内容,保持静默。
- panic, 0: 只显示可能导致进程崩溃的致命错误。
- fatal, 8: 只显示致命错误,进程无法继续时的错误。
- error, 16: 显示所有错误,包括可恢复的错误。
- warning, 24: 显示所有警告和错误。
- info, 32: 显示处理过程中的信息性消息,这是默认值。
- verbose, 40: 和 info 相同,但更详细。
- debug, 48: 显示所有内容,包括调试信息。
- trace, 56: *别的日志,显示所有可能的信息。
- -report: 将完整的命令行和日志输出转储到当前目录中的文件。用于调试和报告问题。
- -hide_banner: 隐藏版权声明、构建选项和库版本信息的横幅。
CPU 设置
- -cpuflags flags: 设置或清除 CPU 标志。用于测试,不建议随意使用。
- -cpucount count: 覆盖检测到的 CPU 数量。用于测试。
- -max_alloc bytes: 设置堆上分配块的最大大小。谨慎使用,默认值为 INT_MAX。