FFPlay专辑

FFplay文档解读-38-视频过滤器十三

2018-11-15  本文已影响11人  张芳涛

前言

Github地址:Github
简书地址:简书
专辑地址:FFplay专辑

29.120 pad

将填充添加到输入图像,并将原始输入放在提供的x,y坐标处。

它接受以下参数:

width, w
height, h

使用添加的填充指定输出图像大小的表达式。如果widthheight的值为0,则相应的输入大小用于输出。

width表达式可以引用高度表达式设置的值,反之亦然。

widthheight的默认值为0

x
y

指定偏移以将输入图像相对于输出图像的top/left边界放置在填充区域内。

x表达式可以引用y表达式设置的值,反之亦然。

xy的默认值为0

如果xy计算为负数,则它们将被更改,因此输入图像以填充区域为中心。

color

指定填充区域的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法。

颜色的默认值为black

eval

指定何时评估宽度,高度,xy表达式。

它接受以下值:

结果
init 仅在过滤器初始化期间或处理命令时计算表达式一次
frame 评估每个传入帧的表达式

默认值是:‘init’

aspect

填充方面而不是分辨率。

widthheightxy选项的值是包含以下常量的表达式:

in_w
in_h

输入视频的宽度和高度。

iw
ih

这些与in_win_h相同。

out_w
out_h

输出宽度和高度(填充区域的大小),由widthheight表达式指定。

ow
oh

这些与out_w和out_h相同。

x
y

xy偏移量由x和y表达式指定,如果尚未指定,则为NAN

a

iw/ih一样

sar

输入样本宽高比

dar

输入显示宽高比,与(iw/ih)* sar相同

hsub
vaus

水平和垂直色度子样本值。 例如,对于像素格式yuv422phsub2vsub1

29.120.1 示例

  上面的示例等效于以下命令:

    pad=width=640:height=480:x=0:y=40:color=violet

  因此,前面的示例需要修改为:

    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"

29.121 palettegen

为整个视频流生成一个调色板。

它接受以下选项:

max_colors

设置调色板中要量化的最大颜色数。 注意:调色板仍然包含256种颜色; 未使用的调色板条目将为黑色。

reserve_transparent

创建最多255种颜色的调色板,并保留最后一种透明度。 保留透明度颜色对于GIF优化很有用。 如果未设置,则调色板中的最大颜色将为256。可能希望为独立图像禁用此选项。 默认设置。

transparency_color

设置将用作透明背景的颜色。

stats_mode

设置统计模式。

它接受以下值:

解释
full 计算全帧直方图
diff 仅计算与先前帧不同的部分的直方图。 如果背景是静态的,这可能与更重视输入的移动部分有关
single 计算每个帧的新直方图

默认值是:full

过滤器还会导出帧元数据lavfi.color_quant_ratio(nb_color_in / nb_color_out),可以使用它来评估调色板的颜色量化程度。 此信息在信息记录级别也可见。

29.121.1 示例

29.122 paletteuse

使用调色板对输入视频流进行下采样。

过滤器有两个输入:一个视频流和一个调色板。 调色板必须是256像素的图像。

它接受以下选项:

dither

选择抖动模式。 可用的算法如下:

算法 解释
bayer Ordered 8x8 bayer dithering (deterministic)
heckbert Paul Heckbert1982年定义的抖动(简单误差扩散)。 注意:这种抖动有时被认为是wrong(错误的),并作为参考
floyd_steinberg FloydSteingberg抖动(误差扩散)
sierra2 Frankie Sierra抖动 v2(误差扩散)
sierra2_4a Frankie Sierra 抖动 v2Lite(误差扩散)

默认值是:sierra2_4a

bayer_scale

选择拜耳抖动时,此选项定义图案的比例(交叉线图案可见多少)。 较低的值意味着更明显的图案用于较少的条带,而较高的值意味着较少的可见图案以较多的条带为代价。

该选项必须是[0,5]范围内的整数值。 默认值为2

diff_mode

如果设置,请定义要处理的区域:

区域 解释
rectangle 仅重新处理更改的矩形。 这类似于GIF裁剪/抵消压缩机制。 如果只有一部分图像在变化,此选项对于速度非常有用,并且具有使用案例,例如将误差差异‘dither’的范围限制为限制移动场景的矩形(如果是,则会导致更确定的输出 场景变化不大,结果减少了移动噪音和更好的GIF压缩)

默认值是:none

new

为每个输出帧选择新的调色板。

alpha_threshold

设置透明度的alpha阈值。 高于此阈值的Alpha值将被视为完全不透明,低于此阈值的值将被视为完全透明。

该选项必须是[0,255]范围内的整数值。 默认值为128

29.122.1 示例

29.123 perspective

正确的视频透视不垂直于屏幕记录。

接下来的参数的描述如下:

x0
y0
x1
y1
x2
y2
x3
y3

设置左上角,右上角,左下角和右下角的坐标表达式。 默认值为0:0:W:0:0:H:W:H,哪个透视图保持不变。 如果sense选项设置为source,则指定的点将被发送到目标的角落。 如果sense选项设置为destination,则源的角将被发送到指定的坐标。

表达式可以使用以下变量:

变量 解释
W
H 视频帧的宽度和高度
in 输入帧数
on 输出帧数
interpolation

设置透视校正的插值。

它接受以下值:

参数
linear
cubic

默认值是:‘linear’

sense

设置坐标选项的解释。

它接受以下值:

参数 解释
0, source 将给定坐标指定的源中的点发送到目标的角
1, destination 将源的角发送到给定坐标指定的目标中的点

默认值是:‘source’

eval

在计算坐标x0,y0,... x3,y3的表达式时设置。

它接受以下值:

解释
init 仅在过滤器初始化期间或处理命令时评估表达式
frame 计算每个传入帧的表达式

默认值是:‘init’

29.124 phase

将隔行扫描视频延迟一个场时间,以便字段顺序发生变化。

预期用途是将以相反场顺序捕获的PAL电影固定到电影到视频传输。

接下来的参数的描述如下:

mode

设置相位模式。

它接受以下值:

解释
t 捕获字段顺序排在前面,先转移到底部。 过滤器将延迟底部字段
b 捕获字段顺序排在后面,先转移到顶部。 过滤器将延迟顶部字段
p 使用相同的字段顺序捕获和传输。 此模式仅适用于要引用的其他选项的文档,但如果实际选择它,则过滤器将忠实地执行任何操作
a 捕获字段顺序由字段标志自动确定,转移相反。 滤波器使用场标志逐帧地在tb模式中进行选择。 如果没有可用的字段信息,那么这就像‘u’一样
u 捕获未知或变化,转移相反。 过滤器通过分析图像并选择在字段之间产生最佳匹配的替代方案,逐帧选择tb
T 捕获前5名,转移未知或变化。 过滤器使用图像分析在tp之间进行选择
B 捕获底部优先,转移未知或变化。 过滤器使用图像分析在bp之间进行选择
A 捕获由字段标志确定,传输未知或变化。 过滤器使用字段标志和图像分析在't''b''p'中进行选择。 如果没有可用的字段信息,那么这就像'U'一样。 这是默认模式
U 捕获和传输都是未知的或变化的。 过滤器仅使用图像分析在tbp中进行选择

29.125 pixdesctest

像素格式描述符测试过滤器,主要用于内部测试。 输出视频应等于输入视频。

例如:

format=monow, pixdesctest

可用于测试monowhite像素格式描述符定义。

29.126 pixscope

显示颜色通道的样本值。 主要用于检查颜色和级别。 支持的最低分辨率为640x480

过滤器接受以下选项:

x

设置范围X位置,X轴上的相对偏移。

y

设置范围Y位置,Y轴上的相对偏移。

w

设置范围宽度。

h

设置范围高度。

o

设置窗口不透明度。 该窗口还包含有关像素区域的统计信息。

wx

设置窗口X位置,X轴上的相对偏移。

wy

设置窗口Y位置,Y轴上的相对偏移。

29.127 pp

使用libpostproc启用指定的后处理子过滤器链。 应该使用GPL构建(--enable-gpl)自动选择此库。 子过滤器必须用'/'分隔,并且可以通过添加' - '来禁用。 每个子过滤器和一些选项具有可以互换使用的短名称和长名称,即dr / dering是相同的。

过滤器接受以下选项:

subfilters

设置后处理子过滤字符串。

所有子过滤器都有共同的选项来确定它们的范围:

a/autoq

尊重此子过滤器的质量命令。

c/chrom

也进行色度过滤(默认)。

y/nochrom

仅进行亮度滤波(无色度)。

n/noluma

仅进行色度过滤(无亮度)。

这些选项可以附加在子过滤器名称后面,以“|”分隔。

可用的子过滤器是:

‘hb/hdeblock[|difference[|flatness]]’

水平去块滤波器。

参数 解释
difference 差异因素,其中较高的值意味着更多的解块(默认值:32
flatness 平坦度阈值,其中较低的值表示更多解块(默认值:39
vb/vdeblock[|difference[|flatness]]

垂直去块滤波器。

参数 解释
difference 差异因素,其中较高的值意味着更多的解块(默认值:32
flatness 平坦度阈值,其中较低的值表示更多解块(默认值:39
ha/hadeblock[|difference[|flatness]]

精确的水平去块滤波器。

参数 解释
difference 差异因素,其中较高的值意味着更多的解块(默认值:32
flatness 平坦度阈值,其中较低的值表示更多解块(默认值:39
va/vadeblock[|difference[|flatness]]

精确的垂直去块滤波器。

参数 解释
difference 差异因素,其中较高的值意味着更多的解块(默认值:32
flatness 平坦度阈值,其中较低的值表示更多解块(默认值:39

水平和垂直去块滤波器共享差值和平坦度值,因此无法设置不同的水平和垂直阈值。

h1/x1hdeblock

实验水平解块滤波器。

v1/x1vdeblock

实验垂直去块滤波器。

dr/dering

Deringing过滤器。

tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer’
参数 解释
threshold1 larger -> stronger filtering
threshold2 larger -> stronger filtering
threshold3 larger -> stronger filtering
al/autolevels[:f/fullyrange], automatic brightness / contrast correction
参数 解释
f/fullyrange 拉伸亮度为0-255
lb/linblenddeint 线性混合反交错滤波器,通过使用(1 2 1)滤波器过滤所有行来解除给定块的隔行扫描
li/linipoldeint

线性插值去隔行滤波器,通过每隔一行线性插值来对给定块进行去隔行扫描。

ci/cubicipoldeint

立方插值去隔行滤波器通过每隔一行立方插值来解除给定块的隔行扫描。

md/mediandeint

中值反交错滤波器,通过对每个第二行应用中值滤波器来解除给定块的隔行扫描。

fd/ffmpegdeint

FFmpeg反隔行扫描过滤器,通过使用(-1 4 2 4 -1)过滤器过滤每隔一行来解除给定块的隔行扫描。

l5/lowpass5

垂直应用FIR低通去隔行滤波器,通过使用(-1 2 6 2 -1)滤波器过滤所有行来解除给定块的隔行扫描。

fq/forceQuant[|quantizer]

使用指定的常量量化器覆盖输入中的量化器表。

解释
quantizer 用来使用的量化器
de/default

默认pp过滤器组合(hb | a,vb | a,dr | a)

fa/fast

快速pp滤波器组合(h1 | a,v1 | a,dr | a)

ac

高品质pp滤镜组合(ha | a | 128 | 7,va | a,dr | a)

29.127.1 示例

29.128 pp7

应用后处理过滤器7。它是spp过滤器的变体,类似于具有7DCTspp = 6,其中在IDCT之后仅使用中心样本。

过滤器接受以下选项:

qp

强制一个恒定的量化参数。 它接受063范围内的整数。如果未设置,过滤器将使用视频流中的QP(如果可用)。

mode

设置阈值模式。 可用的模式是:

解释
hard 设置硬阈值
soft 设置软阈值(更好的去振铃效果,但可能是模糊)
medium 设置中等阈值(结果良好,默认)

29.129 premultiply

alpha预乘效果应用于使用第二流的第一平面作为alpha输入视频流。

两个流必须具有相同的尺寸和相同的像素格式。

过滤器接受以下选项:

planes

设置要处理的平面,将复制未处理的平面。 默认值为0xf,将处理所有平面。

inplace

不需要第二个输入进行处理,而是使用输入流中的alpha平面。

上一篇下一篇

猜你喜欢

热点阅读