FFplay文档解读-5-编解码器选项二
前言
Github地址:Github
简书地址:简书
专辑地址:FFplay专辑
subcmp integer (encoding,video)
设置sub pel me比较功能。
可能的取值如下:
| 值 | 解释 |
|---|---|
| sad | 绝对差值之和,fast(默认) |
| sse | 平方误差之和 |
| satd | 绝对Hadamard的总和改变了差异 |
| dct | 绝对DCT转换差异的总和 |
| psnr | 量化误差平方和(avoid,低质量) |
| bit | 块所需的位数 |
| rd | 速率失真最佳,速度慢 |
| zero | 0 |
| vsad | 绝对垂直差异之和 |
| vsse | 垂直差异的平方和 |
| nsse | 噪声保持平方差的总和 |
| w53 | 5/3小波,仅用于snow场景 |
| w97 | 9/7小波,仅用于snow场景 |
| dctmax | |
| chroma |
mbcmp integer (encoding,video)
设置宏块比较功能。
可能的取值如下:
| 值 | 解释 |
|---|---|
| sad | 绝对差值之和,fast(默认) |
| sse | 平方误差之和 |
| satd | 绝对Hadamard的总和改变了差异 |
| dct | 绝对DCT转换差异的总和 |
| psnr | 量化误差平方和(avoid, low quality) |
| bit | 块所需的位数 |
| rd | 速率失真最佳,速度慢 |
| zero | 0 |
| vsad | 绝对垂直差异之和 |
| vsse | 垂直差异的平方和 |
| nsse | 噪声保持平方差的总和 |
| w53 | 5/3小波,仅用于snow场景 |
| w97 | 9/7小波,仅用于snow场景 |
| dctmax | |
| chroma |
ildctcmp integer (encoding,video)
设置隔行扫描dct比较功能。
可能的取值如下:
| 值 | 解释 |
|---|---|
| sad | 绝对差值之和,fast(默认) |
| sse | 平方误差之和 |
| satd | 绝对Hadamard的总和改变了差异 |
| dct | 绝对DCT转换差异的总和 |
| psnr | 量化误差平方和(避免,低质量) |
| bit | 块所需的位数 |
| rd | 速率失真最佳,速度慢 |
| zero | 0 |
| vsad | 绝对垂直差异之和 |
| vsse | 垂直差异的平方和 |
| nsse | 噪声保持平方差的总和 |
| w53 | 5/3小波,仅用于snow场景 |
| w97 | 9/7小波,仅用于snow场景 |
| dctmax | |
| chroma |
dia_size integer (encoding,video)
设置钻石类型和大小以进行运动估计。
last_pred integer (encoding,video)
设置前一帧的运动预测变量。
preme integer (encoding,video)
设置预运动估计。
precmp integer (encoding,video)
设置预运动估计比较功能。
可能的结果如下:
| 值 | 解释 |
|---|---|
| sad | 绝对差值之和,fast(默认) |
| sse | 平方误差之和 |
| satd | 绝对Hadamard的总和改变了差异 |
| dct | 绝对DCT转换差异的总和 |
| psnr | 量化误差平方和(避免,低质量) |
| bit | 块所需的位数 |
| rd | 速率失真最佳,速度慢 |
| zero | 0 |
| vsad | 绝对垂直差异之和 |
| vsse | 垂直差异的平方和 |
| nsse | 噪声保持平方差的总和 |
| w53 | 5/3小波,仅用于snow场景 |
| w97 | 9/7小波,仅用于snow场景 |
| dctmax | |
| chroma |
pre_dia_size integer (encoding,video)
设置diamond类型和大小以进行运动估计预传。
subq integer (encoding,video)
设置子像素运动估计质量。
dtg_active_format integerme_range integer (encoding,video)
设置极限运动矢量范围(DivX播放器为1023)。
ibias integer (encoding,video)
设置定量内偏差。
pbias integer (encoding,video)
设置量子间偏差。
color_table_id integerglobal_quality integer (encoding,audio,video)coder integer (encoding,video)
可能的取值如下:
| 值 | 解释 |
|---|---|
| vlc | 变长编码器/霍夫曼编码器 |
| ac | 算术编码器 |
| raw | raw(无编码) |
| rle | run-length编码器 |
| deflate | 基于deflate的编码器 |
context integer (encoding,video)
设置上下文模型。
slice_flags integermbd integer (encoding,video)
设置宏块决策算法(高质量模式)。
可能的取值如下:
| 值 | 解释 |
|---|---|
| simple | 使用mbcmp(默认) |
| bits | 使用最少的位 |
| rd | 使用最佳速率失真 |
stream_codec_tag integersc_threshold integer (encoding,video)
设置场景更改阈值。
lmin integer (encoding,video)
设置最小拉格朗日因子(VBR)。
lmax integer (encoding,video)
设置最大拉格朗日因子(VBR)。
nr integer (encoding,video)
设置降噪。
rc_init_occupancy integer (encoding,video)
设置解码开始前应加载到rc缓冲区的位数。
flags2 flags (decoding/encoding,audio,video)
可能的取值如下:
| 值 | 解释 |
|---|---|
| fast | 允许不符合规范的加速技巧 |
| sgop | 不推荐使用,请改用mpegvideo私有选项 |
| noout | 跳过比特流编码 |
| ignorecrop | 忽略sps中的裁剪信息 |
| local_header | 将全局标头放在每个关键帧而不是extradata中 |
| chunks | 帧数据可能会分成多个块 |
| showall | 在第一个关键帧之前显示所有帧 |
| skiprd | 不推荐使用,请改用mpegvideo私有选项 |
| export_mvs | 将运动矢量导出到帧边数据(请参阅AV_FRAME_DATA_MOTION_VECTORS)以获取支持它的编解码器。 另请参阅doc / examples / export_mvs.c |
error integer (encoding,video)qns integer (encoding,video)
不推荐使用,请改用mpegvideo私有选项。
threads integer (decoding/encoding,video)
如果所选的编解码器实现支持多线程,则设置要使用的线程数。
可能的取值如下:
| 值 | 解释 |
|---|---|
| auto, 0 | 自动选择要设置的线程数 |
默认值就是auto。
mb_threshold integer (encoding,video)
设置宏块阈值。
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)
可能的结果如下:
| 值 |
|---|
| unknown |
| aac_main |
| aac_low |
| aac_ssr |
| aac_ltp |
| aac_he |
| aac_he_v2 |
| aac_ld |
| aac_eld |
| mpeg2_aac_low |
| mpeg2_aac_he |
| mpeg4_sp |
| mpeg4_core |
| mpeg4_main |
| mpeg4_asp |
| dts |
| dts_es |
| dts_96_24 |
| dts_hd_hra |
| dts_hd_ma |
level integer (encoding,audio,video)
可能的取值如下:
unknown
lowres integer (decoding,audio,video)
解码为1 = 1 / 2,2 = 1 / 4,3 = 1/8分辨率。
skip_threshold integer (encoding,video)
设置帧跳过阈值。
skip_factor integer (encoding,video)
设置帧跳过因子。
skip_exp integer (encoding,video)
设置帧跳过指数。 除了分数标准化之外,负值表现与相应的正值相同。 正值存在主要是出于兼容性原因而不是那么有用。
skipcmp integer (encoding,video)
设置帧跳过比较功能。
可能的取值如下:
| 值 | 解释 |
|---|---|
| sad | 绝对差值之和,fast(默认) |
| sse | 平方误差之和 |
| satd | 绝对Hadamard的总和改变了差异 |
| dct | 绝对DCT转换差异的总和 |
| psnr | 量化误差平方和(avoid,低质量) |
| bit | 块所需的位数 |
| rd | 速率失真最佳,速度慢 |
| zero | 0 |
| vsad | 绝对垂直差异之和 |
| vsse | 垂直差异的平方和 |
| nsse | 噪声保持平方差的总和 |
| w53 | 5/3小波,仅用于snow场景 |
| w97 | 9/7小波,仅用于snow场景 |
| dctmax | |
| chroma |
border_mask float (encoding,video)
增加靠近边界的宏块的量化器。
mblmin integer (encoding,video
设置min macroblock lagrange factor(VBR)。
mblmax integer (encoding,video)
设置最大宏块拉格朗日因子(VBR)。
mepc integer (encoding,video)
设置运动估计比特率penalty补偿(1.0 = 256)。
skip_loop_filter integer (decoding,video)skip_idct integer (decoding,video)skip_frame integer (decoding,video)
根据选项值选择的帧类型进行解码器丢弃处理。
skip_loop_filter跳过帧循环过滤,skip_idct跳过帧IDCT /dequantization,skip_frame跳过解码。
可能的取值如下:
| 值 | 解释 |
|---|---|
| none | 不丢弃任何帧 |
| default | 丢弃无用的帧,如0大小的帧 |
| noref | 丢弃所有非参考帧 |
| bidir | 丢弃所有双向帧 |
| nokey | 丢弃除关键帧之外的所有帧 |
| all | 丢弃所有帧 |
默认值是default。
bidir_refine integer (encoding,video)
优化双向宏块中使用的两个运动矢量。
brd_scale integer (encoding,video)
用于动态B帧决策的缩小帧。
keyint_min integer (encoding,video)
设置IDR帧之间的最小间隔。
refs integer (encoding,video)
设置参考帧以考虑运动补偿。
chromaoffset integer (encoding,video)
从亮度设置色度qp偏移。
trellis integer (encoding,audio,video)
设置速率 - 失真最优量化。
sc_factor integer (encoding,video)
为每个帧设置值乘以qscale并添加到scene_change_score。
mv0_threshold integer (encoding,video)b_sensitivity integer (encoding,video)
调整b_frame_strategy的灵敏度1。
compression_level integer (encoding,audio,video)min_prediction_order integer (encoding,audio)max_prediction_order integer (encoding,audio)timecode_frame_start integer (encoding,video)
以非丢帧格式设置GOP时间码帧起始编号。
request_channels integer (decoding,audio)
设置所需的音频通道数。
bits_per_raw_sample integerchannel_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)ticks_per_frame integer (decoding/encoding,audio,video)color_primaries integer (decoding/encoding,video)
可能的取值如下:
| 值 | 解释 |
|---|---|
| bt709 | BT.709 |
| bt470m | BT.470 M |
| bt470bg | BT.470 BG |
| smpte170m | SMPTE 170 M |
| smpte240m | SMPTE 240 M |
| film | 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.470 M |
| gamma28 | BT.470 BG |
| smpte170m | SMPTE 170 M |
| smpte240m | SMPTE 240 M |
| linear | Linear |
| log | |
| log100 | Log |
| log_sqrt | |
| log316 | Log square root |
| 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 bit |
| bt2020_12 | |
| bt2020_12bit | BT.2020 - 12 bit |
| 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 | FCC |
| bt470bg | BT.470 BG |
| smpte170m | SMPTE 170 M |
| smpte240m | SMPTE 240 M |
| ycocg | YCOCG |
| bt2020nc | |
| bt2020_ncl | BT.2020 NCL |
| bt2020c | |
| bt2020_cl | BT.2020 CL |
| smpte2085 | SMPTE 2085 |
color_range integer (decoding/encoding,video)
如果用作输入参数,它用作解码器的提示,输入具有color_range。
可能的取值如下:
| 值 | 解释 |
|---|---|
| tv | |
| mpeg | MPEG (219*2^(n-8)) |
| pc | |
| jpeg | 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)
选择要使用的多线程方法。
使用frame会使每个线程的解码延迟增加一帧,因此无法提供未来帧的客户端不应使用它。
可能的取值如下:
| 值 | 解释 |
|---|---|
| slice | 一次解码单个帧的多个部分。 使用切片的多线程仅在视频使用切片编码时才起作用 |
| frame | 一次解码多个帧。 |
默认值为slice + frame。
audio_service_type integer (encoding,audio)
设置音频服务类型。
可能的取值:
| 值 | 解释 |
|---|---|
| ma | Main Audio Service |
| ef | Effects |
| vi | Visually Impaired |
| hi | Hearing Impaired |
| di | Dialogue |
| co | Commentary |
| em | Emergency |
| vo | Voice Over |
| ka | Karaoke |
request_sample_fmt sample_fmt (decoding,audio)
设置样本格式音频解码器应该更喜欢。 默认值为none。
pkt_timebase rational numbersub_charenc encoding (decoding,subtitles)
设置输入字幕字符编码。
field_order field_order (video)
设置/覆盖视频的字段顺序。
可能的取值如下:
| 值 | 解释 |
|---|---|
| progressive | 渐进式视频 |
| tt | 隔行扫描视频,顶部字段编码并首先显示 |
| bb | 隔行扫描视频,底部字段编码并首先显示 |
| tb | 隔行扫描视频,顶部编码优先,底部首先显示 |
| bt | 隔行扫描视频,首先是底部编码,最先显示顶部 |
skip_alpha bool (decoding,video)
设置为1以禁用处理alpha(透明度)。 这类似于flags选项中的gray标志,它跳过色度信息而不是alpha。 默认值为0。
codec_whitelist list (input)
,分隔的允许解码器列表。 默认情况下都允许。
dump_separator string (input)
Separator用于分隔关于Stream参数的命令行上打印的字段。 例如,使用换行符和缩进来分隔字段:
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。 硬件解码器也不会应用左/上裁剪。
