1.亮度
设置亮度、对比度、饱和度和近似伽马(gamma)调整
滤镜支持下面选项:
contrast
设置contrast表达式,值必须是一个-2.0-2.0间的浮点数,默认为0
brightness
设置brightness表达式.值必须是一个-1.0-1.0间的浮点数,默认为0
saturation
设置saturation表达式. 值必须是一个0-3.0间的浮点数,默认为1
gamma
设置gamma表达式 ,值必须是一个0.1-10.0间的浮点数,默认为1
gamma_r
设置gamma表达式,对红色. 值必须是一个0.1-10.0间的浮点数,默认为1
gamma_g
设置gamma表达式,对绿色. 值必须是一个0.1-10.0间的浮点数,默认为1
gamma_b
设置gamma表达式,对蓝色. 值必须是一个0.1-10.0间的浮点数,默认为1
gamma_weight
设置gamma权重表达式.它可以用来减少高伽马值在明亮的图像区域影响,例如只是普通的白色放大,而其它保持不变。值必须是一个在0.0到1.0范围的浮点数。值为0.0时把伽马校正效果最强,为1.0没有效果。默认设置是“1”。
eq命令
滤镜也接受下面的命令:
contrast
设置contrast表达式
brightness
设置brightness表达式
saturation
设置saturation表达式
gamma
设置gamma表达式
gamma_r
设置gamma_r表达式
gamma_g
设置gamma_g表达式
gamma_b
设置gamma_b表达式
gamma_weight
设置gamma_weight表达式
命令接受对应选项中相同的语法
如果指定的表达式是无效的,则保持当前值
在频域内应用任意表达式于样品
dc_Y
调整亮度dc值(增益),范围0-1000,默认为0
dc_U
调整色度第1分量dc值(增益),范围0-1000,默认为0
dc_V
调整色度第2分量dc值(增益),范围0-1000,默认为0
weight_Y
设置对于亮度的频域权重表达式
weight_U
设置对于色度第1分量的频域权重表达式
weight_V
设置对于色度第2分量的频域权重表达式
滤镜接受下面的变量:
Y
对应当前样本点的坐标
H
当前图像的宽和高
fftfilt例子
高通:
fftfilt=dc_Y=128:weight_Y=’squish(1-(Y+X)/100)’
低通:
fftfilt=dc_Y=0:weight_Y=’squish((Y+X)/100-1)’
锐化:
fftfilt=dc_Y=0:weight_Y=’1+squish(1-(Y+X)/100)’
滤镜接受下面的选项:
lum_expr, lum
设置亮度表达式
cb_expr, cb
设置色度分量中蓝色表达式
cr_expr, cr
设置色度分量中红色表达式
alpha_expr, a
设置透明通道表达式Set the alpha expression.
red_expr, r
设置红色表达式
green_expr, g
设置绿色表达式
blue_expr, b
设置蓝色表达式
根据指定的选项来确定颜色空间。如果lum_expr
, cb_expr
, 或者cr_expr
中的一个被定义,则滤镜自动选择YCbCr
颜色空间,如果red_expr
, green_expr
,或 blue_expr
中有一个被定义则选择RGB
颜色空间
如果其中一个颜色分量选项没有被定义,则它等于前一个谷底值。如果alpha_expr
没有被定义则认为是不透明的。如果没有任何颜色分量被定义,它将只计算亮度表达式
表达式接受下面变量和函数:
N
帧序数,从0开始计数 from 0.
Y
当前样本坐标
H
图像宽和高
SH
依赖当前滤镜的放缩宽和高。它根据当前像素亮度数和当前平面的比例。例如对于YUV40给我饿死,这个值是1,1对应于亮度还有0.5,0.5 的颜色分量
T
按秒当前帧时间
p(x, y)
返回当前帧平面(x,y)点的像素值
lum(x, y)
返回当前帧平面(x,y)点的像素亮度值
cb(x, y)
返回当前帧平面(x,y)点的像素色度分量差蓝色值,0表示没有该分量
cr(x, y)
返回当前帧平面(x,y)点的像素色度分量差红色值,0表示没有该分量
b(x, y)
返回当前帧平面(x,y)点的像素红/绿/蓝值,为0表示没有该颜色
alpha(x, y)
返回当前帧平面(x,y)点的像素透明通道值,为0表示没有该值
对于函数,如果x和y超出了范围,则值自动由影片边缘值代替
geq例子
生成一个二维的正弦波,角π/ 3和100像素的波长:
geq=128 + 100sin(2(PI/100)(cos(PI/3)(X-50T) + sin(PI/3)Y))128
生成一个花哨的神秘的光:
nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N0.07)W/2-W/2\,Y-sin(N0.09)H/2-H/2)^21000000sin(N*0.02)128
生成一个快速浮雕效果:
format=gray,geq=lum_expr=’(p(X,Y)+(256-p(X-4,Y-4)))/2’
根据像素的位置修改RGB分量:
geq=r=’X/Wr(X,Y)’:g=’(1-X/W)g(X,Y)’:b=’(H-Y)/H*b(X,Y)’
创建一个径向渐变,是相同的大小作为输入(也见vignette
滤镜):
geq=lum=255gauss((X/W-0.5)3)gauss((Y/H-0.5)3)/gauss(0)/gauss(0),format=gray
创建一个线性渐变使用作为另一个滤镜的蒙版,然后用叠加组成。在本例中,视频会从底部到顶部的y轴定义的线性梯度逐渐变得更加模糊:
ffmpeg -i input.mp4 -filter_complex “geq=lum=255*(Y/H),format=gray[grad];[0:v]boxblur=4[blur];[blur][grad]alphamerge[alpha];[0:v][alpha]overlay” output.mp4
这个过滤器适用于每帧的基础上的全局颜色直方图均衡化
它被用于产生压缩了像素强度的正确视频。滤镜在强度范围内重新分配像素强度分布。它可被视为“自动调整对比度滤镜”。滤镜只适用于纠正退化或者较差质量的视频采集
接受下面的选项:
strength
确定的数量均衡。随着参数的降低,像素强度的分布在输入帧中越来越多。值为浮点数,范围为[0,1],默认0.200.
intensity
设置在生成的输出中最大可能强度。strength
设置表面了期望,而intensity
的设置强调了限制,从而避免了出现错误。值为浮点数,范围为[0,1],默认0.210.
antibanding
设置antibanding级别。如果启用,滤镜将通过随机小批量改变输出像素的亮度直方图避免产生条带。允许的值有none
, weak
或strong
,默认为none
。
编辑或者设定颜色的饱和度
接受下面的参数:
h
指定色度角的度数,接受表达式,默认为0
s
指定饱和度,范围[-10,10],接受表达式,默认为”1”.
H
指定色调角的弧度,接受表达式,默认为”0”.
b
指定亮度,范围[-10,10]。接受表达式,默认为”0”.
hue命令
滤镜还支持下面的命令:
H
它们分别编辑色度 和/或 饱和度 和/或 亮度。命令接受对应选项一样的语法。
如果指定的表达式是无效的,则采用当前值(不变化)
lut, lutrgb, lutyuv例子
输入图像的负片效果
lutrgb=”r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val”
lutyuv=”y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val”
等效于:
lutrgb=”r=negval:g=negval:b=negval”
lutyuv=”y=negval:u=negval:v=negval”
亮度负片效果
lutyuv=y=negval
移除色度分量,转换成灰度图像:
lutyuv=”u=128:v=128”
应用一个亮度燃烧效果:
lutyuv=”y=2*val”
移除绿色和蓝色分量(红色灰度图):
lutrgb=”g=0:b=0”
设定固定的透明通道效果:
format=rgba,lutrgb=a=”maxval-minval/2”
以系数0.5进行伽玛亮度矫正:
lutyuv=y=gammaval(0.5)
丢弃的亮度低有效位(减少细节,亮块化):
lutyuv=y=’bitand(val, 128+64+32)’
- depth
设置深度
大的值将在低频部分降噪明显,但速度很慢
值范围8-16,默认为8
- luma_strength, ls
设置亮度强度
为0-1000的双精度值,默认为1.0
- chroma_strength, cs
设置色度强度
为0-1000的双精度值,默认为1.0
### pp ###
使用指定的`libpostproc`后处理`subfilters`链。这个库会自动选择一个`GPL`编译(--enable-gpl)。`subfilters`必须是由`/`分隔,可以利用`-`来禁用。每个`subfilter`有长或短的选项名,例如`dr/dering`
滤镜接受下面的选项:
- subfilters
指定subfilters字符串
所有subfilters有共同选项来确定其范围,它们是:
a/autoq
对subfilter的质量等级
c/chrom
同时做色差和亮度(默认).
y/nochrom
只做亮度过滤 (无色差处理).
n/noluma
只做色差过滤 (无亮度处理).
这些选项可以通过`|`附加在`subfilter`名后面
有效的`subfilter`有:
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)。
水平和垂直解封过滤器共享`difference`和`flatness`,因此不能设置平面度值不同的水平和垂直的阈值
设置被认为是同一像素的最大亮度区别。值范围0.1-100.0,默认1.0.
- chroma_radius, cr
设置色差模糊强度,值范围0.1-4.0,默认1.0。更大的值会导致图像更模糊,但更慢
- chroma_pre_filter_radius, cpfr
在不影响轮廓的基础上模糊视频
它接受下面的选项:
luma_radius, lr
设置亮度半径,为浮点数,范围[0.1,5.0],用于指示高斯滤波模糊的方差值(越大越慢),默认为1.0
减少输入,输出包含一个连续输入的组成部分
它接受下面参数:
start
指定开始部分时间的,即帧时间戳开始将输出第一帧
end
指定结束部分时间,即帧的时间戳达到的前一帧是输出的最后一帧。
start_pts
同于start
,只是以时基为时间单位替代秒
end_pts
同于end
,只是以时基为时间单位替代秒
duration
按秒最大持续时间 seconds.
start_frame
开始的帧序数,该帧开始被输出
end_frame
结束的帧序数,该帧开始被丢弃(不被输出)
锐化或者模糊输入视频
它接受下面的参数:
luma_msize_x, lx
设置亮度矩阵水平尺寸。它必须是3-63的奇数值,默认5
luma_msize_y, ly
设置亮度矩阵垂直尺寸,它必须是3-63的奇数值,默认5
luma_amount, la
设置亮度效果强度,合理值为-1.5 - 1.5的浮点数(可超出前范围)。
负数值表明视频会被模糊,正数值则会被锐化,0则没有效果
默认为1.0.
chroma_msize_x, cx
设置色度矩阵水平尺寸。它必须是3-63的奇数值,默认5
chroma_msize_y, cy
设置色度矩阵垂直尺寸。它必须是3-63的奇数值,默认5.
chroma_amount, ca
设置色度效果强度,合理值为-1.5 - 1.5的浮点数(可超出前范围)。
负数值表明视频会被模糊,正数值则会被锐化,0则没有效果
默认为0.0.
应用超慢/简单的后处理,压缩和解压图像(或对应于quality
中水平为8的完全处理)变化和平均结果。
它不同于spp
,实际上uspp
编码和解码每个libavcodec
块(Snow),而spp
使用一个内部简化的8x8 DCT,其相似于MJPEG的DCT
滤镜接受下面选项:
quality
设置质量水平值。它是平均水平值数字,范围0-8,如果为0,则滤镜没有效果,设置为8将有最好的效果。每增加1级大约速度减慢2倍,默认为3
qp
强制设定质量参数,如果不设置,将采用输入流中的QP值(如果可用)
分析视频的静止/不晃动,两步过程中的第1步,下一步是vidstabtransform
。
这个滤镜生成一个文件,指定相对平移和旋转变换后续帧的信息,它用于vidstabtransform
滤镜
为了编译支持它需要设置--enable-libvidstab
滤镜接受下面选项:
result
指定保存转换信息的文件路径。默认为 is transforms.trf.
shakiness
设置摄像头如何快速设置来满足晃动的视频,值范围是1-10整数,1意味着很小的晃动,10意味着强烈晃动,默认为5
accuracy
设置检测过程的准确性,值范围为1-15,1表示低精度,15表示高精度。默认15
stepsize
设置搜索过程的间隔值(扫描尺度)。最低是1像素分辨率扫描,默认为6
mincontrast
设置最低对比度。低于这个值一个本地测量领域会被丢弃。为范围在0-1的浮点数,默认为0.3.
tripod
设置参考帧数三脚架模式
如果允许,对帧运动的比较将以一个参考过滤流相比进行,从中指定一个。这样可以补偿或多或少的静态帧中的所有动作,保持相机视图绝对静止
如果设为0则禁用,帧数从1开始计数
show
显示字段和转换生成的帧,接受一个0-2间的整数,默认为0,它禁止任何可视内容。
vidstabdetect例子
使用默认值:
vidstabdetect
分析晃动视频的强度,把结果放置在mytransforms.trf:
vidstabdetect=shakiness=10:accuracy=15:result=”mytransforms.trf”
把内部转换生成的视频显示出来(可视化):
vidstabdetect=show=1
在ffmpeg中分析中等强度晃动:
ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
视频静止/不晃动,两步过程的第二步,其第一步是vidstabdetect
从一个文件读取每一帧需要应用/补偿的信息,与vidstabdetect
一起使用来稳定视频,参看http://public.hronopik.de/vid.stab来了解更多。见下,它对于使用unsharp
是很重要的。
为了使用它需要允许编译设置--enable-libvidstab
vidstabtransform选项
input
设置读取转换信息的文件,默认为transforms.trf.
smoothing
设置帧数,其值以表达式 (value*2 + 1)用作低通来滤除摄像机运动,默认为10.
例如对于设置为10则意味着21帧被使用(过去10帧和接下来10帧)来平滑摄像机移动。更大的值可以得到一个更平滑视频,但限制摄像机加速度(平底锅摇/倾斜 移动)。0表示摄像机是静止的
optalgo
设置相机路径优化算法
接受值:
‘gauss’
镜头运动采用高斯低通滤波器内核(默认)
‘avg’
转换平均值
maxshift
设置帧中最大转换像素值,默认为-1,表示没有限制
maxangle
设置最大帧旋转角度(弧度值,度*PI/180),默认为-1,表示没有限制
crop
指定如何处理边界,由于运动补偿可能可见
有效值:
‘keep’
从以前帧保持图像信息 (默认)
‘black’
填充黑色边
invert
为1则转化转换。默认值为0
relative
为1表示转换是相对于前帧,0表示绝对的(不和前帧相关),默认为0
zoom
设置放大比例。正数则相对于推进效果,负数相当于拉远效果,默认为0(不变)
optzoom
设置最佳缩放以避免边界
可能值:
‘0’
禁止
‘1’
确定最优静态缩放值(只有很强的运动将导致可见边界)(默认)
‘2’
确定最优自适应缩放值(没有边界可见),参见`zoomspeed`
注意这里的zoom
值被添加到一个计算中
zoomspeed
设置每帧放大的最大百分比限度值(当optzoom
被设置为2时),范围为0-5,默认为0.25
interpol
指定插值类型
有效值是:
‘no’
不插值
‘linear’
水平线性插值
‘bilinear’
在两个方向上线性插值(默认)
‘bicubic’
在两个方向上立方插值(慢)
tripod
如果为1启用虚拟三脚架模式,其等效于relative=0:smoothing=0
默认为0 Default value is 0.
它要求在vidstabdetect
中也启用tripod
debug
为1增加日志记录按冗长形式。也检测全局运动写入到临时文件 global_motions.trf,默认为0
vidstabtransform例子
帧ffmpeg使用默认典型的稳定系数:
ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=50.83:0.4 inp_stabilized.mpeg
注意一直建议使用unsharp
从给定文件加载转换数据来放大一点:
vidstabtransform=zoom=5:input=”mytransforms.trf”
使视频更平滑:
vidstabtransform=smoothing=30
让输入垂直翻转
例如:利用ffmpeg垂直翻转视频
ffmpeg -i in.avi -vf "vflip" out.avi
使或扭转自然渐晕效应
滤镜接受下面选项:
angle, a
以弧度表示的镜头组角度
值范围为 [0,PI/2]
默认为: “PI/5”
y0
设置中心坐标表达式,默认分别是”w/2” and “h/2”
mode
设置向前/向后模式
有效值为:
‘forward’
中心点的距离越大,图像的颜色越深
‘backward’
中心点的距离越大,图像越亮。这可以用于扭转装饰图案效果,虽然没有自动检测提取镜头角度和其他设置。它也可以用来创建一个燃烧的效果。
默认为‘forward’.
eval
设置表达式计算模式(对于angle, x0, y0).
有效值为:
‘init’
只在初始化时计算一次
‘frame’
每帧计算,它的速度远低于`init`模式,因为它需要每帧计算所有表达式,但这允许了先进的动态表达式(完成一些特效)
默认为‘init’.
dither
为1(默认)则启用抖动减少循环条带效应
aspect
设置插图像素长宽比。此设置将允许调整插图形状,设置值对于输入SAR
(样本长宽比)将调整矩形光损失后的尺寸
默认为1/1.
vignette表达式
这里有angle
(原文误为alpha), x0 和 y0表达式允许包含的参数
h
输入的宽和高
n
输入帧序数,从0开始计
pts
以时基单位计的PTS (作品时间戳),未定义则为NAN
r
输入视频帧率,未知则为NAN
t
以秒计的PTS (作品时间戳),未定义则为NAN
tb
输入视频时基
vignette例子
应用简单的强大的渐晕效应:
vignette=PI/4
做一个闪烁的光损失:
vignette=’PI/4+random(1)*PI/50’:eval=frame
反交错的输入视频(“w3fdif”代表“韦斯顿3场反交错滤波器——Weston 3 Field Deinterlacing Filter”)。
基于英国广播公司(BBC R&D)的马丁•韦斯顿(Martin Weston)研发,并由吉姆·伊斯特布鲁克(Jim Easterbrook)实现的反交错算法。这个滤镜使用的滤波系数是BBC研发的
它有两组滤波系数,被称为”simple”(简单)和 “complex”(复杂)。使用那个滤波系数可以通过参数设置。
filter
设置采用的滤波系数,允许值为:
‘simple’
简单滤波器系数.
‘complex’
复杂滤波器系数
默认‘complex’.
deint
指定帧反交错,接受值为:
‘all’
反交错所有帧
‘interlaced’
仅反交错设置为交错的帧
默认‘all’.
对像素应用一个xBR高质量放大滤镜,它遵循一套边缘检测规则,详情见http://www.libretro.com/forums/viewtopic.php?f=6&t=134
接受选项:
n
设置放缩尺寸, 2对应于2xBR,3对应于3xBR,4对应于4xBR,默认为3
反交错输入视频(yadif
意味着另外一个反交错滤镜)
它接受下面的参数:
mode
采用隔行扫描模式。它接受下列值之一:
0, send_frame
对每帧都输出
1, send_field
对每场都输出一帧
2, send_frame_nospatial
类似`send_frame`,但跳过交错检查
3, send_field_nospatial
类似`send_field`,但跳过交错检查
默认为send_frame
parity
假定输入隔行视频的模式,它接受下列值:
0, tff
假定为上场优先
1, bff
假定为下场优先
-1, auto
自动侦测
默认为auto
,如果交错模式未知或者不能正确处理则假定为tff
deint
指定哪些帧需要反交错,接受下列值:
0, all
所有帧
1, interlaced
仅标记为交错的帧
默认为所有
应用放大和摇镜头效果
滤镜接受下面选项:
zoom, z
设置放大系数表达式,默认为1
y
设置x和y表达式,默认为0
d
设置持续帧数,这设置有多少数量的帧受到影响
s
设置输出图像尺寸,默认为 ’hd720’.
每个表达式接受下列参数:
in_w, iw
输入的宽
in_h, ih
输入高
out_w, ow
输出宽
out_h, oh
输出高
in
输入帧计数
on
输出帧计数
y
最后计算的x和y对于当前输入帧的x和y表达式。
py
之前输入帧对应的最后输出帧最后计算’x’ 和 ’y’,或者为0(第一个输入帧)
zoom
当前输入帧对应的最后z
表达式计算得出的放大系数
pzoom
前一输入帧前最后输出帧计算的放大系数
duration
当前输入帧对应的输出帧数。对每个输入帧计算d
值
pduration
前一输入帧之前创建输出帧的数量
a
有理数 = iw/ih
sar
样本长宽比
dar
显示长宽比
zoompan例子
推近到1.5 并且同时在中心附近摇的效果:
zoompan=z=’min(zoom+0.0015,1.5)’:d=700:x=’if(gte(zoom,1.5),x,x+1/a)’:y=’if(gte(zoom,1.5),y,y+1)’:s=640x360
推近到1.5 并且同时以中心摇的效果:
zoompan=z=’min(zoom+0.0015,1.5)’:d=700:x=’iw/2-(iw/zoom/2)’:y=’ih/2-(ih/zoom/2)’
上一篇:36 音频槽
下一篇:38 视频源
本文档使用 书栈(BookStack.CN) 构建
hqdn3d
这是一个高精度/质量的3D降噪滤镜。它的目的是减少图像噪声,产生平滑的图像和让静止图像保存原样。它可以提高压缩率。
接受下面可选参数:
luma_spatial
非负浮点数来指明亮度强度。默认为4.0
chroma_spatial
非负浮点数来指明亮色强度,默认为3.0*luma_spatial/4.0
.
luma_tmp
一个浮点数指明亮度临时强度。默认为6.0*luma_spatial/4.0
chroma_tmp
一个浮点数指明色度临时强度。默认为luma_tmp*chroma_spatial/luma_spatial
hqx
应用一个高质量的像素放大滤镜。这个滤镜最初由 Maxim Stepin创建。
它接受下面的选项:
n
设置缩放尺度。2 对应hq2x, 3 对应hq3x,4对应hq4x,默认为3。
hue
编辑或者设定颜色的饱和度
接受下面的参数:
h
指定色度角的度数,接受表达式,默认为0
s
指定饱和度,范围[-10,10],接受表达式,默认为"1".
H
指定色调角的弧度,接受表达式,默认为"0".
b
指定亮度,范围[-10,10]。接受表达式,默认为"0".
h和H互斥,不能同时设定
其中b, h, H和s表达式允许下面内容:
作者:WSGNSLog
链接:https://www.jianshu.com/p/131fba09bd3c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。