FFplay文档解读-27-视频过滤器二

前言

Github地址:Github
地址:
专辑地址:FFplay专辑

29.11 boxblur

boxblur算法应用于输入视频。

它接受以下参数:

luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap

接下来的选项的描述如下:

luma_radius, lr
chroma_radius, cr
alpha_radius, ar

设置用于模糊相应输入平面的框半径的表达式(以像素为单位)。

半径值必须是非负数,并且不得大于亮度和alpha平面的表达式min(w,h)/2的值,以及色度的min(cw,ch)/2的值飞机。

'luma_radius'的默认值为2。 如果未指定,'chroma_radius''alpha_radius'默认为为'luma_radius'设置的相应值。

表达式可以包含以下常量:

常量 解释
w
h 输入宽度和高度(以像素为单位)
cw
ch 输入色度图像宽度和高度(以像素为单位)
hsub
vsub 水平和垂直色度子样本值。 例如,对于像素格式yuv422phsub2vsub1
luma_power, lp
chroma_power, cp
alpha_power, ap

指定boxblur过滤器应用于相应平面的次数。

'luma_power'的默认值为2。如果未指定,'chroma_power''alpha_power'默认为'luma_power'设置的相应值。

值为0将禁用该效果。

29.11.1 示例

  • 应用boxblur滤镜,亮度,色度和alpha半径设置为2

     boxblur=luma_radius=2:luma_power=1
     boxblur=2:1
    
  • 将亮度半径设置为2,将alpha和色度半径设置为0

      boxblur=2:1:cr=0:ar=0
    
  • 将亮度和色度半径设置为视频维度的一小部分:

      boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    

29.12 bwdif

对输入视频进行去交错(bwdif代表Bob Weaver去隔行滤波器)。

基于yadif的运动自适应去隔行,使用w3fdif和三次插值算法。 它接受以下参数:

mode

采用隔行扫描模式。 它接受以下面的值:

参数 解释
0, send_frame 为每帧输出一帧
1, send_field 为每个字段输出一帧

默认值是:send_field

parity

假设输入隔行扫描视频的图像场奇偶校验。 它接受下面的值:

参数 解释
0, tff 假设顶部字段是第一个
1, bff 假设底部字段是第一个
-1, auto 启用字段奇偶校验的自动检测

默认值为auto。 如果隔行扫描未知或解码器不导出该信息,则假设top field first

deint

指定要去隔行的帧。 接受下面的值:

参数 解释
0, all 对所有帧进行去隔行扫描
1, interlaced 仅隔离标记为隔行扫描的帧

默认值是all

29.13 chromakey

YUV颜色空间color/chroma(颜色/色度)键控。

过滤器接受以下选项:

color

颜色将被透明度取代。

similarity

与关键颜色的相似百分比。

0.01仅匹配确切的键颜色,而1.0匹配所有内容。

blend

混合百分比。

0.0使像素完全透明或根本不透明。

较高的值导致半透明像素,透明度越高,像素颜色与关键颜色越相似。

yuv

颜色传递的信号已经是YUV而不是RGB

"green""red"这样的字面颜色不再有意义了。 这可以用于将精确的YUV值作为十六进制数传递。

29.13.1 示例

  • 使输入图像中的每个绿色像素都透明:

      ffmpeg -i input.png -vf chromakey=green out.png
    
  • 在静态黑色背景上叠加绿屏视频

      ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
    

29.14 ciescope

显示CIE颜色图,其上覆盖有像素。

过滤器接受以下选项:

system

设置颜色系统。

颜色系统
ntsc, 470m
ebu, 470bg
smpte
240m
apple
widergb
cie1931
rec709, hdtv
uhdtv, rec2020
cie

设置CIE系统。

CIE系统
xyy
ucs
luv
gamuts

设置要绘制的色域。

有关可用值,请参阅system选项。

size, s

设置ciescope大小,默认设置为512

intensity, i

设置用于将输入像素值映射到CIE图的强度。

contrast

设置对比度用于绘制超出活动颜色系统色域的舌头颜色。

corrgamma

默认情况下,默认情况下,范围内显示正确的gamma

showwhite

CIE图上显示白点,默认情况下禁用。

gamma

设置输入gamma。 仅用于XYZ输入颜色空间。

29.15 codecview

可视化某些编解码器导出的信息。

一些编解码器可以使用旁边数据或其他方式通过帧导出信息。 例如,一些基于MPEG的编解码器通过编解码器flags2选项中的export_mvs标志导出运动向量。

过滤器接受以下选项:

mv

设置运动矢量以进行可视化。

mv的可用标志是:

可用标志 解释
pf 前向预测的P-framesMVs
bf 前向预测的B-framesMVs
bb 向后预测的B-framesMVs
qp

使用色度平面显示量化参数。

mv_type, mvt

设置运动矢量类型以进行可视化。 除非由frame_type选项指定,否则包括来自所有帧的MV

mv_type的可用标志如下:

标志 解释
fp 向前预测MVs
bp 向后预测MVs
frame_type, ft

设置帧类型以可视化运动矢量。

frame_type的可用标志如下:

标志 解释
if 帧内编码帧(I-frames
pf 前向预测帧(P-frames)
bf 双向预测帧(B-frames

29.15.1 示例

  • 使用ffplay可视化所有帧的前向预测MVs

      ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
    
  • 使用ffplay可视化PB帧的多方向MVs

      ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
    

29.16 colorbalance

修改输入帧的原色(红色,绿色和蓝色)的强度。

滤镜允许在阴影,中间调或高光区域调整输入帧,以获得红色 - 青色,绿色 - 品红色或蓝 - 黄色平衡。

正调整值将平衡移向原色,朝向互补色移动负值。

过滤器接受以下选项:

rs
gs 
bs

调整红色,绿色和蓝色阴影(最暗的像素)。

rm
gm
bm

调整红色,绿色和蓝色中间调(中等像素)。

rh
gh
bh

调整红色,绿色和蓝色高光(最亮像素)。

选项的允许范围是[-1.0,1.0]。 默认值为0

29.16.1 示例

  • 为阴影添加红色偏色:

      colorbalance=rs=.3
    

29.17 colorkey

RGB色彩空间颜色键控。

过滤器接受以下选项:

color

颜色将被透明度取代。

similarity

与关键颜色的相似百分比。

0.01仅匹配确切的键颜色,而1.0匹配所有内容。

blend

混合百分比。

0.0使像素完全透明或根本不透明。

较高的值导致半透明像素,透明度越高,像素颜色与关键颜色越相似。

29.17.1 示例

  • 使输入图像中的每个绿色像素都透明:

      ffmpeg -i input.png -vf colorkey=green out.png
    
  • 在静态背景图像上叠加绿屏视频:

      ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
    

29.18 colorlevels

使用级别调整视频输入帧。

过滤器接受以下选项:

rimin
gimin
bimin
aimin

调整红色,绿色,蓝色和alpha输入黑点。 选项的允许范围是[-1.0,1.0]。 默认值为0

rimax
gimax
bimax
aimax

调整红色,绿色,蓝色和alpha输入白点。 选项的允许范围是[-1.0,1.0]。 默认值为1

输入levels用于淡化高光(亮色调),使阴影变暗(暗色调),改变亮色调和暗色调的平衡。

romin
gomin
bomin
aomin

调整红色,绿色,蓝色和alpha输出黑点。 选项的允许范围是[0,1.0]。 默认值为0

romax
gomax
bomax
aomax

调整红色,绿色,蓝色和alpha输出白点。 选项的允许范围是[0,1.0]。 默认值为1

输出levels允许手动选择受约束的输出level范围。

29.18.1 示例

  • 使视频输出更暗:

      colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
    
  • 增加对比度:

      colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
    
  • 使视频输出更轻:

      colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
    
  • 增加亮度:

      colorlevels=romin=0.5:gomin=0.5:bomin=0.5
    

29.19 colorchannelmixer

通过重新混合颜色通道来调整视频输入帧。

此滤镜通过添加与相同像素的其他通道关联的值来修改颜色通道。 例如,如果要修改的值为红色,则输出值将为:

red=red*rr + blue*rb + green*rg + alpha*ra

过滤器接受以下选项:

rr
rg
rb
ra

调整输入红色,绿色,蓝色和alpha通道对输出红色通道的贡献。 rr的默认值为1rgrbra的默认值为0

gr
gg
gb
ga

调整输入红色,绿色,蓝色和alpha通道对输出绿色通道的贡献。 对于gg,默认值为1,对于grgbga,默认值为0

br
bg
bb
ba

调整输入红色,绿色,蓝色和alpha通道对输出蓝色通道的贡献。 bb的默认值为1brbgba的默认值为0

ar
ag
ab
aa

调整输入红色,绿色,蓝色和alpha通道对输出alpha通道的贡献。 aa的默认值为1aragab的默认值为0

选项的允许范围是[-2.0,2.0]

29.19.1 示例

  • 将源转换为灰度:

      colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    
  • 模拟棕褐色调:

      colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    

你可能感兴趣的