目录
- 1 说明
- 2 编解码器选项
- 3 个解码器
- 4 个视频解码器
- 5 个音频解码器
- 6 个字幕解码器
- 7 个编码器
- 8 个音频编码器
- 9 个视频编码器
- 9.1 a64_multi、a64_multi5
- 9.2 电影包
- 9.3 动图
- 9.4 哈普
- 9.5 jpeg2000
- 9.6 库1e
- 9.7 libaom-av1
- 9.8 libsvtav1
- 9.9 libjxl
- 9.10 libkvazaar
- 9.11 libopenh264
- 9.12 libtheora
- 9.13 libvpx
- 9.14 libwebp
- 9.15 libx264、libx264rgb
- 9.16 libx265
- 9.17 libxavs2
- 9.18 libxvid
- 9.19 媒体基金会
- 9.20 微软RLE
- 9.21 mpeg2
- 9.22.png
- 9.23 专业分辨率
- 9.24 QSV 编码器
- 9.25雪
- 9.26 VAAPI编码器
- 9.27 亿万
- 9.28 VC2
- 10 个字幕编码器
- 11 另请参阅
- 12 位作者
1 说明
本文档描述了 libavcodec 库提供的编解码器(解码器和编码器)。
2 编解码器选项
libavcodec 提供了一些通用的全局选项,可以在所有编码器和解码器上进行设置。此外,每个编解码器可以支持所谓的私有选项,其特定于给定编解码器。
有时,全局选项可能只影响特定类型的编解码器,并且可能是无意义的或被另一种编解码器忽略,因此您需要了解指定选项的含义。此外,有些选项仅用于解码或编码。
可以通过在 FFmpeg 工具中
指定 -选项 值AVCodecContext
来设置选项,或者通过在选项中显式设置值或使用libavutil/opt.h用于编程使用的 API。
支持的选项列表如下:
- b integer (encoding,audio,video)
设置比特率(以位/秒为单位)。默认值为 200K。
- ab integer (encoding,audio)
设置音频比特率(以位/秒为单位)。默认值为 128K。
- bt integer (encoding,video)
设置视频比特率容差(以位/秒为单位)。在 1-pass 模式下,比特率容差指定码率控制愿意偏离目标平均比特率值的程度。这与最小/最大比特率无关。过度降低耐受性会对质量产生不利影响。
- flags flags (decoding/encoding,audio,video,subtitles)
设置通用标志。
可能的值:
- ‘mv4’
按宏块使用四个运动矢量 (mpeg4)。
- ‘qpel’
使用 1/4 像素运动补偿。
- ‘loop’
使用环路滤波器。
- ‘qscale’
使用固定的 qscale。
- ‘pass1’
在第一遍模式下使用内部 2pass 速率控制。
- ‘pass2’
在第二遍模式下使用内部 2pass 速率控制。
- ‘gray’
仅解码/编码灰度。
- ‘psnr’
在编码期间设置 error[?] 变量。
- ‘truncated’
输入比特流可能会被随机截断。
- ‘drop_changed’
不要输出参数与流中第一个解码帧不同的帧。丢帧时会返回错误 AVERROR_INPUT_CHANGED。
- ‘ildct’
使用隔行 DCT。
- ‘low_delay’
强制低延迟。
- ‘global_header’
将全局标题放置在额外数据中,而不是每个关键帧中。
- ‘bitexact’
仅写入与平台、构建和时间无关的数据。((I)DCT 除外)。这可确保文件和数据校验和在平台之间可重复且匹配。它的主要用途是回归测试。
- ‘aic’
应用H263高级帧内编码/mpeg4 ac预测。
- ‘ilme’
应用隔行运动估计。
- ‘cgop’
使用封闭的 gop。
- ‘output_corrupt’
甚至输出可能损坏的帧。
- time_base rational number
设置编解码器时基。
它是表示帧时间戳的基本时间单位(以秒为单位)。对于固定 fps 内容,时基应为
1 / frame_rate
1,时间戳增量应相同为 1。- g integer (encoding,video)
设置图片组 (GOP) 大小。默认值为 12。
- ar integer (decoding/encoding,audio)
设置音频采样率(以 Hz 为单位)。
- ac integer (decoding/encoding,audio)
设置音频通道数。
- cutoff integer (encoding,audio)
设置截止带宽。(仅受选定编码器支持,请参阅其各自的文档部分。)
- frame_size integer (encoding,audio)
设置音频帧大小。
除最后一个帧外,每个提交的帧都必须包含每个通道的frame_size 个样本。当编解码器设置了 CODEC_CAP_VARIABLE_FRAME_SIZE 时,可能为 0,在这种情况下,帧大小不受限制。它由一些解码器设置以指示恒定的帧大小。
- frame_number integer
设置帧数。
- delay integer
- qcomp float (encoding,video)
设置视频量化器比例压缩 (VBR)。它用作速率控制方程中的常数。默认 rc_eq 的推荐范围:0.0-1.0。
- qblur float (encoding,video)
设置视频量化器比例模糊 (VBR)。
- qmin integer (encoding,video)
设置最小视频量化比例 (VBR)。必须包含在 -1 到 69 之间,默认值为 2。
- qmax integer (encoding,video)
设置最大视频量化器比例 (VBR)。必须包含在 -1 到 1024 之间,默认值为 31。
- qdiff integer (encoding,video)
设置量化器比例 (VBR) 之间的最大差异。
- bf integer (encoding,video)
设置非 B 帧之间的 B 帧的最大数量。
必须是 -1 到 16 之间的整数。0 表示禁用 B 帧。如果使用值-1,它将根据编码器选择自动值。
默认值为 0。
- b_qfactor float (encoding,video)
设置 P 帧和 B 帧之间的 qp 因子。
- codec_tag integer
- bug flags (decoding,video)
解决方法无法自动检测编码器错误。
可能的值:
- ‘autodetect’
- ‘xvid_ilace’
Xvid 交错错误(如果 fourcc==XVIX 则自动检测)
- ‘ump4’
(如果 fourcc==UMP4 则自动检测)
- ‘no_padding’
填充错误(自动检测)
- ‘amv’
- ‘qpel_chroma’
- ‘std_qpel’
旧标准 qpel(根据 fourcc/版本自动检测)
- ‘qpel_chroma2’
- ‘direct_blocksize’
direct-qpel-blocksize 错误(每个 fourcc/版本自动检测)
- ‘edge’
边缘填充错误(每个 fourcc/版本自动检测)
- ‘hpel_chroma’
- ‘dc_clip’
- ‘ms’
解决微软损坏的解码器中的各种错误。
- ‘trunc’
截断帧
- strict integer (decoding/encoding,audio,video)
指定如何严格遵守标准。
可能的值:
- ‘very’
严格遵守较旧的更严格版本的规范或参考软件
- ‘strict’
严格遵守规范中的所有内容,无论后果如何
- ‘normal’
- ‘unofficial’
允许非官方扩展
- ‘experimental’
允许非标准化的实验性事物、实验性(未完成/正在进行中/未经过充分测试)解码器和编码器。注意:实验性解码器可能会带来安全风险,请勿使用它来解码不受信任的输入。
- b_qoffset float (encoding,video)
设置 P 帧和 B 帧之间的 QP 偏移。
- err_detect flags (decoding,audio,video)
设置错误检测标志。
可能的值:
- ‘crccheck’
验证嵌入的 CRC
- ‘bitstream’
检测比特流规范偏差
- ‘buffer’
检测不正确的比特流长度
- ‘explode’
检测到小错误时中止解码
- ‘ignore_err’
忽略解码错误,并继续解码。如果您想分析视频的内容并因此希望无论如何都可以解码所有内容,这非常有用。如果出现错误,此选项将不会产生令人赏心悦目的视频。
- ‘careful’
考虑那些违反规范并且在野外未被视为错误的事情
- ‘compliant’
将所有不符合规范的情况视为错误
- ‘aggressive’
考虑一个理智的编码器不应该做的事情作为错误
- has_b_frames integer
- block_align integer
- rc_override_count integer
- maxrate integer (encoding,audio,video)
设置最大比特率容差(以位/秒为单位)。需要设置 bufsize。
- minrate integer (encoding,audio,video)
设置最小比特率容限(以位/秒为单位)。在设置 CBR 编码时最有用。否则就没什么用了。
- bufsize integer (encoding,audio,video)
设置速率控制缓冲区大小(以位为单位)。
- i_qfactor float (encoding,video)
设置 P 帧和 I 帧之间的 QP 因子。
- i_qoffset float (encoding,video)
设置 P 帧和 I 帧之间的 QP 偏移。
- dct integer (encoding,video)
设置DCT算法。
可能的值:
- ‘auto’
自动选择一个好的(默认)
- ‘fastint’
快速整数
- ‘int’
精确整数
- ‘mmx’
- ‘altivec’
- ‘faan’
浮点 AAN DCT
- lumi_mask float (encoding,video)
明亮区域的压缩强度比中等区域的压缩强度要大。
- tcplx_mask float (encoding,video)
设置时间复杂度掩码。
- scplx_mask float (encoding,video)
设置空间复杂性掩蔽。
- p_mask float (encoding,video)
设置帧间屏蔽。
- dark_mask float (encoding,video)
比中等区域更强烈地压缩黑暗区域。
- idct integer (decoding/encoding,video)
选择 IDCT 实施。
可能的值:
- ‘auto’
- ‘int’
- ‘simple’
- ‘simplemmx’
- ‘simpleauto’
自动选择与简单IDCT兼容的IDCT
- ‘arm’
- ‘altivec’
- ‘sh4’
- ‘simplearm’
- ‘simplearmv5te’
- ‘simplearmv6’
- ‘simpleneon’
- ‘xvid’
- ‘faani’
浮点 AAN IDCT
- slice_count integer
- ec flags (decoding,video)
设置错误隐藏策略。
可能的值:
- ‘guess_mvs’
迭代运动矢量 (MV) 搜索(慢速)
- ‘deblock’
对损坏的 MB 使用强解块滤波器
- ‘favor_inter’
倾向于从前一帧而不是当前帧进行预测
- bits_per_coded_sample integer
- aspect rational number (encoding,video)
设置样本纵横比。
- sar rational number (encoding,video)
设置样本纵横比。方面的别名。
- debug flags (decoding/encoding,audio,video,subtitles)
打印具体的调试信息。
可能的值:
- ‘pict’
图片信息
- ‘rc’
速率控制
- ‘bitstream’
- ‘mb_type’
宏块 (MB) 类型
- ‘qp’
每块量化参数 (QP)
- ‘dct_coeff’
- ‘green_metadata’
显示即将到来的帧、GoP 或给定持续时间的复杂性元数据。
- ‘skip’
- ‘startcode’
- ‘er’
错误识别
- ‘mmco’
内存管理控制操作(H.264)
- ‘bugs’
- ‘buffers’
图片缓冲区分配
- ‘thread_ops’
线程操作
- ‘nomc’
跳跃运动补偿
- cmp integer (encoding,video)
设置完整的像素比较功能。
可能的值:
- ‘sad’
绝对差值之和,快速(默认)
- ‘sse’
误差平方和
- ‘satd’
绝对 Hadamard 变换差值之和
- ‘dct’
DCT 变换绝对差值之和
- ‘psnr’
量化误差平方和(避免,低质量)
- ‘bit’
块所需的位数
- ‘rd’
率失真最佳,慢
- ‘zero’
0
- ‘vsad’
绝对垂直差之和
- ‘vsse’
垂直差平方和
- ‘nsse’
噪声保留平方差和
- ‘w53’
5/3 小波,仅在雪中使用
- ‘w97’
9/7 小波,仅在雪中使用
- ‘dctmax’
- ‘chroma’
- subcmp integer (encoding,video)
设置子像素比较功能。
可能的值:
- ‘sad’
绝对差值之和,快速(默认)
- ‘sse’
误差平方和
- ‘satd’
绝对 Hadamard 变换差值之和
- ‘dct’
DCT 变换绝对差值之和
- ‘psnr’
量化误差平方和(避免,低质量)
- ‘bit’
块所需的位数
- ‘rd’
率失真最佳,慢
- ‘zero’
0
- ‘vsad’
绝对垂直差之和
- ‘vsse’
垂直差平方和
- ‘nsse’
噪声保留平方差和
- ‘w53’
5/3 小波,仅在雪中使用
- ‘w97’
9/7 小波,仅在雪中使用
- ‘dctmax’
- ‘chroma’
- mbcmp integer (encoding,video)
设置宏块比较功能。
可能的值:
- ‘sad’
绝对差值之和,快速(默认)
- ‘sse’
误差平方和
- ‘satd’
绝对 Hadamard 变换差值之和
- ‘dct’
DCT 变换绝对差值之和
- ‘psnr’
量化误差平方和(避免,低质量)
- ‘bit’
块所需的位数
- ‘rd’
率失真最佳,慢
- ‘zero’
0
- ‘vsad’
绝对垂直差之和
- ‘vsse’
垂直差平方和
- ‘nsse’
噪声保留平方差和
- ‘w53’
5/3 小波,仅在雪中使用
- ‘w97’
9/7 小波,仅在雪中使用
- ‘dctmax’
- ‘chroma’
- ildctcmp integer (encoding,video)
设置隔行DCT比较功能。
可能的值:
- ‘sad’
绝对差值之和,快速(默认)
- ‘sse’
误差平方和
- ‘satd’
绝对 Hadamard 变换差值之和
- ‘dct’
DCT 变换绝对差值之和
- ‘psnr’
量化误差平方和(避免,低质量)
- ‘bit’
块所需的位数
- ‘rd’
率失真最佳,慢
- ‘zero’
0
- ‘vsad’
绝对垂直差之和
- ‘vsse’
垂直差平方和
- ‘nsse’
噪声保留平方差和
- ‘w53’
5/3 小波,仅在雪中使用
- ‘w97’
9/7 小波,仅在雪中使用
- ‘dctmax’
- ‘chroma’
- dia_size integer (encoding,video)
设置运动估计的菱形类型和大小。
- ‘(1024, INT_MAX)’
全运动估计(最慢)
- ‘(768, 1024]’
嗯运动估计
- ‘(512, 768]’
六角运动估计
- ‘(256, 512]’
l2s 菱形运动估计
- ‘[2,256]’
var 菱形运动估计
- ‘(-1, 2)’
小菱形运动估计
- ‘-1’
有趣的钻石运动估计
- ‘(INT_MIN, -1)’
sab钻石运动估计
- last_pred integer (encoding,video)
设置前一帧的运动预测变量的数量。
- precmp integer (encoding,video)
设置预运动估计比较功能。
可能的值:
- ‘sad’
绝对差值之和,快速(默认)
- ‘sse’
误差平方和
- ‘satd’
绝对 Hadamard 变换差值之和
- ‘dct’
DCT 变换绝对差值之和
- ‘psnr’
量化误差平方和(避免,低质量)
- ‘bit’
块所需的位数
- ‘rd’
率失真最佳,慢
- ‘zero’
0
- ‘vsad’
绝对垂直差之和
- ‘vsse’
垂直差平方和
- ‘nsse’
噪声保留平方差和
- ‘w53’
5/3 小波,仅在雪中使用
- ‘w97’
9/7 小波,仅在雪中使用
- ‘dctmax’
- ‘chroma’
- pre_dia_size integer (encoding,video)
设置运动估计预通道的菱形类型和大小。
- subq integer (encoding,video)
设置亚像素运动估计质量。
- me_range integer (encoding,video)
设置限制运动矢量范围(DivX 播放器为 1023)。
- global_quality integer (encoding,audio,video)
- slice_flags integer
- mbd integer (encoding,video)
设置宏块决策算法(高质量模式)。
可能的值:
- ‘simple’
使用 mbcmp(默认)
- ‘bits’
使用最少的位
- ‘rd’
使用最佳率失真
- rc_init_occupancy integer (encoding,video)
设置解码开始前应加载到 rc 缓冲区的位数。
- flags2 flags (decoding/encoding,audio,video,subtitles)
-
可能的值:
- ‘fast’
允许不符合规范的加速技巧。
- ‘noout’
跳过比特流编码。
- ‘ignorecrop’
忽略来自 sps 的裁剪信息。
- ‘local_header’
将全局标题放置在每个关键帧上,而不是放在额外数据中。
- ‘chunks’
帧数据可能被分成多个块。
- ‘showall’
显示第一个关键帧之前的所有帧。
- ‘export_mvs’
将运动矢量导出到帧侧数据(请参阅 参考资料
AV_FRAME_DATA_MOTION_VECTORS
)以了解支持它的编解码器。也可以看看文档/示例/export_mvs.c。- ‘skip_manual’
不要跳过样本并将跳过信息导出为帧侧数据。
- ‘ass_ro_flush_noop’
不要在刷新时重置 ASS ReadOrder 字段。
- ‘icc_profiles’
从比色标签生成/解析嵌入的 ICC 配置文件。
- export_side_data flags (decoding/encoding,audio,video,subtitles)
-
可能的值:
- ‘mvs’
将运动矢量导出到帧侧数据(请参阅 参考资料
AV_FRAME_DATA_MOTION_VECTORS
)以了解支持它的编解码器。也可以看看文档/示例/export_mvs.c。- ‘prft’
将编码器生产者参考时间导出到数据包侧数据中(请参阅
AV_PKT_DATA_PRFT
参考资料)以了解支持它的编解码器。- ‘venc_params’
通过帧端数据导出视频编码参数(请参阅 参考资料
AV_FRAME_DATA_VIDEO_ENC_PARAMS
)以了解支持它的编解码器。目前有 H.264 和 VP9。- ‘film_grain’
通过帧侧数据导出胶片颗粒参数(请参阅
AV_FRAME_DATA_FILM_GRAIN_PARAMS
)。目前支持 AV1 解码器。
- threads integer (decoding/encoding,video)
设置要使用的线程数,以防所选编解码器实现支持多线程。
可能的值:
- ‘auto, 0’
自动选择要设置的线程数
默认值为 '汽车'。
- dc integer (encoding,video)
设置intra_dc_ precision。
- nssew integer (encoding,video)
设置 nsse 权重。
- skip_top integer (decoding,video)
设置顶部跳过的宏块行数。
- skip_bottom integer (decoding,video)
设置底部跳过的宏块行数。
- profile integer (encoding,audio,video)
-
设置编码器编解码器配置文件。默认值为 '未知'。编码器特定配置文件记录在相关编码器文档中。
- level integer (encoding,audio,video)
-
设置编码器电平。此级别取决于特定的编解码器,并且可能对应于配置文件级别。它默认设置为 '未知'。
可能的值:
- ‘unknown’
- lowres integer (decoding,audio,video)
以 1= 1/2、2=1/4、3=1/8 分辨率进行解码。
- mblmin integer (encoding,video)
设置最小宏块拉格朗日因子 (VBR)。
- mblmax integer (encoding,video)
设置最大宏块拉格朗日因子 (VBR)。
- skip_loop_filter integer (decoding,video)
- skip_idct integer (decoding,video)
- skip_frame integer (decoding,video)
-
根据选项值选择的帧类型进行解码器丢弃处理。
跳过循环过滤器跳过帧循环过滤,跳过IDCT 跳帧 IDCT/反量化,跳帧跳过解码。
可能的值:
- ‘none’
不丢弃任何框架。
- ‘default’
丢弃无用的帧,例如 0 大小的帧。
- ‘noref’
丢弃所有非参考帧。
- ‘bidir’
丢弃所有双向帧。
- ‘nokey’
丢弃除关键帧之外的所有帧。
- ‘nointra’
丢弃除 I 帧之外的所有帧。
- ‘all’
丢弃所有帧。
默认值为 '默认'。
- bidir_refine integer (encoding,video)
细化双向宏块中使用的两个运动矢量。
- keyint_min integer (encoding,video)
设置 IDR 帧之间的最小间隔。
- refs integer (encoding,video)
设置参考帧以考虑运动补偿。
- trellis integer (encoding,audio,video)
设置率失真最佳量化。
- mv0_threshold integer (encoding,video)
- compression_level integer (encoding,audio,video)
- bits_per_raw_sample integer
- channel_layout integer (decoding/encoding,audio)
-
可能的值:
- request_channel_layout integer (decoding,audio)
-
可能的值:
- rc_max_vbv_use float (encoding,video)
- rc_min_vbv_use float (encoding,video)
- color_primaries integer (decoding/encoding,video)
可能的值:
- ‘bt709’
BT.709
- ‘bt470m’
BT.470M
- ‘bt470bg’
BT.470 BG
- ‘smpte170m’
SMPTE 170M
- ‘smpte240m’
SMPTE 240M
- ‘film’
电影
- ‘bt2020’
BT.2020
- ‘smpte428’
- ‘smpte428_1’
SMPTE ST 428-1
- ‘smpte431’
SMPTE 431-2
- ‘smpte432’
SMPTE 432-1
- ‘jedec-p22’
JEDEC P22
- color_trc integer (decoding/encoding,video)
可能的值:
- ‘bt709’
BT.709
- ‘gamma22’
BT.470M
- ‘gamma28’
BT.470 BG
- ‘smpte170m’
SMPTE 170M
- ‘smpte240m’
SMPTE 240M
- ‘linear’
线性
- ‘log’
- ‘log100’
日志
- ‘log_sqrt’
- ‘log316’
对数平方根
- ‘iec61966_2_4’
- ‘iec61966-2-4’
IEC 61966-2-4
- ‘bt1361’
- ‘bt1361e’
BT.1361
- ‘iec61966_2_1’
- ‘iec61966-2-1’
IEC 61966-2-1
- ‘bt2020_10’
- ‘bt2020_10bit’
BT.2020 - 10 位
- ‘bt2020_12’
- ‘bt2020_12bit’
BT.2020 - 12 位
- ‘smpte2084’
SMPTE ST 2084
- ‘smpte428’
- ‘smpte428_1’
SMPTE ST 428-1
- ‘arib-std-b67’
ARIB STD-B67
- colorspace integer (decoding/encoding,video)
可能的值:
- ‘rgb’
RGB
- ‘bt709’
BT.709
- ‘fcc’
美国联邦通信委员会
- ‘bt470bg’
BT.470 BG
- ‘smpte170m’
SMPTE 170M
- ‘smpte240m’
SMPTE 240M
- ‘ycocg’
YCOCG
- ‘bt2020nc’
- ‘bt2020_ncl’
BT.2020 NCL
- ‘bt2020c’
- ‘bt2020_cl’
BT.2020 CL
- ‘smpte2085’
SMPTE 2085
- ‘chroma-derived-nc’
色度衍生的 NCL
- ‘chroma-derived-c’
色度衍生 CL
- ‘ictcp’
心电图
- color_range integer (decoding/encoding,video)
如果用作输入参数,它会向解码器提示输入的 color_range。可能的值:
- ‘tv’
- ‘mpeg’
- ‘limited’
MPEG (219*2^(n-8))
- ‘pc’
- ‘jpeg’
- ‘full’
JPEG (2^n-1)
- chroma_sample_location integer (decoding/encoding,video)
可能的值:
- ‘left’
- ‘center’
- ‘topleft’
- ‘top’
- ‘bottomleft’
- ‘bottom’
- log_level_offset integer
设置日志级别偏移量。
- slices integer (encoding,video)
并行编码中使用的切片数量。
- thread_type flags (decoding/encoding,video)
选择要使用的多线程方法。
用于 '框架' 将增加每个线程一帧的解码延迟,因此无法提供未来帧的客户端不应使用它。
可能的值:
- ‘slice’
一次解码一帧的多个部分。
仅当使用切片对视频进行编码时,使用切片的多线程才有效。
- ‘frame’
一次解码多于一帧。
默认值为 '切片+帧'。
- audio_service_type integer (encoding,audio)
设置音频服务类型。
可能的值:
- ‘ma’
主要音频服务
- ‘ef’
效果
- ‘vi’
视障人士
- ‘hi’
听力障碍
- ‘di’
对话
- ‘co’
评论
- ‘em’
紧急情况
- ‘vo’
画外音
- ‘ka’
卡拉OK
- request_sample_fmt sample_fmt (decoding,audio)
设置音频解码器应该首选的样本格式。默认值为
none
。- pkt_timebase rational number
- sub_charenc encoding (decoding,subtitles)
设置输入字幕的字符编码。
- field_order field_order (video)
设置/覆盖视频的场序。可能的值:
- ‘progressive’
渐进式视频
- ‘tt’
隔行扫描视频,顶场编码并首先显示
- ‘bb’
隔行扫描视频,底场编码并先显示
- ‘tb’
隔行视频,顶部编码优先,底部优先显示
- ‘bt’
隔行扫描视频,底部编码优先,顶部优先显示
- skip_alpha bool (decoding,video)
设置为 1 以禁用处理 Alpha(透明度)。这就像'灰色的' 中的标志旗帜跳过色度信息而不是 alpha 的选项。默认值为 0。
- codec_whitelist list (input)
“,”分隔允许的解码器列表。默认情况下,所有内容都是允许的。
- dump_separator string (input)
分隔符用于分隔命令行上打印的有关流参数的字段。例如,要使用换行符和缩进分隔字段:
ffprobe -dump_separator " " -i ~/videos/matrixbench_mpeg2.mpg
- max_pixels integer (decoding/encoding,video)
每个图像的最大像素数。该值可用于避免由于大图像导致的内存不足故障。
- apply_cropping bool (decoding,video)
如果裁剪参数是左侧和顶部参数所需对齐的倍数,则启用裁剪。如果不符合对齐方式,将进行部分裁剪以保持对齐。默认值为 1(启用)。注意:所需的对齐取决于是否
AV_CODEC_FLAG_UNALIGNED
设置和CPU。AV_CODEC_FLAG_UNALIGNED
无法从命令行更改。此外,硬件解码器不会应用左/上裁剪。
3 个解码器
解码器是 FFmpeg 中的配置元素,允许解码多媒体流。
当您配置 FFmpeg 构建时,默认情况下会启用所有支持的本机解码器。需要外部库的解码器必须通过相应的选项手动启用--enable-lib
。您可以使用配置选项列出所有可用的解码器--list-decoders
。
您可以使用配置选项禁用所有解码器
,并使用选项/
--disable-decoders
选择性地启用/禁用单个解码器。
--enable-decoder=DECODER
--disable-decoder=DECODER
ff* 工具的选项-decoders
将显示启用的解码器列表。
4 个视频解码器
下面是一些当前可用的视频解码器的描述。
4.1 av1
AOMedia 视频 1 (AV1) 解码器。
4.1.1 选项
- operating_point
选择可扩展 AV1 比特流的操作点 (0 - 31)。默认值为 0。
4.2 rawvideo
原始视频解码器。
该解码器对原始视频流进行解码。
4.2.1 选项
- top top_field_first
指定输入视频的假定字段类型。
- -1
视频被假定为渐进式(默认)
- 0
假设底场优先
- 1
假设顶场优先
4.3 libdav1d
dav1d AV1 解码器。
libdav1d 允许 libavcodec 解码 AOMedia Video 1 (AV1) 编解码器。需要在配置过程中存在 libdav1d 标头和库。您需要使用 显式配置构建--enable-libdav1d
。
4.3.1 选项
libdav1d 包装器支持以下选项。
- framethreads
设置解码期间要使用的帧线程数量。默认值为 0(自动检测)。libdav1d >= 1.0 已弃用此选项,并将在将来删除。请改用该选项
max_frame_delay
和全局选项threads
。- tilethreads
设置解码期间要使用的图块线程数量。默认值为 0(自动检测)。libdav1d >= 1.0 已弃用此选项,并将在将来删除。请改用全局选项
threads
。- max_frame_delay
设置解码器可以在内部缓冲的最大帧数。默认值为 0(自动检测)。
- filmgrain
如果比特流中存在解码视频,则将胶片颗粒应用于解码视频。默认为库的内部默认值。此选项已弃用,并将在将来删除。
export_side_data
请参阅导出胶片颗粒参数而不是应用它的 全局选项 。- oppoint
选择可扩展 AV1 比特流的操作点 (0 - 31)。默认为库的内部默认值。
- alllayers
输出可扩展 AV1 比特流的所有空间层。默认值为 false。
4.4 libdavs2
AVS2-P2/IEEE1857.4 视频解码器包装器。
该解码器允许 libavcodec 使用 davs2 库解码 AVS2 流。
4.5 libuavs3d
AVS3-P2/IEEE1857.10视频解码器。
libuavs3d 允许 libavcodec 解码 AVS3 流。需要在配置过程中存在 libuavs3d 标头和库。您需要使用 显式配置构建--enable-libuavs3d
。
4.5.1 选项
libuavs3d 包装器支持以下选项。
- frame_threads
设置解码期间要使用的帧线程数量。默认值为 0(自动检测)。
4.6 QSV Decoders
英特尔 QuickSync 视频解码器系列(VC1、MPEG-2、H.264、HEVC、JPEG/MJPEG、VP8、VP9、AV1)。
4.6.1 常用选项
所有 qsv 解码器都支持以下选项。
- async_depth
内部并行化深度,值越高,延迟越高。
- gpu_copy
视频和系统内存之间的 GPU 加速复制
- ‘default’
- ‘on’
- ‘off’
4.6.2 HEVC 选项
hevc_qsv 的额外选项。
- load_plugin
用于在内部会话中加载的用户插件
- ‘none’
- ‘hevc_sw’
- ‘hevc_hw’
- load_plugins
:-要在内部会话中加载的十六进制插件 UID 的单独列表
4.7 v210
未压缩的 4:2:2 10 位解码器。
4.7.1 选项
- custom_stride
设置 v210 数据的行大小(以字节为单位)。默认值为 0(自动检测)。您可以对无步幅 v210 使用特殊的 -1 值,如 BOXX 文件中所示。
5 个音频解码器
下面是一些当前可用的音频解码器的描述。
5.1 ac3
AC-3 音频解码器。
该解码器实现了 ATSC A/52:2010 和 ETSI TS 102 366 的一部分,以及未记录的 RealAudio 3(又名 dnet)。
5.1.1 AC-3 解码器选项
- -drc_scale value
动态范围比例因子。应用于 AC-3 流的动态范围值的系数。该因子以指数方式应用。默认值为 1。有 3 个值得注意的比例因子范围:
- drc_scale == 0
刚果民主共和国禁用。产生全频音频。
- 0 < drc_scale <= 1
已启用 DRC。应用流 DRC 值的一小部分。音频再现介于全范围和全压缩之间。
- drc_scale > 1
已启用 DRC。不对称地应用 drc_scale。响亮的声音被完全压缩。柔和的声音得到增强。
5.2 flac
FLAC 音频解码器。
该解码器旨在实现 Xiph 的完整 FLAC 规范。
5.2.1 FLAC 解码器选项
- -use_buggy_lpc
lavc FLAC 编码器用于生成具有高 lpc 值(如默认值)的有问题的流。此选项使得可以通过使用 lavc 旧的有缺陷的 lpc 逻辑进行解码来正确解码此类流。
5.3 ffwavesynth
内波合成器。
该解码器根据预定义的序列生成波形图案。它的使用纯粹是内部的,它接受的数据格式没有公开记录。
5.4 libcelt
libcelt 解码器包装器。
libcelt 允许 libavcodec 解码 Xiph CELT 超低延迟音频编解码器。需要在配置过程中存在 libcelt 标头和库。您需要使用 显式配置构建--enable-libcelt
。
5.5 libgsm
libgsm 解码器包装器。
libgsm 允许 libavcodec 解码 GSM 全速率音频编解码器。需要在配置过程中存在 libgsm 标头和库。您需要使用 显式配置构建--enable-libgsm
。
该解码器支持普通 GSM 和 Microsoft 变体。
5.6 libilbc
libilbc 解码器包装器。
libilbc 允许 libavcodec 解码互联网低比特率编解码器 (iLBC) 音频编解码器。需要在配置过程中存在 libilbc 标头和库。您需要使用 显式配置构建
--enable-libilbc
。
5.6.1 选项
libilbc 包装器支持以下选项。
- enhance
-
设置为 1 时启用解码音频的增强。默认值为 0(禁用)。
5.7 libopencore-amrnb
libopencore-amrnb 解码器包装器。
libopencore-amrnb 允许 libavcodec 解码自适应多速率窄带音频编解码器。使用它需要在配置过程中存在 libopencore-amrnb 标头和库。您需要使用 显式配置构建--enable-libopencore-amrnb
。
存在 AMR-NB 的 FFmpeg 本机解码器,因此用户无需此库即可解码 AMR-NB。
5.8 libopencore-amrwb
libopencore-amrwb 解码器包装器。
libopencore-amrwb 允许 libavcodec 解码自适应多速率宽带音频编解码器。使用它需要在配置过程中存在 libopencore-amrwb 标头和库。您需要使用 显式配置构建--enable-libopencore-amrwb
。
存在 AMR-WB 的 FFmpeg 本机解码器,因此用户无需此库即可解码 AMR-WB。
5.9 libopus
libopus 解码器包装器。
libopus 允许 libavcodec 解码 Opus 交互式音频编解码器。需要在配置过程中存在 libopus 标头和库。您需要使用 显式配置构建
--enable-libopus
。
Opus 存在 FFmpeg 本机解码器,因此用户无需此库即可解码 Opus。
6 个字幕解码器
6.1 libaribb24
ARIB STD-B24 字幕解码器。
实施 ARIB STD-B24 标准的配置文件 A 和 C。
6.1.1 libaribb24 解码器选项
- -aribb24-base-path path
设置 libaribb24 库的基本路径。这用于读取配置文件(用于自定义 unicode 转换),以及将非文本符号转储为该位置下的图像。
默认情况下取消设置。
- -aribb24-skip-ruby-text boolean
告诉解码器包装器跳过包含半高 ruby 文本的文本块。
默认启用。
6.2 libaribcaption
另一个使用外部libaribcaption 库的 ARIB STD-B24 字幕解码器。
实现日本 ARIB STD-B24 标准、巴西 ABNT NBR 15606-1 和菲律宾版本 ISDB-T 的配置文件 A 和 C。
需要在配置过程中存在 libaribcaption 标头和库 ( https://github.com/xqq/libaribcaption )。您需要使用 显式配置构建--enable-libaribcaption
。如果同时启用libaribb24和libaribcaption ,则libaribcaption
解码器优先。
6.2.1 libaribcaption 解码器选项
- -sub_type subtitle_type
指定解码字幕的格式。
- ‘bitmap’
图形图像。
- ‘ass’
ASS 格式的文本。
- ‘text’
基于简单文本的输出,无需格式化。
默认为ass ,与libaribb24解码器相同。一些现有的播放器(例如mpv)希望 ARIB 字幕采用 ASS 格式。
- -caption_encoding encoding_scheme
指定输入字幕文本的编码方案。
- ‘auto’
自动检测文本编码(默认)。
- ‘jis’
ARIB STD B24 中定义的 8 位字符 JIS 编码。这种编码在日本用于 ISDB 字幕。
- ‘utf8’
ARIB STD B24 中定义的 UTF-8 编码。此编码在菲律宾用于 ISDB-T 字幕。
- ‘latin’
ABNT NBR 15606-1 中定义的拉丁字符编码。此编码在南美洲用于 SBTVD / ISDB-Tb 字幕。
- -font font_name[,font_name2,...]
指定用于位图 或ass类型字幕渲染的字体系列名称的逗号分隔列表。屁股类型字幕仅使用第一个字体名称。
如果未指定,则使用内部定义的默认字体系列。
- -ass_single_rect boolean
ARIB STD-B24 规定某些字幕可以一次显示在不同的位置(多矩形字幕)。由于某些播放器(例如,旧的mpv)无法处理单个 AVSubtitle 中的多个 ASS 矩形,或者具有相同开始时间戳的不确定持续时间的多个 ASS 矩形,因此此选项可以更改行为,以便所有文本都显示在单个 AVSubtitle 中ASS 矩形。
默认为false。
如果您的播放器无法正确处理具有多个 ASS 矩形的 AVSubtitles,请将此选项设置为true或定义
ASS_SINGLE_RECT=1
以更改编译时的默认行为。- -force_outline_text boolean
指定是否始终为所有字符呈现轮廓文本,而不管字符样式的指示如何。
默认为false。
- -outline_width number (0.0 - 3.0)
指定轮廓文本的宽度,以点(相对)为单位。
默认值为1.5。
- -ignore_background boolean
指定是否忽略背景颜色渲染。
默认为false。
- -ignore_ruby boolean
指定是否忽略类拼音(注音假名)字符的渲染。
默认为false。
- -replace_drcs boolean
指定是否将替换的 DRCS 字符呈现为 Unicode 字符。
默认值为true。
- -replace_msz_ascii boolean
指定是否用半角字母数字替换 MSZ(中号;半角)全角字母数字。
默认值为true。
- -replace_msz_japanese boolean
指定是否将某些 MSZ(中号;半角)全角日语特殊字符替换为半角字符。
默认值为true。
- -replace_msz_glyph boolean
指定是否用半角字形替换 MSZ(中号;半角)字符(如果字体支持)。此选项适用于具有 Adobe-Japan1 兼容字体的 FreeType 或 DirectWrite 渲染器。例如,IBM Plex Sans JP、Morisawa BIZ UDGothic、Morisawa BIZ UDMincho、Yu Gothic、Yu Mincho 和 Meiryo。
默认值为true。
- -canvas_size image_size
指定渲染字幕的画布的分辨率;通常,这应该是输入视频的帧大小。
-subtitle_type
这仅在设置为bitmap时适用。libaribcaption 解码器假定位图渲染的输入帧大小如下:
- PROFILE_A:1440 x 1080,SAR (PAR) 4:3
- PROFILE_C:320 x 180,SAR (PAR) 1:1
如果输入视频的实际帧大小与上述假设不匹配,则渲染的字幕可能会失真。为了使字幕不失真,请添加
-canvas_size
选项来指定实际输入视频大小。请注意,
-canvas_size
对于不同尺寸但相同宽高比的视频,不需要该选项。-canvas_size
在这种情况下,如果未指定选项,字幕将拉伸或缩小到实际视频大小。如果-canvas_size
选项指定了不同的大小,则标题将根据计算的 SAR 拉伸或收缩为指定的大小。
6.2.2 libaribcaption解码器使用示例
通过工具显示带有ARIB字幕的MPEG-TS文件ffplay
:
ffplay -sub_type bitmap MPEG.TS
通过工具显示输入帧大小为1920x1080的MPEG-TS文件ffplay
:
ffplay -sub_type bitmap -canvas_size 1920x1080 MPEG.TS
在转码视频中嵌入 ARIB 字幕:
ffmpeg -sub_type bitmap -i src.m2t -filter_complex "[0:v][0:s]overlay" -vcodec h264 dest.mp4
6.3 dvbsub
6.3.1 选项
- compute_clut
- -2
如果流中没有匹配的 CLUT,则计算一次 clut。
- -1
如果流中没有匹配的 CLUT,则计算 clut。
- 0
从不计算 CLUT
- 1
始终计算 CLUT 并覆盖流中提供的 CLUT。
- dvb_substream
选择 dvb 子流,如果默认值为 -1,则选择所有子流。
6.4 dvdsub
该编解码器对 DVD 中使用的位图字幕进行解码;在 VobSub 文件对和某些 Matroska 文件中也可以找到相同的字幕。
6.4.1 选项
- palette
指定位图使用的全局调色板。当存储在VobSub中时,调色板通常在索引文件中指定;在 Matroska 中,调色板以与 VobSub 中相同的格式存储在编解码器额外数据中。在 DVD 中,调色板存储在 IFO 文件中,因此在从转储的 VOB 文件中读取时不可用。
该选项的格式是一个字符串,包含 16 个 24 位十六进制数字(不带 0x 前缀),以逗号分隔,例如
0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b
。- ifo_palette
指定从中获取全局调色板的 IFO 文件。(实验性)
- forced_subs_only
仅解码标记为强制的字幕条目。有些影片在同一曲目中具有强制字幕和非强制字幕。将此标志设置为
1
只会保留强制字幕。默认值为0
。
6.5 libzvbi-teletext
Libzvbi 允许 libavcodec 解码 DVB 图文电视页面和 DVB 图文电视字幕。需要在配置过程中存在 libzvbi 标头和库。您需要使用 显式配置构建
--enable-libzvbi
。
6.5.1 选项
- txt_page
要解码的图文电视页码列表。与指定列表不匹配的页面将被删除。您可以使用特殊
*
字符串来匹配所有页面,或subtitle
匹配所有字幕页面。默认值为*。- txt_default_region
设置用于解码的默认字符集,值介于 0 和 87 之间(请参阅 ETS 300 706,第 15 节,表 32)。默认值为 -1,不会覆盖 libzvbi 默认值。对于某些无法发出正确字符集信号的旧版 1.0 传输,需要此选项。
- txt_chop_top
丢弃顶部图文电视行。默认值为 1。
- txt_format
指定解码字幕的格式。
- bitmap
默认格式,您应该将其用于图文电视页面,因为某些图形和颜色无法用简单文本甚至 ASS 来表达。
- text
基于简单文本的输出,无需格式化。
- ass
格式化的 ASS 输出、字幕页面和图文电视页面以不同的样式返回,字幕页面被精简为文本,但努力保持文本对齐和格式。
- txt_left
生成位图的 X 偏移量,默认为 0。
- txt_top
生成位图的 Y 偏移量,默认为 0。
- txt_chop_spaces
删除前导和尾随空格并从生成的文本中删除空行。此选项对于基于图文电视的字幕很有用,其中行的开头或结尾处可能存在空格,或者由于双倍大小的图文电视字符,字幕行之间可能存在空行。默认值为 1。
- txt_duration
设置解码的图文电视页面或字幕的显示持续时间(以毫秒为单位)。默认值为-1,表示无穷大或直到下一个字幕事件到来。
- txt_transparent
强制生成的图文电视位图的背景透明。默认值为 0,表示背景不透明。
- txt_opacity
设置图文电视背景的不透明度 (0-255)。如果 txt_透明未设置,它仅影响开始框和结束框之间的字符,通常是字幕。默认值为 0,如果 txt_透明已设置,否则为 255。
7 个编码器
编码器是 FFmpeg 中的配置元素,允许对多媒体流进行编码。
当您配置 FFmpeg 构建时,默认情况下会启用所有支持的本机编码器。需要外部库的编码器必须通过相应的选项手动启用--enable-lib
。您可以使用配置选项列出所有可用的编码器--list-encoders
。
您可以使用配置选项禁用所有编码器
,并使用选项/
--disable-encoders
选择性地启用/禁用单个编码器。
--enable-encoder=ENCODER
--disable-encoder=ENCODER
ff* 工具的选项-encoders
将显示启用的编码器列表。
8 个音频编码器
下面是一些当前可用的音频编码器的描述。
8.1 aac
高级音频编码 (AAC) 编码器。
该编码器是默认的 AAC 编码器,本地实现到 FFmpeg 中。
8.1.1 选项
- b
设置比特率(以位/秒为单位)。设置此项会自动激活恒定比特率 (CBR) 模式。如果未指定此选项,则将其设置为 128kbps。
- q
设置可变比特率 (VBR) 模式的质量。
ffmpeg
该选项仅在使用命令行工具时有效。对于库界面用户,请使用 全局质量。- cutoff
设置截止频率。如果未指定,将允许编码器动态调整截止以提高低比特率的清晰度。
- aac_coder
设置AAC编码器的编码方式。可能的值:
- ‘twoloop’
两种循环搜索(TLS)方法。这是默认方法。
该方法首先根据频带阈值设置量化器,然后尝试通过从所有量化器中添加或减去特定值并稍微调整一些单独的量化器来找到最佳组合。将根据是否调整自身aac_is,aac_ms和aac_pns 已启用。
- ‘anmr’
基于平均噪声掩模比 (ANMR) 网格的解决方案。
这是一个实验性编码器,目前产生的质量较低,更不稳定,并且比默认的双循环编码器慢,但具有潜力。目前不支持aac_is或者aac_pns选项。目前不推荐。
- ‘fast’
恒定量化器方法。
使用更便宜的双循环算法版本,不会尝试进行许多巧妙的调整。低比特率(低于 64kbps)时情况更糟,但较高比特率时更好、更快。
- aac_ms
设置中/侧编码模式。默认值“auto”将自动使用 M/S 和频段,这将受益于此类编码。可以使用“enable”值对所有频段强制启用,这主要用于调试或使用“disable”禁用。
- aac_is
设置强度立体声编码工具的使用。默认情况下,它是启用的,如果有好处的话,它会自动切换相似的立体声频段对的 IS。可以通过将值设置为“disable”来禁用调试。
- aac_pns
在解码过程中使用感知噪声替代,用难以察觉的白噪声替换低熵高频段。默认情况下,它是启用的,但可以使用“disable”将其禁用以进行调试。
- aac_tns
允许使用跨越高频带的多抽头 FIR 滤波器,以隐藏编码过程中的量化噪声,并由解码器恢复。除了减少高频段中令人不快的伪影之外,这还减少了高频段的熵,并允许中低频段使用更多的比特。默认情况下它是启用的,但可以通过将选项设置为“禁用”来禁用调试。
- aac_ltp
允许使用长期预测扩展,通过在整个帧的频带中扩展恒定的谐波峰值,可以提高带宽极低情况下的编码效率,例如语音或钢琴独奏音乐的编码。此选项由 profile:a aac_low 隐含,与 aac_pred 不兼容。结合使用-ar降低采样率。
- aac_pred
允许使用更传统的预测方式,其中传输的频谱系数由当前系数减去先前“预测”系数的差值代替。从理论上讲,有时在实践中,这可以提高中低比特率音频的质量。此选项隐含 aac_main 配置文件,并且与 aac_ltp 不兼容。
- profile
设置编码配置文件,可能的值:
- ‘aac_low’
默认的 AAC“低复杂性”配置文件。是最兼容的并且产生良好的质量。
- ‘mpeg2_aac_low’
相当于
-profile:a aac_low -aac_pns 0
。PNS 是随 MPEG4 规范一起引入的。- ‘aac_ltp’
长期预测配置文件由以下各项启用并将启用aac_ltp 选项。在 MPEG4 中引入。
- ‘aac_main’
主要类型预测配置文件,由启用并将启用aac_pred 选项。在 MPEG2 中引入。
如果未指定此选项,则将其设置为 'aac_low'。
8.2 ac3 and ac3_fixed
AC-3 音频编码器。
这些编码器实现了 ATSC A/52:2010 和 ETSI TS 102 366 的一部分,以及未记录的 RealAudio 3(又名 dnet)。
ac3编码器使用浮点数学,而ac3_fixed
编码器仅使用定点整数数学。这并不意味着其中一种总是更快,只是其中一种可能更适合特定系统。ac3_fixed编码器不是任何输出格式的默认编解码器,因此必须使用该选项显式指定它
-acodec ac3_fixed
才能使用它。
8.2.1 AC-3 元数据
AC-3 元数据选项用于设置描述音频的参数,但在大多数情况下不会影响音频编码本身。有些选项确实会直接影响或影响结果比特流的解码和播放,而其他选项仅用于提供信息。一些选项会将位添加到输出流中,否则这些位可用于音频数据,从而影响输出的质量。这些将在下面的选项列表中相应地用注释表示。
这些参数在几个公开的文档中有详细描述。
8.2.1.1 元数据控制选项
- -per_frame_metadata boolean
允许每帧元数据。指定编码器是否应检查每个帧的元数据更改。
- 0
初始化时设置的元数据值将用于流中的每个帧。(默认)
- 1
在对每个帧进行编码之前可以更改元数据值。
8.2.1.2 缩混级别
- -center_mixlev level
中心混合级别。缩混为立体声时解码器应应用于中央通道的增益量。仅当存在中央通道时,该字段才会写入比特流。该值被指定为比例因子。有 3 个有效值:
- 0.707
应用-3dB增益
- 0.595
应用 -4.5dB 增益(默认)
- 0.500
应用-6dB增益
- -surround_mixlev level
环绕声混音级别。缩混为立体声时解码器应应用于环绕声道的增益量。仅当存在一个或多个环绕声道时,该字段才会写入比特流。该值被指定为比例因子。有 3 个有效值:
- 0.707
应用-3dB增益
- 0.500
应用 -6dB 增益(默认)
- 0.000
静音环绕声道
8.2.1.3 音频制作信息
音频制作信息是描述混合环境的可选信息。这些字段要么不写入,要么全部写入比特流。
- -mixing_level number
混合级别。指定制作环境中混音掌握时的峰值声压级 (SPL)。有效值为 80 到 111,或 -1 表示未知或未指示。默认值为 -1,但如果音频制作信息写入比特流,则无法使用该值。因此,如果该
room_type
选项不是默认值,则该mixing_level
选项不能为-1。- -room_type type
房型。描述在工作室或配音阶段的最终混音过程中使用的均衡。一个大房间是一个配音舞台,具有行业标准的X曲线均衡;小房间有平坦的均衡。
mixing_level
如果选项和room_type
选项都具有默认值, 则该字段不会写入比特流。- 0
- notindicated
未指定(默认)
- 1
- large
大房间
- 2
- small
小房间
8.2.1.4 其他元数据选项
- -copyright boolean
版权指示器。指定该音频是否存在版权。
- 0
- off
不存在版权(默认)
- 1
- on
版权存在
- -dialnorm value
对话正常化。指示节目的平均对话电平低于数字 100% 满量程 (0 dBFS) 的程度。该参数确定音频再现期间的电平移动,将对话的平均音量设置为预设电平。目标是匹配节目源之间的音量级别。-31dB 的值将导致在音频再现期间相对于源音量没有音量级别变化。有效值为 -31 到 -1 范围内的整数,默认值为 -31。
- -dsur_mode mode
杜比环绕模式。指定立体声信号是否使用 Dolby Surround (Pro Logic)。仅当音频流是立体声时,该字段才会写入比特流。使用此选项并不意味着编码器将实际应用杜比环绕声处理。
- 0
- notindicated
未指定(默认)
- 1
- off
非杜比环绕编码
- 2
- on
杜比环绕编码
- -original boolean
原始比特流指示器。指定此音频是否来自原始来源而不是副本。
- 0
- off
非原始来源
- 1
- on
原始来源(默认)
8.2.2 扩展比特流信息
扩展比特流选项是 A/52:2010 标准附件 D 中指定的备用比特流语法的一部分。它分为 2 部分。如果指定了一组中的任何一个参数,则该组中的所有值都将写入比特流。默认值用于已写入但未指定的值。如果写入了混合级别,并且解码器支持备用比特流语法,则
解码器将使用这些值而不是center_mixlev
和选项中指定的值。surround_mixlev
8.2.2.1 扩展比特流信息 - 第 1 部分
- -dmix_mode mode
首选立体声缩混模式。允许用户选择 Lt/Rt(杜比环绕声)或 Lo/Ro(正常立体声)作为首选立体声缩混模式。
- 0
- notindicated
未指定(默认)
- 1
- ltrt
Lt/Rt 缩混首选
- 2
- loro
Lo/Ro 缩混首选
- -ltrt_cmixlev level
Lt/Rt 中心混合级别。在 Lt/Rt 模式下混音为立体声时,解码器应应用于中央通道的增益量。
- 1.414
应用 +3dB 增益
- 1.189
应用 +1.5dB 增益
- 1.000
应用 0dB 增益
- 0.841
应用-1.5dB增益
- 0.707
应用-3.0dB增益
- 0.595
应用 -4.5dB 增益(默认)
- 0.500
应用-6.0dB增益
- 0.000
静音中心通道
- -ltrt_surmixlev level
Lt/Rt 环绕声混音电平。在 Lt/Rt 模式下混音为立体声时,解码器应应用于环绕声道的增益量。
- 0.841
应用-1.5dB增益
- 0.707
应用-3.0dB增益
- 0.595
应用-4.5dB增益
- 0.500
应用 -6.0dB 增益(默认)
- 0.000
静音环绕声道
- -loro_cmixlev level
Lo/Ro 中心混合级别。在 Lo/Ro 模式下混音为立体声时,解码器应应用于中央通道的增益量。
- 1.414
应用 +3dB 增益
- 1.189
应用 +1.5dB 增益
- 1.000
应用 0dB 增益
- 0.841
应用-1.5dB增益
- 0.707
应用-3.0dB增益
- 0.595
应用 -4.5dB 增益(默认)
- 0.500
应用-6.0dB增益
- 0.000
静音中心通道
- -loro_surmixlev level
Lo/Ro 环绕声混音级别。在 Lo/Ro 模式下混音为立体声时,解码器应应用于环绕声道的增益量。
- 0.841
应用-1.5dB增益
- 0.707
应用-3.0dB增益
- 0.595
应用-4.5dB增益
- 0.500
应用 -6.0dB 增益(默认)
- 0.000
静音环绕声道
8.2.2.2 扩展比特流信息 - 第 2 部分
- -dsurex_mode mode
杜比环绕 EX 模式。指示流是否使用 Dolby Surround EX(7.1 矩阵化为 5.1)。使用此选项并不意味着编码器将实际应用 Dolby Surround EX 处理。
- 0
- notindicated
未指定(默认)
- 1
- on
杜比环绕 EX 关闭
- 2
- off
杜比环绕 EX 开启
- -dheadphone_mode mode
杜比耳机模式。指示流是否使用 Dolby Headphone 编码(多声道矩阵化为 2.0 以与耳机一起使用)。使用此选项并不意味着编码器将实际应用杜比耳机处理。
- 0
- notindicated
未指定(默认)
- 1
- on
杜比耳机关闭
- 2
- off
杜比耳机开启
- -ad_conv_type type
A/D 转换器类型。指示音频是否经过HDCD A/D转换。
- 0
- standard
标准A/D转换器(默认)
- 1
- hdcd
HDCD A/D 转换器
8.2.3 其他 AC-3 编码选项
- -stereo_rematrixing boolean
立体声重新矩阵。启用/禁用立体声输入的重新矩阵。这是一项可选的 AC-3 功能,可通过选择性地将左/右通道编码为中/侧来提高质量。默认情况下启用此选项,强烈建议将其保留为启用状态,除非用于测试目的。
- cutoff frequency
设置低通截止频率。如果未指定,编码器将选择由各种其他编码参数确定的默认值。
8.2.4 仅浮点 AC-3 编码选项
这些选项仅对浮点编码器有效,对于定点编码器不存在,因为相应的功能未在定点中实现。
- -channel_coupling boolean
启用/禁用通道耦合的使用,这是一项可选的 AC-3 功能,可通过将多个通道的高频信息组合到单个通道中来提高质量。每通道高频信息在频域和时域上的发送精度都较低。这允许更多的比特用于较低的频率,同时保留足够的信息来重建高频。默认情况下,浮点编码器启用此选项,并且通常应保留启用状态,除非用于测试目的或提高编码速度。
- -1
- auto
由编码器选择(默认)
- 0
- off
禁用通道耦合
- 1
- on
启用通道耦合
- -cpl_start_band number
耦合起始带。设置通道耦合起始频带,范围为 1 到 15。如果使用高于带宽的值,则会减少到比耦合结束频带小 1。如果使用自动,则起始频带将由编码器根据比特率、采样率和通道布局确定。如果禁用通道耦合,则此选项无效。
- -1
- auto
由编码器选择(默认)
8.3 flac
FLAC(免费无损音频编解码器)编码器
8.3.1 选项
FFmpeg 的 flac 编码器支持以下选项。
- compression_level
设置压缩级别,如果未明确设置,则为许多其他选项选择默认值。有效值为 0 到 12,默认值为 5。
- frame_size
设置每个通道样本中的帧大小。
- lpc_coeff_precision
设置LPC系数精度,有效值为1到15,默认为15。
- lpc_type
设置第一阶段LPC算法
- ‘none’
未使用LPC
- ‘fixed’
固定LPC系数
- ‘levinson’
- ‘cholesky’
- lpc_passes
LPC 分析期间用于 Cholesky 分解的遍数
- min_partition_order
最小划分顺序
- max_partition_order
最大分区顺序
- prediction_order_method
- ‘estimation’
- ‘2level’
- ‘4level’
- ‘8level’
- ‘search’
暴力搜索
- ‘log’
- ch_mode
通道模式
- ‘auto’
为每一帧自动选择模式
- ‘indep’
通道独立编码
- ‘left_side’
- ‘right_side’
- ‘mid_side’
- exact_rice_parameters
选择是精确计算还是近似计算大米参数。如果设置为 1,那么它们将被准确选择,这会稍微减慢代码速度并稍微提高压缩率。
- multi_dim_quant
多维量化。如果设置为 1,则在第一阶段之后应用第二阶段 LPC 算法来微调系数。这非常慢并且稍微改善了压缩。
8.4 opus
Opus 编码器。
这是 Opus 格式的原生 FFmpeg 编码器。目前它正在开发中,仅实现编解码器的 CELT 部分。它的质量通常较差,最多相当于 libopus 编码器。
8.4.1 选项
- b
设置比特率(以位/秒为单位)。如果未指定,它会使用通道数量和布局来进行良好的猜测。
- opus_delay
设置最大延迟(以毫秒为单位)。低于 20 毫秒的延迟将很快降低质量。
8.5 libfdk_aac
libfdk-aac AAC(高级音频编码)编码器包装器。
libfdk-aac 库基于 Android 项目中的 Fraunhofer FDK AAC 代码。
需要在配置过程中存在 libfdk-aac 标头和库。您需要使用 显式配置构建
--enable-libfdk-aac
。该库也不兼容 GPL,因此如果允许使用 GPL,则应使用
--enable-gpl --enable-nonfree --enable-libfdk-aac
.
该编码器支持 AAC-HE 配置文件。
VBR 编码,通过启用虚拟现实或者标志+qscaleoptions 是实验性的,仅适用于某些参数组合。
仅 libfdk-aac 0.1.3 或更高版本支持编码 7.1 音频。
有关更多信息,请参阅http://sourceforge.net/p/opencore-amr/fdk-aac/上的 fdk-aac 项目 。
8.5.1 选项
以下选项映射到共享 FFmpeg 编解码器选项。
- b
设置比特率(以位/秒为单位)。如果未明确指定比特率,则会根据所选配置文件自动将其设置为合适的值。
如果启用了 VBR 模式,则该选项将被忽略。
- ar
设置音频采样率(以 Hz 为单位)。
- channels
设置音频通道数。
- flags +qscale
启用固定质量、VBR(可变比特率)模式。请注意,当虚拟现实值为正。
- cutoff
设置截止频率。如果未指定(或显式设置为 0),它将使用库自动计算的值。默认值为 0。
- profile
设置音频配置文件。
可以识别以下配置文件:
- ‘aac_low’
低复杂度 AAC (LC)
- ‘aac_he’
高效加气混凝土 (HE-AAC)
- ‘aac_he_v2’
高效 AAC 版本 2 (HE-AACv2)
- ‘aac_ld’
低延迟 AAC (LD)
- ‘aac_eld’
增强型低延迟 AAC (ELD)
如果未指定,则设置为 'aac_low'。
以下是 libfdk_aac 编码器的私有选项。
- afterburner
如果设置为 1,则启用加力功能;如果设置为 0,则禁用。这会提高质量,但也会提高所需的处理能力。
默认值为 1。
- eld_sbr
如果设置为 1,则为 ELD 启用 SBR(频段复制);如果设置为 0,则禁用。
默认值为 0。
- eld_v2
如果设置为 1,则为 ELDv2 启用 ELDv2(ELD 立体声信号的 LD-MPS 扩展);如果设置为 0,则禁用。
请注意,当 fdk-aac 版本 (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) > (4.0.0) 时,该选项可用。
默认值为 0。
- signaling
设置 SBR/PS 信令样式。
它可以采用以下值之一:
- ‘default’
隐式选择信令(默认情况下显式分层,如果禁用全局标头则隐式)
- ‘implicit’
隐式向后兼容信令
- ‘explicit_sbr’
显式 SBR、隐式 PS 信令
- ‘explicit_hierarchical’
显式分层信号
默认值为 '默认'。
- latm
如果设置为 1,则输出 LATM/LOAS 封装数据;如果设置为 0,则禁用。
默认值为 0。
- header_period
设置 StreamMuxConfig 和 PCE 重复周期(以帧为单位),用于在 LATM/LOAS 传输层内发送带内配置缓冲区。
必须是 16 位非负整数。
默认值为 0。
- vbr
设置 VBR 模式,从 1 到 5。1 是最低质量(尽管仍然相当不错),5 是最高质量。值为 0 将禁用 VBR,并启用 CBR(恒定比特率)。
目前只有'aac_low' 配置文件支持 VBR 编码。
VBR 模式 1-5 大致对应于以下平均比特率:
- ‘1’
32 kbps/通道
- ‘2’
40 kbps/通道
- ‘3’
48-56 kbps/通道
- ‘4’
64 kbps/通道
- ‘5’
约 80-96 kbps/通道
默认值为 0。
- frame_length
设置样本中的音频帧长度。默认值是库的内部默认值。有关支持的值的信息,请参阅库的文档。
8.5.2 示例
- 用于
ffmpeg
将 M4A (MP4) 容器中的音频文件转换为 VBR AAC:ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
- 用于
ffmpeg
使用高效 AAC 配置文件将音频文件转换为 CBR 64k kbps AAC:ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
8.6 libmp3lame
LAME(Lame Ain't an MP3 Encoder)MP3 编码器包装。
需要在配置过程中存在 libmp3lame 标头和库。您需要使用 显式配置构建
--enable-libmp3lame
。
请参阅libshine了解定点 MP3 编码器,尽管质量较低。
8.6.1 选项
libmp3lame 包装器支持以下选项。lame
括号中列出了等效的选项
。
- b (-b)
设置 CBR 或 ABR 的比特率,以位/秒表示。LAME
bitrate
以千比特/秒表示。- q (-V)
设置 VBR 的恒定质量设置。
ffmpeg
该选项仅在使用命令行工具时有效。对于库界面用户,请使用全局质量。- compression_level (-q)
设置算法质量。有效参数是 0-9 范围内的整数,0 表示质量最高但最慢,9 表示最快但质量最差。
- cutoff (--lowpass)
设置低通截止频率。如果未指定,编码器会动态调整截止。
- reservoir
设置为 1 时启用位存储库的使用。默认值为 1。LAME 默认启用此功能,但可以通过使用来覆盖 ——诺雷斯选项。
- joint_stereo (-m j)
使编码器能够使用(逐帧)L/R 立体声或中/侧立体声。默认值为 1。
- abr (--abr)
设置为 1 时启用编码器使用 ABR。
lame
--abr设置目标比特率,虽然这个选项只是告诉FFmpeg使用ABR仍然依赖乙设置比特率。- copyright (-c)
设置为 1 时设置 MPEG 音频版权标志。默认值为 0(禁用)。
- original (-o)
设置为 1 时设置 MPEG 音频原始标志。默认值为 1(启用)。
8.7 libopencore-amrnb
OpenCORE 自适应多速率窄带编码器。
需要在配置过程中存在 libopencore-amrnb 标头和库。您需要使用 显式配置构建
--enable-libopencore-amrnb --enable-version3
。
这是一个单声道编码器。官方仅支持 8000Hz 采样率,但您可以通过设置覆盖它严格的到 '非官方' 或更低。
8.7.1 选项
- b
设置比特率(以每秒位数为单位)。仅支持以下比特率,否则 libavcodec 将四舍五入到最接近的有效比特率。
- 4750
- 5150
- 5900
- 6700
- 7400
- 7950
- 10200
- 12200
- dtx
设置为 1 时允许间断传输(生成舒适噪音)。默认值为 0(禁用)。
8.8 libopus
libopus Opus 交互式音频编解码器编码器包装器。
需要在配置过程中存在 libopus 标头和库。您需要使用 显式配置构建
--enable-libopus
。
8.8.1 选项映射
大多数 libopus 选项都是根据opusenc
opus-tools 中的实用程序建模的。以下是选项映射表,描述了 libopus 包装器支持的选项以及opusenc
括号中的等效选项。
- b (bitrate)
设置比特率(以位/秒为单位)。FFmpeg 的乙选项以位/秒表示,而
opusenc
s比特率以千比特/秒为单位。- vbr (vbr, hard-cbr, and cvbr)
设置变码模式。FFmpeg虚拟现实选项具有以下有效参数,
opusenc
括号中包含等效选项:- ‘off (hard-cbr)’
使用恒定比特率编码。
- ‘on (vbr)’
使用可变比特率编码(默认)。
- ‘constrained (cvbr)’
使用受约束的可变比特率编码。
- compression_level (comp)
设置编码算法的复杂度。有效选项是 0-10 范围内的整数。0 提供最快的编码但质量较低,而 10 提供最高的质量但最慢的编码。默认值为 10。
- frame_duration (framesize)
设置最大帧大小或帧的持续时间(以毫秒为单位)。该参数必须准确如下:2.5、5、10、20、40、60。较小的帧大小可实现较低的延迟,但在给定比特率下质量较差。大于 20 毫秒的大小仅在相当低的比特率下才有意义。默认值为 20 毫秒。
- packet_loss (expect-loss)
设置预期丢包百分比。默认值为 0。
- fec (n/a)
启用带内前向纠错。数据包丢失必须非零才能利用 - FEC“辅助数据”的频率与预期的数据包丢失成正比。默认为禁用。
- application (N.A.)
设置预期的应用程序类型。下面列出了有效选项:
- ‘voip’
有利于提高语音清晰度。
- ‘audio’
支持忠实于输入(默认)。
- ‘lowdelay’
通过禁用语音优化模式,仅限制最低延迟模式。
- cutoff (N.A.)
设置截止带宽(以 Hz 为单位)。该参数必须是以下之一:4000、6000、8000、12000或20000,分别对应窄带、中带、宽带、超宽带和全带。默认值为 0(禁用截止)。请注意,libopus 强制对比特率 < 15 kbps 进行宽带截止,除非仅限 CELT(应用设置 '低延迟') 模式被使用。
- mapping_family (mapping_family)
设置编码器要使用的通道映射系列。默认值 -1 对单声道和立体声输入使用映射系列 0,否则使用映射系列 1。默认情况下还会禁用 libopus 中的环绕声掩蔽和 LFE 带宽优化,并要求输入包含 8 个或更少的通道。
其他值包括 0(表示单声道和立体声)、1(表示具有掩蔽和 LFE 带宽优化的环绕声)以及 255(表示具有未指定通道布局的独立流)。
- apply_phase_inv (N.A.) (requires libopus >= 1.2)
如果设置为 0,则禁用强度立体声的相位反转,提高单声道缩混的质量,但会稍微降低正常立体声质量。默认值为 1(启用相位反转)。
8.9 libshine
Shine 定点 MP3 编码器包装。
Shine 是一个定点 MP3 编码器。它在没有 FPU 的平台(例如,armel CPU 以及某些手机和平板电脑)上具有更好的性能。然而,由于它更注重性能而不是质量,因此它在质量方面无法与 LAME 和其他生产级编码器相提并论。此外,根据该项目的主页,该编码器可能不存在错误,因为代码是很久以前编写的,并且该项目已经死亡至少 5 年了。
该编码器仅支持立体声和单声道输入。这也是仅限 CBR 的。
原始项目(最后更新于 2007 年初)位于 http://sourceforge.net/projects/libshine-fxp/。我们仅支持https://github.com/savonet/shine上的 Savonet/Liquidsoap 项目更新的分支。
需要在配置过程中存在 libshine 标头和库。您需要使用 显式配置构建
--enable-libshine
。
另请参见libmp3lame。
8.9.1 选项
libshine 包装器支持以下选项。shineenc
括号中列出了等效的选项
。
- b (-b)
设置 CBR 的比特率,以位/秒表示。
shineenc
-b选项以千位/秒表示。
8.10 libtwolame
TwoLAME MP2 编码器包装。
需要在配置过程中存在 libtwolame 标头和库。您需要使用 显式配置构建
--enable-libtwolame
。
8.10.1 选项
libtwolame 包装器支持以下选项。-
twolame
等效选项遵循 FFmpeg 选项并位于括号内。
- b (-b)
设置 CBR 的比特率,以位/秒表示。
twolame
乙 选项以千位/秒表示。默认值为 128k。- q (-V)
设置实验性 VBR 支持的质量。最大值范围是-50到50,有用范围是-10到10。值越高,质量越好。
ffmpeg
该选项仅在使用命令行工具时有效 。对于库界面用户,请使用全局质量。- mode (--mode)
设置生成的音频的模式。可能的值:
- ‘auto’
根据输入自动选择模式。这是默认设置。
- ‘stereo’
立体声
- ‘joint_stereo’
联合立体声
- ‘dual_channel’
双通道
- ‘mono’
单核细胞增多症
- psymodel (--psyc-mode)
设置用于编码的心理声学模型。参数必须是 -1 到 4 之间的整数(包含 -1 和 4)。价值越高,品质越好。默认值为 3。
- energy_levels (--energy)
设置为 1 时启用能量级别扩展。默认值为 0(禁用)。
- error_protection (--protect)
设置为 1 时启用 CRC 错误保护。默认值为 0(禁用)。
- copyright (--copyright)
设置为 1 时设置 MPEG 音频版权标志。默认值为 0(禁用)。
- original (--original)
设置为 1 时设置 MPEG 音频原始标志。默认值为 0(禁用)。
8.11 libvo-amrwbenc
VisualOn 自适应多速率宽带编码器。
需要在配置期间存在 libvo-amrwbenc 标头和库。您需要使用 显式配置构建
--enable-libvo-amrwbenc --enable-version3
。
这是一个单声道编码器。官方仅支持 16000Hz 采样率,但您可以通过设置覆盖它严格的到 '非官方' 或更低。
8.11.1 选项
- b
设置比特率(以位/秒为单位)。仅支持以下比特率,否则 libavcodec 将四舍五入到最接近的有效比特率。
- ‘6600’
- ‘8850’
- ‘12650’
- ‘14250’
- ‘15850’
- ‘18250’
- ‘19850’
- ‘23050’
- ‘23850’
- dtx
设置为 1 时允许间断传输(生成舒适噪音)。默认值为 0(禁用)。
8.12 libvorbis
libvorbis 编码器包装器。
需要在配置期间存在 libvorbisenc 标头和库。您需要使用 显式配置构建
--enable-libvorbis
。
8.12.1 选项
libvorbis 包装器支持以下选项。oggenc
括号中列出了等效的选项
。
要获得有关 libvorbis 选项的更准确和更广泛的文档,请查阅 libvorbisenc 和oggenc
的文档。请参阅http://xiph.org/vorbis/、
http://wiki.xiph.org/Vorbis-tools和 oggenc(1)。
- b (-b)
设置 ABR 的比特率,以位/秒表示。
oggenc
-b以千比特/秒表示。- q (-q)
设置 VBR 的恒定质量设置。该值应该是 -1.0 到 10.0 范围内的浮点数。价值越高,品质越好。默认值为 '3.0'。
ffmpeg
该选项仅在使用命令行工具时有效。对于库界面用户,请使用全局质量。- cutoff (--advanced-encode-option lowpass_frequency=N)
设置截止带宽(以 Hz 为单位),值为 0 禁用截止。
oggenc
的相关选项以kHz表示。默认值为 '0'(截止已禁用)。- minrate (-m)
设置以位/秒表示的最小比特率。
oggenc
-m以千比特/秒表示。- maxrate (-M)
设置以位/秒表示的最大比特率。
oggenc
-M以千比特/秒表示。这仅对 ABR 模式有效。- iblock (--advanced-encode-option impulse_noisetune=N)
设置脉冲块的本底噪声偏置。该值为 -15.0 到 0.0 之间的浮点数。负偏差指示编码器特别注意编码音频中瞬态的清晰度。更好的瞬态响应的代价是更高的比特率。
8.13 mjpeg
运动 JPEG 编码器。
8.13.1 选项
- huffman
设置霍夫曼编码策略。可能的值:
- ‘default’
使用默认的霍夫曼表。这是默认策略。
- ‘optimal’
计算并使用最佳霍夫曼表。
8.14 wavpack
WavPack 无损音频编码器。
8.14.1 选项
命令行实用程序的等效选项wavpack
列在括号中。
8.14.1.1 共享选项
以下共享选项对此编码器有效。此处仅记录有关此特定编码器的特殊说明。有关选项的一般含义,请参阅编解码器选项一章。
- frame_size (--blocksize)
对于该编码器,该选项的范围在 128 到 131072 之间。默认值是根据采样率和通道数自动决定的。
完整的违约计算公式请参见 libavcodec/wavpackenc.c。
- compression_level (-f, -h, -hh, and -x)
8.14.1.2 私有选项
- joint_stereo (-j)
设置是否启用联合立体声。有效值为:
- ‘on (1)’
强制中/侧音频编码。
- ‘off (0)’
强制左/右音频编码。
- ‘auto’
让编码器自动决定。
- optimize_mono
设置是否启用单声道优化。此选项仅对非单声道流有效。可用值:
- ‘on’
已启用
- ‘off’
残疾人
9 个视频编码器
下面是一些当前可用的视频编码器的描述。
9.1 a64_multi, a64_multi5
A64 / Commodore 64 多色字符集编码器。a64_multi5
扩展为第五种颜色(colram)。
9.2 Cinepak
Cinepak 又名 CVID 编码器。与 Windows 3.1 和老式 MacOS 兼容。
9.2.1 选项
- g integer
关键帧间隔。至少每
-g
帧插入一个关键帧,有时甚至更快。- q:v integer
品质因数。越低越好。比特率越高,比特率越低。下表列出了使用不同值对 akiyo_cif.y4m 进行编码时的比特
-q:v
率-g 100
:-q:v 1
1918 kb/s-q:v 2
1735 kb/s-q:v 4
1500 kb/s-q:v 10
1041 kb/s-q:v 20
826 kb/s-q:v 40
553 kb/s-q:v 100
394 kb/s-q:v 200
312 kb/s-q:v 400
266 kb/s-q:v 1000
237 kb/s
- max_extra_cb_iterations integer
最大额外的码本重新计算次数,越多越好但越慢。
- skip_empty_cb boolean
避免浪费字节,忽略老式 MacOS 解码器。
- max_strips integer
- min_strips integer
要使用的最小和最大条数。更大的范围有时可以提高质量。更多条带通常质量更好,但成本更高。较少的条带往往会产生更多的关键帧。复古兼容是 1..3。
- strip_number_adaptivity integer
帧之间允许改变多少条带数。越高越好但越慢。
9.3 GIF
GIF 图像/动画编码器。
9.3.1 选项
- gifflags integer
设置用于 GIF 编码的标志。
- offsetting
启用图片偏移。
默认启用。
- transdiff
启用帧之间的透明度检测。
默认启用。
- gifimage integer
启用每帧编码一个完整的 GIF 图像,而不是动画 GIF。
默认值为0。
- global_palette integer
如果可行,将调色板写入全局 GIF 标头。
如果禁用,即使提供了全局调色板,每个帧也将始终写入一个调色板。
默认值为1。
9.4 Hap
Vidvox Hap 视频编码器。
9.4.1 选项
- format integer
指定要编码的 Hap 格式。
- hap
- hap_alpha
- hap_q
默认值为哈普。
- chunks integer
指定将帧分割成的块数,介于 1 和 64 之间。这允许对大帧进行多线程解码,但可能会牺牲数据速率。编码器可以修改该值以均匀地划分帧。
默认值为1。
- compressor integer
指定要使用的第二级压缩机。如果设置为没有任何, 块将限制为 1,因为分块的未压缩帧没有任何好处。
- none
- snappy
默认值为活泼的。
9.5 jpeg2000
原生 jpeg 2000 编码器默认是有损的,该-q:v
选项可用于设置编码质量。可以使用 来选择无损编码-pred 1
。
9.5.1 选项
- format integer
可以设置为
j2k
或jp2
(默认值),从而可以存储非 RGB pix_fmts。- tile_width integer
设置图块宽度。范围为 1 到 1073741824。默认值为 256。
- tile_height integer
设置图块高度。范围是 1 到 1073741824。默认值为 256。
- pred integer
允许设置离散小波变换 (DWT) 类型
- dwt97int (Lossy)
- dwt53 (Lossless)
默认为
dwt97int
- sop boolean
启用此选项可在每个数据包的开头添加 SOP 标记。默认禁用。
- eph boolean
启用此选项可在每个数据包标头的末尾添加 EPH 标记。默认禁用。
- prog integer
设置编码器要使用的进展顺序。可能的值为:
- lrcp
- rlcp
- rpcl
- pcrl
- cprl
设置
lrcp
为默认。- layer_rates string
默认情况下,当不使用此选项时,将使用质量指标进行压缩。此选项允许使用压缩比进行压缩。可以指定每个级别的压缩比。层的压缩比
l
决定了第一层中包含的总文件大小的比例l
。用法示例:
ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k
这会将图像压缩为包含 3 层,其中第一层中包含的数据将被压缩 1000 倍,前两层中包含的数据将被压缩 100 倍,并且在使用所有 3 层时应包含所有数据。
9.6 librav1e
rav1e AV1 编码器包装器。
需要在配置过程中存在 rav1e 标头和库。您需要使用 显式配置构建--enable-librav1e
。
9.6.1 选项
- qmax
设置使用比特率模式时要使用的最大量化器。
- qmin
设置使用比特率模式时要使用的最小量化器。
- qp
使用量化器模式以给定量化器 (0-255) 进行编码。
- speed
选择要编码的速度预设 (0-10)。
- tiles
选择要编码的图块数量。
- tile-rows
选择要编码的图块行数。
- tile-columns
选择要编码的图块列数。
- rav1e-params
使用以“:”分隔的键=值对列表设置 rav1e 选项。请参阅
rav1e --help
参考资料 中的选项列表。例如,指定 librav1e 编码选项-rav1e-参数:
ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4
9.7 libaom-av1
libaom AV1 编码器包装器。
需要在配置过程中存在 libaom 标头和库。您需要使用 显式配置构建
--enable-libaom
。
9.7.1 选项
该包装器支持以下标准 libavcodec 选项:
- b
设置比特率目标(以位/秒为单位)。默认情况下,这将使用可变比特率模式。如果最大速率和最低利率也设置为相同的值,那么它将使用恒定比特率模式,否则如果crf也已设置,那么它将使用约束质量模式。
- g keyint_min
设置关键帧位置。GOP大小设置关键帧之间的最大距离;如果为零,则输出流将仅是内部的。除非最小距离与 GOP 大小相同,否则将忽略最小距离,在这种情况下关键帧将始终以固定间隔出现。默认情况下未设置,因此如果没有此选项,库可以完全自由选择关键帧的放置位置。
- qmin qmax
设置最小/最大量化值。有效范围为 0 到 63(警告:这与 AV1 实际使用的量化器值不匹配 - 除以四以将实际量化器值映射到此范围)。默认为最小/最大(无限制)。
- minrate maxrate bufsize rc_init_occupancy
设置速率控制缓冲参数。如果未设置则不使用 - 默认为不受约束的可变比特率。
- threads
设置编码时使用的线程数。这可能需要 瓷砖或者行MT选项还可以设置为实际完全使用指定数量的线程。默认为主机支持的硬件线程数。
- profile
设置编码配置文件。默认使用与输入的位深度和色度二次采样相匹配的配置文件。
包装器还有一些特定的选项:
- cpu-used
设置质量/编码速度权衡。有效范围为 0 到 8,数字越大表示速度越快但质量越低。默认值为 1,速度较慢但质量较高。
- auto-alt-ref
启用备用参考系的使用。默认为库的内部默认值。
- arnr-max-frames (frames)
设置 altref 降噪最大帧数。默认值为-1。
- arnr-strength (strength)
设置 altref 降噪滤波器强度。范围为 -1 到 6。默认值为 -1。
- aq-mode (aq-mode)
设置自适应量化模式。可能的值:
- ‘none (0)’
残疾人。
- ‘variance (1)’
基于方差。
- ‘complexity (2)’
基于复杂性。
- ‘cyclic (3)’
循环刷新。
- tune (tune)
设置编码器调谐所用的失真度指标。默认为
psnr
.- ‘psnr (0)’
- ‘ssim (1)’
- lag-in-frames
设置编码器在任一时间出于前瞻目的可以保持飞行的最大帧数。默认为库的内部默认值。
- error-resilience
启用错误恢复功能:
- default
提高针对整个帧丢失的恢复能力。
默认情况下不启用。
- crf
设置恒定质量(无比特率目标)和约束质量(具有最大比特率目标)模式的质量/大小权衡。有效范围为 0 到 63,数字越大表示质量越低且输出大小越小。仅在设置时使用;默认情况下仅使用比特率目标。
- static-thresh
设置块的更改阈值,低于该阈值的块将被编码器跳过。以任意单位定义为非负整数,默认为零(不跳过任何块)。
- drop-threshold
设置接近速率控制界限时丢弃帧的阈值。定义为目标缓冲区的百分比 - 当速率控制缓冲区低于此百分比时,帧将被丢弃,直到重新填充到阈值以上。默认为零(不丢弃任何帧)。
- denoise-noise-level (level)
颗粒合成时要去除的噪声量。如果此选项未设置或设置为 0,则会禁用颗粒合成。
- denoise-block-size (pixels)
用于颗粒合成去噪的块大小。如果未设置,AV1 编解码器将使用默认值 32。
- undershoot-pct (pct)
设置目标比特率的数据率下冲(最小)百分比。范围为 -1 到 100。默认值为 -1。
- overshoot-pct (pct)
设置目标比特率的数据率超调(最大)百分比。范围是 -1 到 1000。默认值为 -1。
- minsection-pct (pct)
GOP 比特率与目标比特率的最小变化百分比。如果未设置 minsection-pct,libaomenc 包装器将按如下方式计算它:
(minrate * 100 / bitrate)
。范围为 -1 到 100。默认值为 -1(未设置)。- maxsection-pct (pct)
GOP 比特率与目标比特率的最大变化百分比。如果未设置 maxsection-pct,libaomenc 包装器将按如下方式计算它:
(maxrate * 100 / bitrate)
。范围为 -1 到 5000。默认值为 -1(未设置)。- frame-parallel (boolean)
启用帧并行解码功能。默认为 true。
- tiles
设置用于对输入视频进行编码的图块数量,如列 x 行。数字越大,编码和解码的并行性就越高,但可能会降低编码效率。默认为输入视频大小所需的最小图块数量(对于 4K 及以下尺寸,此为 1x1(即单个图块))。
- tile-columns tile-rows
将图块数量设置为图块行数和列数的 log2。提供与 libvpx/VP9 的兼容性。
- row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)
启用基于行的多线程。默认禁用。
- enable-cdef (boolean)
启用约束方向增强过滤器。libaom-av1 编码器默认启用 CDEF。
- enable-restoration (boolean)
启用循环恢复过滤器。libaom-av1 的默认值为 true。
- enable-global-motion (boolean)
启用全局运动进行块预测。默认为 true。
- enable-intrabc (boolean)
启用块复制模式以进行块内预测。此模式对于屏幕内容很有用。默认为 true。
- enable-rect-partitions (boolean) (Requires libaom >= v2.0.0)
启用矩形分区。默认为 true。
- enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)
启用 1:4/4:1 分区。默认为 true。
- enable-ab-partitions (boolean) (Requires libaom >= v2.0.0)
启用 AB 形状分区。默认为 true。
- enable-angle-delta (boolean) (Requires libaom >= v2.0.0)
启用角度增量帧内预测。默认为 true。
- enable-cfl-intra (boolean) (Requires libaom >= v2.0.0)
启用从亮度帧内预测预测色度。默认为 true。
- enable-filter-intra (boolean) (Requires libaom >= v2.0.0)
启用过滤器帧内预测器。默认为 true。
- enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)
启用内部边缘过滤器。默认为 true。
- enable-smooth-intra (boolean) (Requires libaom >= v2.0.0)
启用平滑帧内预测模式。默认为 true。
- enable-paeth-intra (boolean) (Requires libaom >= v2.0.0)
在帧内预测中启用路径预测器。默认为 true。
- enable-palette (boolean) (Requires libaom >= v2.0.0)
启用调色板预测模式。默认为 true。
- enable-flip-idtx (boolean) (Requires libaom >= v2.0.0)
启用扩展变换类型,包括 FLIPADST_DCT、DCT_FLIPADST、FLIPADST_FLIPADST、ADST_FLIPADST、FLIPADST_ADST、IDTX、V_DCT、H_DCT、V_ADST、H_ADST、V_FLIPADST、H_FLIPADST。默认为 true。
- enable-tx64 (boolean) (Requires libaom >= v2.0.0)
启用 64 点变换。默认为 true。
- reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)
使用减少的变换类型集。默认为 false。
- use-intra-dct-only (boolean) (Requires libaom >= v2.0.0)
仅对 INTRA 模式使用 DCT。默认为 false。
- use-inter-dct-only (boolean) (Requires libaom >= v2.0.0)
仅对 INTER 模式使用 DCT。默认为 false。
- use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)
仅对 INTRA 模式使用默认变换。默认为 false。
- enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)
启用时间 mv 预测。默认为 true。
- enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)
使用减少的单一和复合参考集。默认为 false。
- enable-obmc (boolean) (Requires libaom >= v2.0.0)
启用 obmc。默认为 true。
- enable-dual-filter (boolean) (Requires libaom >= v2.0.0)
启用双过滤器。默认为 true。
- enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)
启用差异加权复合。默认为 true。
- enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)
启用距离加权复合。默认为 true。
- enable-onesided-comp (boolean) (Requires libaom >= v2.0.0)
启用一侧复合。默认为 true。
- enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)
启用间楔复合。默认为 true。
- enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)
启用内部楔形复合。默认为 true。
- enable-masked-comp (boolean) (Requires libaom >= v2.0.0)
启用蒙版复合。默认为 true。
- enable-interintra-comp (boolean) (Requires libaom >= v2.0.0)
启用内部复合。默认为 true。
- enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)
启用平滑帧内模式。默认为 true。
- aom-params
使用以“:”分隔的键=值对列表设置 libaom 选项。有关受支持选项的列表,请参阅
aomenc --help
“AV1 特定选项”部分。例如,指定 libaom 编码选项-aom-参数:
ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4
9.8 libsvtav1
SVT-AV1 编码器包装。
需要在配置期间存在 SVT-AV1 标头和库。您需要使用 显式配置构建--enable-libsvtav1
。
9.8.1 选项
- profile
设置编码配置文件。
- ‘main’
- ‘high’
- ‘professional’
- level
设置工作点水平。例如:“4.0”
- hielevel
设置分层预测级别。
- ‘3level’
- ‘4level’
这是默认设置。
- tier
设置工作点等级。
- ‘main’
这是默认设置。
- ‘high’
- qmax
设置使用比特率模式时要使用的最大量化器。
- qmin
设置使用比特率模式时要使用的最小量化器。
- crf
cRF 速率控制模式中使用的恒定速率因子值 (0-63)。
- qp
设置 cqp 速率控制模式中使用的量化器 (0-63)。
- sc_detection
启用场景变化检测。
- la_depth
设置向前查看的帧数 (0-120)。
- preset
设置质量与速度的权衡,范围为 0 到 13。值越高速度越快,但质量较低。
- tile_rows
设置要使用的图块行数的 log2 (0-6)。
- tile_columns
设置要使用的图块列数的 log2 (0-4)。
- svtav1-params
使用以“:”分隔的键=值对列表设置 SVT-AV1 选项。有关可接受参数的列表,请参阅 SVT-AV1 编码器用户指南。
9.9 libjxl
libjxl JPEG XL 编码器包装器。
需要在配置过程中存在 libjxl 标头和库。您需要使用 显式配置构建
--enable-libjxl
。
9.9.1 选项
libjxl 包装器支持以下选项:
- distance
设置目标 Butteraugli 距离。这是一个质量设置:距离越短,质量越高,距离=1.0 大致相当于摄影内容的 libjpeg 质量 90。设置 distance=0.0 会产生真正的无损编码。有效值范围在 0.0 到 15.0 之间,正常值很少超过 5.0。设置 distance=0.1 通常可以使大多数输入保持透明。默认值为 1.0。
- effort
设置使用的编码工作。较高的工作量值会产生更一致的质量,并且通常会产生更好的质量/bpp 曲线,但代价是需要更多的 CPU 时间。有效值范围为 1 到 9,默认值为 7。
- modular
强制编码器使用模块化模式而不是自动选择。默认情况下使用 VarDCT 进行有损编码,使用 Modular 进行无损编码。VarDCT 在有损编码方面通常优于 Modular,但不支持无损编码。
9.10 libkvazaar
Kvazaar H.265/HEVC 编码器。
需要在配置过程中存在 libkvazaar 标头和库。您需要显式配置构建 --启用libkvazaar。
9.10.1 选项
- b
设置目标视频比特率(以位/秒为单位)并启用速率控制。
- kvazaar-params
将 kvazaar 参数设置为以逗号 (,) 分隔的名称=值对列表。有关选项列表,请参阅 kvazaar 文档。
9.11 libopenh264
Cisco libopenh264 H.264/MPEG-4 AVC 编码器包装器。
该编码器需要在配置期间存在 libopenh264 标头和库。您需要使用 显式配置构建--enable-libopenh264
。使用 检测该库
pkg-config
。
有关该库的更多信息,请参阅 http://www.openh264.org。
9.11.1 选项
以下 FFmpeg 全局选项会影响 libopenh264 编码器的配置。
- b
设置比特率(每秒的位数)。
- g
设置 GOP 大小。
- maxrate
设置最大比特率(每秒的位数)。
- flags +global_header
在比特流中设置全局标头。
- slices
设置并行编码中使用的切片数量。默认值为 0。仅在以下情况下使用切片模式被设定为 '固定的'。
- loopfilter
启用环路滤波器,如果设置为 1(自动启用)。要禁用,请将值设置为 0。
- profile
设置个人资料限制。如果设置为 ' 的值主要的' 启用 CABAC(将
SEncParamExt.iEntropyCodingModeFlag
标志设置为 1)。- max_nal_size
设置最大 NAL 大小(以字节为单位)。
- allow_skip_frames
如果设置为 1,则允许跳帧达到目标比特率。
9.12 libtheora
libtheora Theora 编码器包装器。
需要在配置过程中存在 libtheora 标头和库。您需要使用 显式配置构建
--enable-libtheora
。
有关 libtheora 项目的更多信息,请参阅 http://www.theora.org/。
9.12.1 选项
以下全局选项映射到内部 libtheora 选项,这些选项影响编码流的质量和比特率。
- b
设置 CBR(恒定比特率)模式的视频比特率(以位/秒为单位)。如果启用了 VBR(可变比特率)模式,则忽略此选项。
- flags
用于通过以下方式启用恒定质量模式 (VBR) 编码 质量尺度标志,并启用
pass1
和pass2
模式。- g
设置 GOP 大小。
- global_quality
将全局质量设置为 lambda 单位的整数。
仅当使用 启用 VBR 模式时相关
flags +qscale
。该值通过除以 来转换为 QP 单位FF_QP2LAMBDA
,剪裁在 [0 - 10] 范围内,然后乘以 6.3 以获得本机 libtheora 范围 [0-63] 内的值。较高的值对应于较高的质量。- q
设置为非负值时启用 VBR 模式,并将恒定质量值设置为 QP 单位的双浮点值。
该值被剪裁在 [0-10] 范围内,然后乘以 6.3 以获得本机 libtheora 范围 [0-63] 内的值。
ffmpeg
该选项仅在使用命令行工具时有效。对于库界面用户,请使用全局质量。
9.12.2 示例
- 设置最大恒定质量 (VBR) 编码
ffmpeg
:ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
- 用于
ffmpeg
转换 CBR 1000 kbps Theora 视频流:ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
9.13 libvpx
通过 libvpx 支持 VP8/VP9 格式。
需要在配置过程中存在 libvpx 标头和库。您需要使用 显式配置构建--enable-libvpx
。
9.13.1 选项
libvpx 包装器支持以下选项。括号中列出了等效选项
vpxenc
或值,以便于迁移。
为了减少文档的重复,这里仅记录私有选项和其他一些需要特别注意的选项。有关未记录的通用选项的文档,请参阅 “编解码器选项”一章。
要获取有关 libvpx 选项的更多文档,请调用命令
ffmpeg -h encoder=libvpx
,ffmpeg -h encoder=libvpx-vp9
或
vpxenc --help
。更多信息请参阅 libvpx API 文档。
- b (target-bitrate)
设置比特率(以位/秒为单位)。请注意 FFmpeg 的乙选项以位/秒表示,而
vpxenc
s目标比特率单位为千比特/秒。- g (kf-max-dist)
- keyint_min (kf-min-dist)
- qmin (min-q)
最小(最佳质量)量化器。
- qmax (max-q)
最大(最差质量)量化器。可以每帧更改。
- bufsize (buf-sz, buf-optimal-sz)
设置速率控制缓冲区大小(以位为单位)。Note
vpxenc
的选项以毫秒为单位指定,libvpx 包装器按如下方式转换该值:buf-sz = bufsize * 1000 / bitrate
,buf-optimal-sz = bufsize * 1000 / bitrate * 5 / 6
.- rc_init_occupancy (buf-initial-sz)
设置解码开始前应加载到 rc 缓冲区的位数。注意
vpxenc
的选项以毫秒为单位指定,libvpx 包装器按如下方式转换该值:rc_init_occupancy * 1000 / bitrate
。- undershoot-pct
设置目标比特率的数据率下冲(最小)百分比。
- overshoot-pct
设置目标比特率的数据率超调(最大)百分比。
- skip_threshold (drop-frame)
- qcomp (bias-pct)
- maxrate (maxsection-pct)
设置 GOP 最大比特率(以位/秒为单位)。注意
vpxenc
的选项指定为目标比特率的百分比,libvpx 包装器按如下方式转换该值:(maxrate * 100 / bitrate)
。- minrate (minsection-pct)
设置 GOP 最小比特率(以位/秒为单位)。注意
vpxenc
的选项指定为目标比特率的百分比,libvpx 包装器按如下方式转换该值:(minrate * 100 / bitrate)
。- minrate, maxrate, b end-usage=cbr
(minrate == maxrate == bitrate)
。- crf (end-usage=cq, cq-level)
- tune (tune)
- ‘psnr (psnr)’
- ‘ssim (ssim)’
- quality, deadline (deadline)
- ‘best’
使用最佳质量的截止日期。这个选项名字不好,而且速度很慢,应该避免,因为它可能会提供比好的输出质量更差的输出。
- ‘good’
使用高质量的截止日期。与使用时,这是速度和质量之间的良好权衡CPU使用选项。
- ‘realtime’
使用实时质量截止日期。
- speed, cpu-used (cpu-used)
设置质量/速度比调节器。较高的值会加快编码速度,但会牺牲质量。
- nr (noise-sensitivity)
- static-thresh
设置块的更改阈值,低于该阈值的块将被编码器跳过。
- slices (token-parts)
请注意 FFmpeg 的切片选项给出分区的总数,而
vpxenc
's令牌部分给出为log2(partitions)
.- max-intra-rate
将最大 I 帧比特率设置为目标比特率的百分比。值 0 表示无限制。
- force_key_frames
VPX_EFLAG_FORCE_KF
- Alternate reference frame related
- auto-alt-ref
启用备用参考系的使用(仅限 2 遍)。大于 1 的值启用多层交替参考帧(仅限 VP9)。
- arnr-maxframes
设置 altref 降噪最大帧数。
- arnr-type
设置altref降噪滤波器类型:向后、向前、居中。
- arnr-strength
设置 altref 降噪滤波器强度。
- rc-lookahead, lag-in-frames (lag-in-frames)
设置帧数以预测帧类型和速率控制。
- min-gf-interval
设置最小黄金/备用参考帧间隔(仅限 VP9)。
- error-resilient
启用错误弹性功能。
- sharpness integer
以降低 PSNR 为代价来提高清晰度。有效范围为 [0, 7]。
- ts-parameters
使用 : 分隔的键=值对列表设置时间可伸缩性配置。例如,要使用以下命令指定时间可伸缩性参数
ffmpeg
:ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\ ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\ ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT
下面是对各个参数的简单解释,更多详细信息
struct vpx_codec_enc_cfg
请参阅。vpx/vpx_encoder.h
- ts_number_layers
时间编码层的数量。
- ts_target_bitrate
每个时间层的目标比特率(以 kbps 为单位)。(比特率应包含较低的时间层)。
- ts_rate_decimator
每个时间层的帧率抽取因子。
- ts_periodicity
定义帧时间层成员资格的序列长度。
- ts_layer_id
定义帧到时间层的成员资格的模板。
- ts_layering_mode
(可选)从一组预定义的时间分层模式中选择时间结构。目前支持以下选项。
- 0
metadata
内部没有提供时间分层标志,依赖于使用带有以下键的字段传入的标志AVFrame
。- vp8-flags
设置传递到编码器的标志以指示当前帧的参考方案。有关更多详细信息, 请参阅 中的函数
vpx_codec_encode
。vpx/vpx_encoder.h
- temporal_id
显式设置要编码的当前帧的时间 id。
- 2
两个时间层。0-1...
- 3
三个时间层。0-2-1-2...;具有单一参考系。
- 4
与选项“3”相同,除了时间周期内的两个时间第2层帧之间存在依赖性。
- VP9-specific options
- lossless
启用无损模式。
- tile-columns
设置要使用的图块列数。请注意,这给出为
log2(tile_columns)
。例如,通过设置来请求 8 个平铺列平铺列选项3。- tile-rows
设置要使用的图块行数。请注意,这给出为
log2(tile_rows)
。例如,通过设置来请求 4 个平铺行平铺行 选项2。- frame-parallel
启用帧并行解码功能。
- aq-mode
设置自适应量化模式(0:关闭(默认)、1:方差、2:复杂度、3:循环刷新、4:equator360)。
- colorspace color-space
设置输入色彩空间。VP9 比特流支持发送以下颜色空间信号:
- ‘rgb’ sRGB
- ‘bt709’ bt709
- ‘unspecified’ unknown
- ‘bt470bg’ bt601
- ‘smpte170m’ smpte170
- ‘smpte240m’ smpte240
- ‘bt2020_ncl’ bt2020
- row-mt boolean
启用基于行的多线程。
- tune-content
设置内容类型:默认 (0)、屏幕 (1)、电影 (2)。
- corpus-complexity
Corpus VBR 模式是标准 VBR 的一种变体,其中复杂性分布中点被传入,而不是针对特定剪辑或块进行计算。
有效范围为 [0, 10000]。0(默认)使用标准 VBR。
- enable-tpl boolean
启用时间依赖模型。
- ref-frame-config
使用每帧元数据,将结构成员设置
vpx_svc_ref_frame_config_t
为vpx/vp8cx.h
精细控制引用方案和帧缓冲区管理。
使用 : 分隔的键=值对列表。例如,av_dict_set(&av_frame->metadata, "ref-frame-config", \ "rfc_update_buffer_slot=7:rfc_lst_fb_idx=0:rfc_gld_fb_idx=1:rfc_alt_fb_idx=2:rfc_reference_last=0:rfc_reference_golden=0:rfc_reference_alt_ref=0");
- rfc_update_buffer_slot
指示要更新的缓冲区槽号
- rfc_update_last
指示是否更新LAST帧
- rfc_update_golden
是否更新GOLDEN帧
- rfc_update_alt_ref
指示是否更新ALT_REF帧
- rfc_lst_fb_idx
最后帧缓冲区索引
- rfc_gld_fb_idx
黄金帧缓冲区索引
- rfc_alt_fb_idx
ALT_REF 帧缓冲区索引
- rfc_reference_last
指示是否引用LAST帧
- rfc_reference_golden
指示是否引用GOLDEN框架
- rfc_reference_alt_ref
指示是否引用ALT_REF帧
- rfc_reference_duration
表示帧持续时间
有关 libvpx 的更多信息,请参阅: http: //www.webmproject.org/
9.14 libwebp
libwebp WebP 图像编码器包装器
libwebp 是 Google 的 WebP 图像官方编码器。它可以以有损或无损模式进行编码。有损图像本质上是 VP8 帧的包装。无损图像是 Google 开发的独立编解码器。
9.14.1 像素格式
目前,由于格式和 libwebp 的限制,libwebp 仅支持有损 YUV420 和无损 RGB。任一模式都支持 Alpha。由于 API 的限制,如果有损编码时传入 RGB,或者无损编码时传入 YUV,则将使用 libwebp 中的函数自动转换像素格式。这并不理想,这样做只是为了方便。
9.14.2 选项
- -lossless boolean
启用/禁用无损模式的使用。默认值为 0。
- -compression_level integer
对于有损来说,这是质量/速度的权衡。对于给定大小,较高的值可提供更好的质量,但代价是增加编码时间。对于无损,这是大小/速度的权衡。值越高,尺寸越小,但代价是编码时间增加。更具体地说,它控制使用的额外算法和压缩工具的数量,并改变这些工具的组合。这映射到libwebp 中的方法选项。有效范围为 0 到 6。默认值为 4。
- -quality float
对于有损编码,这控制图像质量。对于无损编码,这控制了压缩所花费的精力和时间。范围是 0 到 100。默认值为 75。
- -preset type
配置预设。这会根据图像的一般类型进行一些自动设置。
- none
不要使用预设。
- default
使用默认编码器。
- picture
数码照片,如肖像、内景
- photo
户外拍摄,自然光
- drawing
手绘或线条画,具有高对比度细节
- icon
小尺寸彩色图像
- text
类似文本的
9.15 libx264, libx264rgb
x264 H.264/MPEG-4 AVC 编码器包装器。
该编码器需要在配置期间存在 libx264 标头和库。您需要使用 显式配置构建
--enable-libx264
。
libx264 支持大量功能,包括 8x8 和 4x4 自适应空间变换、自适应 B 帧放置、CAVLC/CABAC 熵编码、隔行扫描 (MBAFF)、无损模式、细节保留的 psy 优化(自适应量化、psy-RD、psy -格子)。
许多 libx264 编码器选项映射到 FFmpeg 全局编解码器选项,而独特的编码器选项通过私有选项提供。另外还有x264选项和x264-参数
private 选项允许传递 libx264x264_param_parse
函数接受的 key=value 元组列表。
x264 项目网站位于 http://www.videolan.org/developers/x264.html。
libx264rgb 编码器与 libx264 相同,只是它接受打包 RGB 像素格式作为输入而不是 YUV。
9.15.1 支持的像素格式
x264 支持 8 至 10 位颜色空间。确切的位深度由 x264 的配置时间控制。
9.15.2 选项
libx264 包装器支持以下选项。括号中列出了等效选项
x264
或值,以便于迁移。
为了减少文档的重复,这里仅记录私有选项和其他一些需要特别注意的选项。有关未记录的通用选项的文档,请参阅 “编解码器选项”一章。
要获取有关 libx264 选项的更准确和更广泛的文档,请调用该命令x264 --fullhelp
或查阅 libx264 文档。
- b (bitrate)
设置比特率(以位/秒为单位)。请注意 FFmpeg 的乙选项以位/秒表示,而
x264
s比特率单位为千比特/秒。- bf (bframes)
- g (keyint)
- qmin (qpmin)
最小量化器比例。
- qmax (qpmax)
最大量化器比例。
- qdiff (qpstep)
量化器尺度之间的最大差异。
- qblur (qblur)
量化曲线模糊
- qcomp (qcomp)
量化曲线压缩因子
- refs (ref)
每个 P 帧可以使用的参考帧数。范围是0-16。
- level (level)
如果值为正则设置
x264_param_t.i_level_idc
该值,否则忽略。该值可以使用
AVCodecContext
API 设置(例如,通过AVCodecContext
直接设置该值),并指定为映射到相应级别的整数(例如,值 31 映射到 H.264 级别 IDC“3.1”,如表中所定义x264_levels
) 。当设置为非正值时,它会被忽略。或者,它可以设置为私有选项,覆盖 中设置的值
AVCodecContext
,并且在这种情况下必须指定为级别 IDC 标识符(例如“3.1”),如 H.264 附件 A 所定义。- sc_threshold (scenecut)
设置场景变化检测的阈值。
- trellis (trellis)
执行网格量化以提高效率。默认启用。
- nr (nr)
- me_range (merange)
运动搜索的最大范围(以像素为单位)。
- me_method (me)
设置运动估计方法。按速度降序排列的可能值:
- ‘dia (dia)’
- ‘epzs (dia)’
半径为 1 的菱形搜索(最快)。'出口处' 是 ' 的别名直径'。
- ‘hex (hex)’
半径为 2 的六边形搜索。
- ‘umh (umh)’
不均匀的多六边形搜索。
- ‘esa (esa)’
详尽的搜索。
- ‘tesa (tesa)’
Hadamard 穷举搜索(最慢)。
- forced-idr
通常,当强制I帧类型时,编码器可以选择任何类型的I帧。此选项强制它选择 IDR 帧。
- subq (subme)
亚像素运动估计方法。
- b_strategy (b-adapt)
自适应 B 帧放置决策算法。仅在第一次通过时使用。
- keyint_min (min-keyint)
最小 GOP 大小。
- coder
设置熵编码器。可能的值:
- ‘ac’
启用 CABAC。
- ‘vlc’
启用 CAVLC 并禁用 CABAC。
x264
它产生与s相同的效果 --无卡巴克选项。
- cmp
设置全像素运动估计比较算法。可能的值:
- ‘chroma’
在运动估计中启用色度。
- ‘sad’
忽略运动估计中的色度。
x264
它产生与s相同的效果 --无色度我选项。
- threads (threads)
编码线程数。
- thread_type
设置多线程技术。可能的值:
- ‘slice’
基于切片的多线程。
x264
它产生与s相同的效果 --切片线程选项。- ‘frame’
基于帧的多线程。
- flags
设置编码标志。它可用于禁用封闭 GOP 并通过将其设置为 来启用开放 GOP
-cgop
。结果类似于 的x264
行为--open-gop选项。- rc_init_occupancy (vbv-init)
- preset (preset)
设置编码预设。
- tune (tune)
设置编码参数的调整。
- profile (profile)
设置个人资料限制。
- fastfirstpass
编码第一遍时启用快速设置,设置为1时。设置为0时,与 的效果
x264
相同 --慢速优先选项。- crf (crf)
设置恒定质量模式的质量。
- crf_max (crf-max)
在 CRF 模式下,防止 VBV 降低质量超过此点。
- qp (qp)
设置恒定量化率控制方法参数。
- aq-mode (aq-mode)
设置 AQ 方法。可能的值:
- ‘none (0)’
残疾人。
- ‘variance (1)’
方差 AQ(复杂性掩模)。
- ‘autovariance (2)’
自方差 AQ(实验)。
- aq-strength (aq-strength)
设置 AQ 强度,减少平坦和纹理区域的遮挡和模糊。
- psy
x264
设置为1时使用心理视觉优化。设置为0时与 的效果相同--无精神选项。- psy-rd (psy-rd)
设置心理视觉优化的强度,采用 psy-rd : psy-trellis格式。
- rc-lookahead (rc-lookahead)
设置帧数以预测帧类型和速率控制。
- weightb
设置为1时启用B帧的加权预测。设置为0时,与 的效果
x264
相同--无权重b选项。- weightp (weightp)
设置P帧的加权预测方法。可能的值:
- ‘none (0)’
残疾人
- ‘simple (1)’
仅启用加权参考
- ‘smart (2)’
启用加权参考和重复项
- ssim (ssim)
编码后启用计算和打印 SSIM 统计信息。
- intra-refresh (intra-refresh)
当设置为 1 时,启用定期帧内刷新而不是 IDR 帧。
- avcintra-class (class)
配置编码器以生成 AVC-Intra。有效值为 50,100 和 200
- bluray-compat (bluray-compat)
配置编码器以兼容蓝光标准。它是设置“bluray-compat=1force-cfr=1”的简写。
- b-bias (b-bias)
设置对 B 帧使用频率的影响。
- b-pyramid (b-pyramid)
设置保留某些 B 帧作为参考的方法。可能的值:
- ‘none (none)’
残疾人。
- ‘strict (strict)’
严格的等级金字塔。
- ‘normal (normal)’
非严格(不兼容蓝光)。
- mixed-refs
启用每个分区使用一个引用,而不是设置为 1 时每个宏块使用一个引用。设置为 0 时,与 的效果
x264
相同--无混合参考选项。- 8x8dct
设置为 1 时启用自适应空间变换(高调 8x8 变换)。设置为 0 时与 的效果
x264
相同--no-8x8dct选项。- fast-pskip
设置为 1 时,启用 P 帧的早期 SKIP 检测。设置为 0 时,与 的效果
x264
相同 --无快速 pskip选项。- aud (aud)
设置为 1 时启用访问单元分隔符。
- mbtree
设置为 1 时启用使用宏块树速率控制。设置为 0 时与 的效果
x264
相同 --无mbtree选项。- deblock (deblock)
设置环路滤波器参数,采用alpha : beta形式。
- cplxblur (cplxblur)
设置 QP 的波动减少(曲线压缩之前)。
- partitions (partitions)
将分区设置为以逗号分隔的列表。列表中可能的值:
- ‘p8x8’
8x8 P 型框架分区。
- ‘p4x4’
4x4 P 型框架分区。
- ‘b8x8’
4x4 B 型框架隔断。
- ‘i8x8’
8x8 I 框架分区。
- ‘i4x4’
4x4 I 帧分区。(启用 'p4x4'需要'p8x8' 被启用。启用'i8x8' 需要自适应空间变换(8x8dct 选项)被启用。)
- ‘none (none)’
不考虑任何分区。
- ‘all (all)’
考虑每个分区。
- direct-pred (direct)
设置直接 MV 预测模式。可能的值:
- ‘none (none)’
禁用 MV 预测。
- ‘spatial (spatial)’
启用空间预测。
- ‘temporal (temporal)’
启用时间预测。
- ‘auto (auto)’
自动决定。
- slice-max-size (slice-max-size)
设置每个片的大小限制(以字节为单位)。如果未指定,但 RTP 负载大小(附注) 被指定,即被使用。
- stats (stats)
设置多通道统计数据的文件名。
- nal-hrd (nal-hrd)
设置信号 HRD 信息(需要vbv 缓冲区大小要设置)。可能的值:
- ‘none (none)’
禁用 HRD 信息信号。
- ‘vbr (vbr)’
可变比特率。
- ‘cbr (cbr)’
恒定比特率(MP4 容器中不允许)。
- x264opts (N.A.)
设置任何 x264 选项,请参阅
x264 --fullhelp
参考资料 的列表。参数是由“:”分隔的键=值对的列表。在使用“:”作为分隔符本身的过滤器和psy-rd选项中,请改用“,”。他们很久以前也接受它,但由于某种原因,这没有记录下来。
例如,使用以下命令指定 libx264 编码选项
ffmpeg
:ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
- a53cc boolean
将隐藏式字幕(必须是 ATSC 兼容格式)导入到输出中。只有 mpeg2 和 h264 解码器提供这些。默认值为 1(打开)。
- udu_sei boolean
将未注册 SEI 的用户数据(如果可用)导入到输出中。默认值为 0(关闭)。
- mb_info boolean
通过 AVFrameSideData 设置 mb_info 数据,仅在从 API 使用时有用。默认值为 0(关闭)。
- x264-params (N.A.)
使用 :-分隔的 key=value 参数列表覆盖 x264 配置。
该选项的功能与x264选项,但为了与 Libav 分支兼容而重复。
例如,使用以下命令指定 libx264 编码选项
ffmpeg
:ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\ cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\ no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
提供了常见用途的编码 ffpresets,以便它们可以与通用预设系统一起使用(例如,传递前选项)。
9.16 libx265
x265 H.265/HEVC 编码器包装器。
该编码器需要在配置期间存在 libx265 标头和库。您需要显式配置构建 --启用-libx265。
9.16.1 选项
- b
设置目标视频比特率。
- bf
- g
设置 GOP 大小。
- keyint_min
最小 GOP 大小。
- refs
每个 P 帧可以使用的参考帧数。范围为1-16。
- preset
设置 x265 预设。
- tune
设置 x265 调谐参数。
- profile
设置个人资料限制。
- crf
设置恒定质量模式的质量。
- qp
设置恒定量化率控制方法参数。
- qmin
最小量化器比例。
- qmax
最大量化器比例。
- qdiff
量化器尺度之间的最大差异。
- qblur
量化曲线模糊
- qcomp
量化曲线压缩因子
- i_qfactor
- b_qfactor
- forced-idr
通常,当强制I帧类型时,编码器可以选择任何类型的I帧。此选项强制它选择 IDR 帧。
- udu_sei boolean
将未注册 SEI 的用户数据(如果可用)导入到输出中。默认值为 0(关闭)。
- x265-params
使用以“:”分隔的键=值对列表设置 x265 选项。请参阅
x265 --help
参考资料 中的选项列表。例如,指定 libx265 编码选项-x265-参数:
ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
9.17 libxavs2
xavs2 AVS2-P2/IEEE1857.4 编码器包装器。
该编码器需要在配置期间存在 libxavs2 标头和库。您需要显式配置构建 --启用-libxavs2。
使用以下标准 libavcodec 选项:
- 乙/比特率
- G/组大小
- 男朋友/最大b帧数
编码器还有自己的特定选项:
9.17.1 选项
- lcu_row_threads
设置行的并行线程数从 1 到 8(默认 5)。
- initial_qp
将 xavs2 量化参数设置为 1 到 63(默认 34)。这用于设置第一帧的初始 qp。
- qp
将 xavs2 量化参数设置为 1 到 63(默认 34)。用于设置恒定 QP 模式下的 qp 值。
- max_qp
将速率控制的最大 qp 设置为从 1 到 63(默认为 55)。
- min_qp
将速率控制的最小 qp 设置为 1 到 63(默认 20)。
- speed_level
将速度级别设置为 0 到 9(默认 0)。越高越好但越慢。
- log_level
将日志级别设置为 -1 到 3(默认 0)。-1:无,0:错误,1:警告,2:信息,3:调试。
- xavs2-params
使用以“:”分隔的 键=值对列表设置 xavs2 选项。
例如,指定 libxavs2 编码选项-xavs2-参数:
ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2
9.18 libxvid
Xvid MPEG-4 第 2 部分编码器包装器。
该编码器需要在配置期间存在 libxvidcore 标头和库。您需要使用 显式配置构建
--enable-libxvid --enable-gpl
。
本机mpeg4
编码器支持 MPEG-4 Part 2 格式,因此用户无需此库即可编码为该格式。
9.18.1 选项
libxvid 包装器支持以下选项。以下一些选项已列出但未记录,并且对应于共享编解码器选项。请参阅“编解码器选项”一章以获取其文档。未列出的其他共享选项对 libxvid 编码器没有影响。
- b
- g
- qmin
- qmax
- mpeg_quant
- threads
- bf
- b_qfactor
- b_qoffset
- flags
设置特定的编码标志。可能的值:
- ‘mv4’
按宏块使用四个运动矢量。
- ‘aic’
启用高质量 AC 预测。
- ‘gray’
仅编码灰度。
- ‘gmc’
启用全局运动补偿 (GMC)。
- ‘qpel’
启用四分之一像素运动补偿。
- ‘cgop’
启用封闭式 GOP。
- ‘global_header’
将全局标题放置在额外数据中,而不是每个关键帧中。
- trellis
- me_quality
设置运动估计质量级别。按速度降序和质量升序排列的可能值:
- ‘0’
不使用运动估计(默认)。
- ‘1, 2’
启用 16x16 块的高级菱形区域搜索和 16x16 块的半像素细化。
- ‘3, 4’
启用上述所有功能,加上 8x8 块的高级菱形区域搜索和 8x8 块的半像素细化,还可以在 P 帧和 B 帧的色度平面上进行运动估计。
- ‘5, 6’
启用上述所有功能,以及扩展的 16x16 和 8x8 块搜索。
- mbd
设置宏块决策算法。按质量递增顺序排列的可能值:
- ‘simple’
使用宏块比较函数算法(默认)。
- ‘bits’
为 16x16 块启用基于率失真的半像素和四分之一像素细化。
- ‘rd’
启用上述所有功能,加上 8x8 块的基于率失真的半像素和四分之一像素细化,以及使用方形图案的基于率失真的搜索。
- lumi_aq
设置为 1 时启用亮度遮蔽自适应量化。默认值为 0(禁用)。
- variance_aq
设置为 1 时启用方差自适应量化。默认值为 0(禁用)。
当与亮度_aq,所得质量不会优于单独指定的两个质量中的任何一个。换句话说,产生的质量将是两种效果中最差的一种。
- ssim
设置结构相似度(SSIM)显示方法。可能的值:
- ‘off’
禁用显示 SSIM 信息。
- ‘avg’
编码结束时将平均 SSIM 输出到标准输出。显示平均 SSIM 的格式为:
Average SSIM: %f
对于不熟悉 C 的用户,%f 表示浮点数或小数(例如 0.939232)。
- ‘frame’
将编码期间的每帧 SSIM 数据和编码结束时的平均 SSIM 数据输出到 stdout。每帧信息的格式为:
SSIM: avg: %1.3f min: %1.3f max: %1.3f
对于不熟悉 C 的用户,%1.3f 表示一个浮点数,在点后四舍五入到 3 位数字(例如 0.932)。
- ssim_acc
设置 SSIM 精度。有效选项是 0-4 范围内的整数,其中 0 给出最准确的结果,4 计算最快。
9.19 MediaFoundation
这为 MediaFoundation 框架中的编码器(音频和视频)提供了包装器。它可以访问软件和硬件编码器。视频编码器可以采用 nv12 或 yuv420p 形式输入(有些编码器支持两者,有些编码器仅支持其中之一 - 实际上,nv12 是更安全的选择,尤其是在硬件编码器中)。
9.20 Microsoft RLE
Microsoft RLE 又名 MSRLE 编码器。仅支持 8 位调色板模式。与Windows 3.1和Windows 95兼容。
9.20.1 选项
- g integer
关键帧间隔。至少每
-g
帧插入一个关键帧,有时甚至更快。
9.21 mpeg2
MPEG-2 视频编码器。
9.21.1 选项
- profile
选择要编码的 mpeg2 配置文件:
- ‘422’
- ‘high’
- ‘ss’
空间可扩展
- ‘snr’
信噪比可扩展
- ‘main’
- ‘simple’
- level
选择要编码的 mpeg2 级别:
- ‘high’
- ‘high1440’
- ‘main’
- ‘low’
- seq_disp_ext integer
指定编码器是否应将sequence_display_extension写入输出。
- -1
- auto
通过检查要写入的数据是否与默认值或未指定的值不同来自动决定是否写入(这是默认值)。
- 0
- never
永远不要写它。
- 1
- always
总是写它。
- video_format integer
指定写入序列显示扩展的 video_format ,指示视频图片的来源。默认为 '未指定', 可 '成分','朋友','NTSC','塞卡姆' 或者 '苹果'。为了获得最大的兼容性,请使用 '成分'。
- a53cc boolean
将隐藏式字幕(必须是 ATSC 兼容格式)导入到输出中。默认值为 1(打开)。
9.22 png
PNG 图像编码器。
9.22.1 私有选项
- dpi integer
设置像素的物理密度,以每英寸点数为单位,默认未设置
- dpm integer
设置像素的物理密度,以每米点数为单位,默认未设置
9.23 ProRes
Apple ProRes 编码器。
FFmpeg 包含 2 个 ProRes 编码器,即 prores-aw 和 prores-ks 编码器。可以通过选项选择所使用的编码器-vcodec
。
9.23.1 prores-ks 的私有选项
- profile integer
选择要编码的 ProRes 配置文件
- ‘proxy’
- ‘lt’
- ‘standard’
- ‘hq’
- ‘4444’
- ‘4444xq’
- quant_mat integer
选择量化矩阵。
- ‘auto’
- ‘default’
- ‘proxy’
- ‘lt’
- ‘standard’
- ‘hq’
如果设置为auto,将选择与配置文件匹配的矩阵。如果未设置,将选择 提供最高质量的矩阵(默认) 。
- bits_per_mb integer
为编码一个宏块分配多少位。不同的配置文件每个宏块使用 200 到 2400 位,最大值为 8000。
- mbs_per_slice integer
每个切片中宏块的数量(1-8);默认值 (8) 几乎适用于所有情况。
- vendor string
覆盖 4 字节供应商 ID。像apl0这样的自定义供应商 ID会声称该流是由 Apple 编码器生成的。
- alpha_bits integer
指定 alpha 分量的位数。可能的值为0、8和16。使用0禁用 alpha 平面编码。
9.23.2 速度考虑
在默认操作模式下,编码器必须遵守帧约束(即不生成尺寸大于请求的帧),同时仍然使输出图像尽可能好。包含大量小细节的帧更难压缩,编码器将花费更多时间为每个切片搜索合适的量化器。
设置更高每MB位数限制会提高速度。
为了获得最快的编码速度,请设置质量尺度参数(4为推荐值)并且不设置大小限制。
9.24 QSV Encoders
英特尔 QuickSync 视频编码器系列(MPEG-2、H.264、HEVC、JPEG/MJPEG、VP9、AV1)
9.24.1 码率控制方法
码率控制方法选择如下:
- 什么时候全局质量指定后,将使用基于质量的模式。具体来说,这意味着
- - CQP - 恒定量化器比例,当质量尺度编解码器标志也被设置(-qscaleffmpeg 选项)。
- - LA_ICQ - 具有前瞻性的智能恒定质量,当 展望选项也已设置。
- - ICQ – 智能恒定质量否则。对于 ICQ 模式,全局质量范围为 1 到 51,其中 1 为最佳质量。
- 否则,使用基于比特率的模式。对于所有这些,您应该至少指定所需的平均比特率乙选项。
- - LA - 带前瞻的 VBR,当展望选项已指定。
- - VCM - 视频会议模式,当氯乙烯选项已设置。
- - CBR - 恒定比特率,当最大速率被指定并等于平均比特率。
- - VBR - 可变比特率,当最大速率已指定,但高于平均比特率。
- - AVBR - 平均VBR模式,当最大速率未指定,两者 avbr_准确度和avbr_收敛被设置为非零。此模式适用于 Windows 上的 H264 和 HEVC。
请注意,根据您的系统,编码器可能会选择与您指定的模式不同的模式。将详细级别设置为详细或更高,以查看 QSV 运行时使用的实际设置。
9.24.2 全局选项->MSDK 选项
其他 libavcodec 全局选项映射到 MSDK 选项,如下所示:
- g/gop_size->图像大小
- bf/最大b帧数+1 ->GopRefDist
- rc_init_ocpancy/rc_initial_buffer_ocpancy-> 初始延迟(KB)
- 切片->切片数量
- 参考文献->参考帧数
- b_strategy/b_frame_strategy->B参考类型
- cgop/CLOSED_GOP编解码器标志 ->选区选择标志
- 对于CQP模式,i_qfactor/i_qoffset和 b_qfactor/b_qoffset分别设置QPP和QPI以及QPP和QPB之间的差值。
- 设置编码员值vlc的选项将使 H.264 编码器使用 CAVLC 而不是 CABAC。
9.24.3 常用选项
所有 qsv 编码器都使用以下选项。
- async_depth
指定应用程序显式同步结果之前执行的异步操作数。如果为零,则未指定该值。
- preset
此选项列出了从非常快(最佳速度)到非常慢(最佳质量)的一系列选择。
- ‘veryfast’
- ‘faster’
- ‘fast’
- ‘medium’
- ‘slow’
- ‘slower’
- ‘veryslow’
- forced_idr
强制 I 帧作为 IDR 帧。
- low_power
对于编码器,将此标志设置为 ON 以降低功耗和 GPU 使用率。
9.24.4 运行时选项
在 qsv 编码过程中可以使用以下选项。
- global_quality
- i_quant_factor
- i_quant_offset
- b_quant_factor
- b_quant_offset
h264_qsv 和 hevc_qsv 支持。更改这些值以重置 qsv 编解码器的 qp 配置。
- max_frame_size
h264_qsv 和 hevc_qsv 支持。更改此值可重置 qsv 编解码器的 MaxFrameSize 配置。
- gop_size
更改此值以重置 qsv 编解码器的 gop 配置。
- int_ref_type
- int_ref_cycle_size
- int_ref_qp_delta
- int_ref_cycle_dist
h264_qsv 和 hevc_qsv 支持。更改这些值以重置 qsv 编解码器的内部刷新配置。
- qmax
- qmin
- max_qp_i
- min_qp_i
- max_qp_p
- min_qp_p
- max_qp_b
- min_qp_b
h264_qsv 支持。更改这些值以重置 qsv 编解码器的最大/最小 qp 配置。
- low_delay_brc
在 h264_qsv、hevc_qsv 和 av1_qsv 中受支持。更改此值可重置 qsv 编解码器的 low_delay_brc 配置。
- framerate
更改此值可重置 qsv 编解码器的帧速率配置。
- bit_rate
- rc_buffer_size
- rc_initial_buffer_occupancy
- rc_max_rate
更改这些值可重置 qsv 编解码器的比特率控制配置。
- pic_timing_sei
h264_qsv 和 hevc_qsv 支持。更改此值可重置 qsv 编解码器的 pic_timing_sei 配置。
9.24.5 H264 选项
这些选项由 h264_qsv 使用
- extbrc
扩展比特率控制。
- recovery_point_sei
设置此标志以在每个内部刷新周期开始时插入恢复点 SEI 消息。
- rdo
启用速率失真优化。
- max_frame_size
最大编码帧大小(以字节为单位)。
- max_frame_size_i
I 帧的最大编码帧大小(以字节为单位)。如果该值设置为大于零,则对于 I 帧, max_frame_size 设置的值将被忽略。
- max_frame_size_p
P 帧的最大编码帧大小(以字节为单位)。如果该值设置为大于零,则对于 P 帧, max_frame_size 设置的值将被忽略。
- max_slice_size
最大编码切片大小(以字节为单位)。
- bitrate_limit
切换比特率限制。将比特率修改为 QSV 编码器规定的范围内。关闭此标志可能会导致违反 HRD 一致性。请注意,指定低于 QSV 编码器范围的比特率可能会显着影响质量。如果此选项在非 CQP 模式下生效:如果比特率不在 QSV 编码器规定的范围内,则会将其更改为在该范围内。
- mbbrc
设置此标志可以启用宏块级比特率控制,通常可以提高主观视觉质量。启用此标志可能会对性能和客观视觉质量指标产生负面影响。
- low_delay_brc
设置此标志可打开或关闭 qsv 插件中的 LowDelayBRC 功能,该功能提供更准确的比特率控制,以最大限度地减少逐帧比特流大小的差异。值:-1-默认 0-关闭 1-开启
- adaptive_i
该标志控制 QSV 编码器插入 I 帧。打开此标志以允许将帧类型从 P 和 B 更改为 I。
- adaptive_b
该标志控制帧类型从 B 到 P 的更改。
- p_strategy
启用P金字塔:0-默认1-简单2-金字塔(bf需要设置为0)。
- b_strategy
此选项控制 B 帧作为参考的使用。
- dblk_idc
此选项禁用解块。其取值范围为0~2。
- cavlc
如果设置,则使用 CAVLC;如果未设置,则使用 CABAC 进行编码。
- vcm
视频会议模式,请参见码率控制方法。
- idr_interval
IDR 帧之间的距离(以 I 帧为单位)。
- pic_timing_sei
使用 pic_struct_syntax 元素插入图片时序 SEI。
- single_sei_nal_unit
将所有SEI消息放入一个NALU中。
- max_dec_frame_buffering
DPB 中缓冲的最大帧数。
- look_ahead
使用带有前瞻功能的 VBR 算法。
- look_ahead_depth
数字框架中的前瞻性深度。
- look_ahead_downsampling
为前瞻分析而保存的帧的缩小因子。
- ‘unknown’
- ‘auto’
- ‘off’
- ‘2x’
- ‘4x’
- int_ref_type
指定帧内刷新类型。帧内刷新的主要目标是提高错误恢复能力,而不会对 I 帧引起的编码比特流大小产生重大影响。SDK 编码器通过使用帧内 MB 在刷新周期中对每帧的一部分进行编码来实现此目的。none表示不刷新。Vertical表示垂直刷新,以 MB 为单位。Horizontal表示水平刷新,以 MB 行为单位。slice表示按切片水平刷新,不重叠。对于slice, in_ref_cycle_size 被忽略。要启用帧内刷新,B 帧应设置为 0。
- int_ref_cycle_size
指定从2开始的刷新周期内的图片数。0和1是无效值。
- int_ref_qp_delta
指定插入的帧内 MB 的 QP 差异。如果亮度样本的目标编码位深度为 8,则此范围为 [-51, 51] 范围内的有符号值,并且此范围为 [-63, 63](对于 10 位深度)或 [-75, 75](对于 12 位深度)分别。
- int_ref_cycle_dist
帧内刷新周期开始之间的距离(以帧为单位)。
- profile
- ‘unknown’
- ‘baseline’
- ‘main’
- ‘high’
- a53cc
使用 A53 隐藏式字幕(如果有)。
- aud
插入访问单元分隔符 NAL。
- mfmode
多帧模式。
- ‘off’
- ‘auto’
- repeat_pps
对每一帧重复 pps。
- max_qp_i
I 帧的最大视频量化器比例。
- min_qp_i
I 帧的最小视频量化器比例。
- max_qp_p
P 帧的最大视频量化器比例。
- min_qp_p
P 帧的最小视频量化器比例。
- max_qp_b
B 帧的最大视频量化器比例。
- min_qp_b
B 帧的最小视频量化器比例。
- scenario
向编码器提供有关编码会话场景的提示。
- ‘unknown’
- ‘displayremoting’
- ‘videoconference’
- ‘archive’
- ‘livestreaming’
- ‘cameracapture’
- ‘videosurveillance’
- ‘gamestreaming’
- ‘remotegaming’
- avbr_accuracy
AVBR 速率控制的精度(单位为百分之十分之一)。
- avbr_convergence
AVBR速率控制的收敛(以100帧为单位)
参数avbr_accuracy和avbr_convergence用于平均可变比特率控制 (AVBR) 算法。该算法侧重于整体编码质量,同时在avbr_Convergence周期后满足精度范围avbr_accuracy内指定的比特率target_bitrate。此方法不遵循 HRD,并且即时比特率不会受到限制或填充。
- skip_frame
使用每帧元数据“qsv_skip_frame”在编码时跳过帧。此选项定义此元数据的用途。
- ‘no_skip’
跳帧被禁用。
- ‘insert_dummy’
编码器插入比特流帧,其中所有宏块都被编码为跳过。
- ‘insert_nothing’
与 insert_dummy 类似,但编码器不向比特流中插入任何内容。跳帧仍然在brc中使用。例如,gop仍然包含跳帧,并且跳帧之后的帧尺寸会更大。
- ‘brc_only’
Skip_frame元数据指示当前帧之前丢失的帧的数量。
9.24.6 HEVC 选项
这些选项由 hevc_qsv 使用
- extbrc
扩展比特率控制。
- recovery_point_sei
设置此标志以在每个内部刷新周期开始时插入恢复点 SEI 消息。
- rdo
启用速率失真优化。
- max_frame_size
最大编码帧大小(以字节为单位)。
- max_frame_size_i
I 帧的最大编码帧大小(以字节为单位)。如果该值设置为大于零,则对于 I 帧, max_frame_size 设置的值将被忽略。
- max_frame_size_p
P 帧的最大编码帧大小(以字节为单位)。如果该值设置为大于零,则对于 P 帧, max_frame_size 设置的值将被忽略。
- max_slice_size
最大编码切片大小(以字节为单位)。
- mbbrc
设置此标志可以启用宏块级比特率控制,通常可以提高主观视觉质量。启用此标志可能会对性能和客观视觉质量指标产生负面影响。
- low_delay_brc
设置此标志可打开或关闭 qsv 插件中的 LowDelayBRC 功能,该功能提供更准确的比特率控制,以最大限度地减少逐帧比特流大小的差异。值:-1-默认 0-关闭 1-开启
- adaptive_i
该标志控制 QSV 编码器插入 I 帧。打开此标志以允许将帧类型从 P 和 B 更改为 I。
- adaptive_b
该标志控制帧类型从 B 到 P 的更改。
- p_strategy
启用P金字塔:0-默认1-简单2-金字塔(bf需要设置为0)。
- b_strategy
此选项控制 B 帧作为参考的使用。
- dblk_idc
此选项禁用解块。其取值范围为0~2。
- idr_interval
IDR 帧之间的距离(以 I 帧为单位)。
- ‘begin_only’
仅在流的开头输出 IDR 帧。
- load_plugin
要在内部会话中加载的用户插件。
- ‘none’
- ‘hevc_sw’
- ‘hevc_hw’
- load_plugins
:-要在内部会话中加载的十六进制插件 UID 的单独列表。
- look_ahead_depth
数帧中的前瞻深度,在启用 extbrc 选项时可用。
- profile
设置编码配置文件(scc 需要 libmfx >= 1.32)。
- ‘unknown’
- ‘main’
- ‘main10’
- ‘mainsp’
- ‘rext’
- ‘scc’
- tier
设置编码层(只有级别 >= 4 才能支持高层)。该选项仅在指定 level 选项时生效。
- ‘main’
- ‘high’
- gpb
1:GPB(广义P/B框架)
0:常规P帧。
- tile_cols
平铺编码的列数。
- tile_rows
平铺编码的行数。
- aud
插入访问单元分隔符 NAL。
- pic_timing_sei
使用 pic_struct_syntax 元素插入图片时序 SEI。
- transform_skip
打开此选项以启用 Transformskip。它在等于或更新于 ICL 的平台上受支持。
- int_ref_type
指定帧内刷新类型。帧内刷新的主要目标是提高错误恢复能力,而不会对 I 帧引起的编码比特流大小产生重大影响。SDK 编码器通过使用帧内 MB 在刷新周期中对每帧的一部分进行编码来实现此目的。none表示不刷新。Vertical表示垂直刷新,以 MB 为单位。Horizontal表示水平刷新,以 MB 行为单位。slice表示按切片水平刷新,不重叠。对于slice, in_ref_cycle_size 被忽略。要启用帧内刷新,B 帧应设置为 0。
- int_ref_cycle_size
指定从2开始的刷新周期内的图片数。0和1是无效值。
- int_ref_qp_delta
指定插入的帧内 MB 的 QP 差异。如果亮度样本的目标编码位深度为 8,则此范围为 [-51, 51] 范围内的有符号值,并且此范围为 [-63, 63](对于 10 位深度)或 [-75, 75](对于 12 位深度)分别。
- int_ref_cycle_dist
帧内刷新周期开始之间的距离(以帧为单位)。
- max_qp_i
I 帧的最大视频量化器比例。
- min_qp_i
I 帧的最小视频量化器比例。
- max_qp_p
P 帧的最大视频量化器比例。
- min_qp_p
P 帧的最小视频量化器比例。
- max_qp_b
B 帧的最大视频量化器比例。
- min_qp_b
B 帧的最小视频量化器比例。
- scenario
向编码器提供有关编码会话场景的提示。
- ‘unknown’
- ‘displayremoting’
- ‘videoconference’
- ‘archive’
- ‘livestreaming’
- ‘cameracapture’
- ‘videosurveillance’
- ‘gamestreaming’
- ‘remotegaming’
- avbr_accuracy
AVBR 速率控制的精度(单位为百分之十分之一)。
- avbr_convergence
AVBR速率控制的收敛(以100帧为单位)
参数avbr_accuracy和avbr_convergence用于平均可变比特率控制 (AVBR) 算法。该算法侧重于整体编码质量,同时在avbr_Convergence周期后满足精度范围avbr_accuracy内指定的比特率target_bitrate。此方法不遵循 HRD,并且即时比特率不会受到限制或填充。
- skip_frame
使用每帧元数据“qsv_skip_frame”在编码时跳过帧。此选项定义此元数据的用途。
- ‘no_skip’
跳帧被禁用。
- ‘insert_dummy’
编码器插入比特流帧,其中所有宏块都被编码为跳过。
- ‘insert_nothing’
与 insert_dummy 类似,但编码器不向比特流中插入任何内容。跳帧仍然在brc中使用。例如,gop仍然包含跳帧,并且跳帧之后的帧尺寸会更大。
- ‘brc_only’
Skip_frame元数据指示当前帧之前丢失的帧的数量。
9.24.7 MPEG2 选项
这些选项由 mpeg2_qsv 使用
- profile
- ‘unknown’
- ‘simple’
- ‘main’
- ‘high’
9.24.8 VP9 选项
这些选项由 vp9_qsv 使用
- profile
- ‘unknown’
- ‘profile0’
- ‘profile1’
- ‘profile2’
- ‘profile3’
- tile_cols
平铺编码的列数(需要 libmfx >= 1.29)。
- tile_rows
平铺编码的行数(需要 libmfx >= 1.29)。
9.24.9 AV1 选项
这些选项由 av1_qsv 使用(需要 libvpl)。
- profile
- ‘unknown’
- ‘main’
- tile_cols
平铺编码的列数。
- tile_rows
平铺编码的行数。
- adaptive_i
该标志控制 QSV 编码器插入 I 帧。打开此标志以允许将帧类型从 P 和 B 更改为 I。
- adaptive_b
该标志控制帧类型从 B 到 P 的更改。
- b_strategy
此选项控制 B 帧作为参考的使用。
- extbrc
扩展比特率控制。
- look_ahead_depth
数帧中的前瞻深度,在启用 extbrc 选项时可用。
- low_delay_brc
设置此标志可打开或关闭 qsv 插件中的 LowDelayBRC 功能,该功能提供更准确的比特率控制,以最大限度地减少逐帧比特流大小的差异。值:-1-默认 0-关闭 1-开启
- max_frame_size
设置每个帧允许的最大大小(以字节为单位)。如果帧大小超过限制,编码器将调整 QP 值来控制帧大小。在CQP码率控制模式下无效。
9.25 snow
9.25.1 选项
- iterative_dia_size
用于迭代运动估计的直径大小
9.26 VAAPI encoders
可通过 VAAPI 访问的硬件编码器的包装器。
这些编码器仅接受 VAAPI 硬件表面中的输入。如果您在软件框架中有输入,请使用上传过滤器将它们上传到 GPU。
使用以下标准 libavcodec 选项:
- G/组大小
- 男朋友/最大b帧数
- 轮廓
如果未设置,这将根据输入帧的格式和驱动程序支持的配置文件自动确定。
- 等级
- 乙/比特率
- 最大速率/最大速率
- 缓冲区大小/rc_buffer_size
- rc_init_占用/rc_initial_buffer_占用
- 压缩级别
速度/质量权衡:值越高,速度越快/质量越差。
- q/全局质量
尺寸/质量权衡:值越高,质量越小/质量越差。
- 最小q值
- 最大q值
- i_q因子/i_量化因子
- i_qoffset/i_quant_偏移量
- b_q因子/b_量化因子
- b_qoffset/b_quant_offset
- 切片
所有编码器都支持以下选项:
- low_power
某些驱动程序/平台为某些编解码器提供第二个编码器,旨在使用比默认编码器更少的功率;设置此选项将尝试使用该编码器。请注意,它可能支持减少的功能集,因此某些其他选项在此模式下可能不可用。
- idr_interval
设置开放 GOP 模式下完全刷新 (IDR) 帧之间的正常帧内帧数。帧内帧仍然是 IRAP,但不包括全局标头,并且可能具有不可解码的前导图片。
- b_depth
设置 B 帧参考深度。当设置为 1(默认值)时,所有 B 帧将仅引用 P 或 I 帧。当设置为更大的值时,将出现多层 B 帧,每层中的帧仅引用更高层中的帧。
- async_depth
最大处理并行度。增加此值可提高单通道性能。如果驱动程序未实现 vaSyncBuffer 函数,则此选项不起作用。如果使用大量async_depth,请确保分配足够的hw_frames。
- max_frame_size
设置每个帧允许的最大大小(以字节为单位)。如果帧大小超过限制,编码器将调整 QP 值来控制帧大小。在CQP码率控制模式下无效。
- rc_mode
设置要使用的速率控制模式。给定的驱动程序可能仅支持模式的子集。
可能的模式:
- auto
根据驱动程序支持和其他选项自动选择模式。这是默认设置。
- CQP
质量稳定。
- CBR
恒定比特率。
- VBR
可变比特率。
- ICQ
智能恒品质。
- QVBR
质量定义的可变比特率。
- AVBR
平均可变比特率。
每个编码器还有其自己的特定选项:
- av1_vaapi
轮廓设置seq_profile的值。 层设置seq_tier的值。 等级设置seq_level_idx的值。
- tiles
设置用于对输入视频进行编码的图块数量,如列 x 行。(默认为自动,这意味着使用最小的平铺列/行数)。
- tile_groups
设置图块组数。所有图块将尽可能均匀地分布到每个图块组中。(默认值为 1)。
- h264_vaapi
轮廓设置profile_idc和constraint_set*_flag的值。 等级设置level_idc的值。
- coder
设置熵编码器(默认为cabac)。可能的值:
- ‘ac’
- ‘cabac’
使用 CABAC。
- ‘vlc’
- ‘cavlc’
使用 CAVLC。
- aud
在流中包含访问单元分隔符(默认情况下不包含)。
- sei
设置要包含的 SEI 消息类型。以下值的某种组合:
- ‘identifier’
包含包含有关编码器信息的 user_data_unregistered消息。
- ‘timing’
包括图片定时参数(buffering_period和 pic_timing消息)。
- ‘recovery_point’
在适当的情况下包括恢复点(recovery_point消息)。
- hevc_vaapi
轮廓和等级分别设置general_profile_idc和general_level_idc的值 。
- aud
在流中包含访问单元分隔符(默认情况下不包含)。
- tier
设置General_tier_flag。如果未明确指定,这可能会影响为流选择的级别。
- sei
设置要包含的 SEI 消息类型。以下值的某种组合:
- ‘hdr’
如果输入帧有 HDR 元数据(mastering_display_colour_volume和content_light_level 消息),则包括 HDR 元数据。
- tiles
设置用于对输入视频进行编码的图块数量,如列 x 行。数字越大,编码和解码的并行性就越高,但可能会降低编码效率。
- mjpeg_vaapi
仅支持基线 DCT 编码。编码器始终使用标准量化和霍夫曼表 -全局质量缩放标准量化表(范围 1-100)。
对于 YUV,支持 4:2:0、4:2:2 和 4:4:4 子采样模式。还支持 RGB,并将创建 RGB JPEG。
- jfif
在每个帧中包含 JFIF 标头(默认情况下不包含)。
- huffman
包括标准哈夫曼表(默认情况下打开)。关闭此功能将在每个输出帧中节省几百个字节,但可能会失去与某些不能完全处理 MJPEG 的 JPEG 解码器的兼容性。
- mpeg2_vaapi
轮廓和等级设置profile_and_level_inspiration的值。
- vp8_vaapi
不支持 B 帧。
全局质量设置用于非关键帧的 q_idx (范围 0-127)。
- loop_filter_level
- loop_filter_sharpness
手动设置环路滤波器参数。
- vp9_vaapi
全局质量设置用于 P 帧的 q_idx (范围 0-255)。
- loop_filter_level
- loop_filter_sharpness
手动设置环路滤波器参数。
支持 B 帧,但输出流始终按编码顺序而不是显示顺序。如果启用 B 帧,则可能需要使用vp9_raw_重新排序 比特流过滤器修改输出流以按正确的顺序显示帧。
只生产普通框架 -vp9_超帧可能需要比特流过滤器来产生可用于所有解码器的流。
9.27 vbn
Vizrt 二进制图像编码器。
广播供应商 Vizrt 使用此格式进行快速纹理流。不支持该格式的高级功能,例如纹理数据的 LZW 压缩或 mipmap 的生成。
9.27.1 选项
- format string
设置 VBN 文件使用的纹理压缩。可以是dxt1、 dxt5或raw。默认为dxt5。
9.28 vc2
SMPTE VC-2(以前称为 BBC Dirac Pro)。该编解码器主要针对专业广播,但由于它支持 8 位(有限范围或全范围)、10 或 12 位的 yuv420、yuv422 和 yuv444,因此它适用于需要低开销和低压缩的其他任务(例如屏幕录制) )。
9.28.1 选项
- b
设置目标视频比特率。通常约为未压缩视频比特率的 1:6(例如,对于 1920x1080 50fps yuv422p10,约为 400Mbps)。较高的值(接近未压缩的比特率)会打开无损压缩模式。
- field_order
当隔行扫描输入设置(例如,tt - 顶场优先)时启用场编码。应增加隔行扫描内容的压缩,因为它会分割字段并分别对每个字段进行编码。
- wavelet_depth
设置要应用的小波变换总量,介于 1 和 5 之间(默认)。较低的值会降低压缩率和质量。能力较差的解码器可能无法处理以下值小波深度超过3.
- wavelet_type
设置变换类型。目前仅实现了5_3 (LeGall) 和9_7 (Deslauriers-Dubuc),其中 9_7 具有更好的压缩效果,因此是默认值。
- slice_width
- slice_height
设置每个切片的切片大小。值越大,压缩效果越好。为了与其他更有限的解码器兼容使用切片宽度32 和切片高度共 8 个。
- tolerance
设置速率控制系统的下冲容差(以百分比为单位)。这是为了防止运行昂贵的搜索。
- qm
设置默认情况下或在以下情况下使用的量化矩阵预设小波深度 设置为 5
- -默认 使用规范中的默认量化矩阵,并使用第五级的值进行扩展。这在保留细节和忽略伪像之间提供了良好的平衡。
- - flat 使用完全归零的量化矩阵。这会增加 PSNR,但可能会降低感知。用于虚假基准测试。
- -颜色 减少细节,但尝试以极低的比特率保留颜色。
10 个字幕编码器
10.1 dvdsub
此编解码器对 DVD 中使用的位图字幕格式进行编码。通常它们存储在 VOBSUB 文件对 (*.idx + *.sub) 中,也可以在 Matroska 文件中使用。
10.1.1 选项
- palette
指定位图使用的全局调色板。
该选项的格式是一个字符串,包含 16 个 24 位十六进制数字(不带 0x 前缀),以逗号分隔,例如
0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b
。- even_rows_fix
当设置为 1 时,启用一种解决方法,使所有字幕中的像素行数均匀。这解决了一些玩家在数字为奇数时切断底行的问题。如果需要,解决方法只是添加一个完全透明的行。开销很低,通常每个字幕平均一个字节。
默认情况下,此解决方法处于禁用状态。
11 另请参阅
ffmpeg、ffplay、ffprobe、 libavcodec
12 位作者
FFmpeg 开发人员。
git log
有关作者身份的详细信息,请参阅项目的 Git 历史记录 (https://git.ffmpeg.org/ffmpeg),例如通过在 FFmpeg 源目录中键入命令
,或浏览https://git 的在线存储库。 ffmpeg.org/ffmpeg。
文件中列出了特定组件的维护者 维护者在源代码树中。
本文档于2023 年 11 月 17 日使用makeinfo 生成。
由telepoint.bg提供的托管