FFplay文档解读-40-视频过滤器十五

前言

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

29.140 removegrain

removegrain滤镜是渐进式视频的空间降噪器。

m0

设置第一个平面的模式。

m1

设置第二个平面的模式。

m2

设置第三个平面的模式。

m3

设置第四个平面的模式。

模式范围为024。每种模式的描述如下:

0

保持输入平面不变。默认。

1

使用8个相邻像素的最小值和最大值剪切像素。

2

使用8个相邻像素的第二个最小值和最大值来剪切像素。

3

使用8个相邻像素的第三个最小值和最大值来剪切像素。

4

使用第8个相邻像素的第四个最小值和最大值来剪切像素。这相当于中值滤波器。

5

线敏感剪辑给出最小的变化。

6

行敏感剪辑,中间。

7

行敏感剪辑,中间。

8

行敏感剪辑,中间。

9

邻居像素最接近的行上的行敏感剪辑。

10

用最近的邻居替换目标像素。

11

[1 2 1]水平和垂直内核模糊。

12

与模式11相同。

13

Bob模式,从邻近像素最接近的行插入顶部字段。

14

Bob模式,从邻近像素最接近的行插入底部字段。

15

Bob模式,插入顶部字段。与13相同,但插值公式更复杂。

16

Bob模式,插入底部字段。与14相同,但插值公式更复杂。

17

以最小值和最大值分别对应每对相邻像素的最大值和最小值来剪切像素。

18

使用相对邻居的线敏感剪辑,其与当前像素的最大距离最小。

19

8个邻居的平均值替换像素。

20

平均9个像素([1 1 1]水平和垂直模糊)。

21

使用相对邻居的平均值来剪切像素。

22

与模式21相同,但更简单,更快捷。

23

小边缘和光晕去除,但声称无用。

24

类似于23

29.141 removelogo

使用图像文件抑制电视台徽标,以确定哪些像素包含徽标。它的工作原理是用相邻像素填充构成徽标的像素。

过滤器接受以下选项:

filename,f

设置过滤器位图文件,该文件可以是libavformat支持的任何图像格式。图像文件的宽度和高度必须与正在处理的视频流的宽度和高度相匹配。

提供的位图图像中值为零的像素不被视为徽标的一部分,非零像素被视为徽标的一部分。如果您使用白色(255)作为徽标而使用黑色(0)作为其余部分,那么您将是安全的。为了制作滤镜位图,建议拍摄带有徽标可见的黑框的屏幕截图,然后使用阈值滤镜,然后使用侵蚀滤镜一次或两次。

如果需要,可以手动修复少量斑点。请记住,如果未覆盖徽标像素,过滤器质量将大大降低。将太多像素标记为徽标的一部分并不会造成太大的伤害,但它会增加覆盖图像所需的模糊量,并会破坏超出必要的信息,而额外的像素会减慢大徽标的速度。

29.142 repeatfields

此过滤器使用Video ES标头中的repeat_field标志和基于其值的硬重复字段。

29.143 reverse

反转视频片段。

警告:此过滤器需要内存来缓冲整个剪辑,因此建议进行剪裁。

29.143.1 示例

  • 取一个剪辑的前5秒,并将其反转。

      trim=end=5,reverse
    

29.144 roberts

应用roberts cross运算符输入视频流。

过滤器接受以下选项:

planes

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

scale

设定值将与过滤结果相乘。

delta

设置将添加到筛选结果的值。

29.145 rotate

以弧度表示的任意角度旋转视频。

过滤器接受以下选项:

下面是可选参数的描述。

angle, a

设置一个表达式,用于顺时针旋转输入视频的角度,表示为弧度数。负值将导致逆时针旋转。默认情况下,它设置为0

针对每个帧评估该表达式。

out_w,ow

设置输出宽度表达式,默认值为iw。在配置期间仅对此表达式求值一次。

out_h, oh

设置输出高度表达式,默认值为ih。在配置期间仅对此表达式求值一次。

bilinear

如果设置为1,则启用双线性插值,值0表示禁用。默认值为1

fillcolor,c

设置用于填充旋转图像未覆盖的输出区域的颜色。有关此选项的一般语法,请检查(ffmpeg-utils)颜色语法。如果选择特殊值"none",则不打印背景(例如,如果从不显示背景,则非常有用)。

默认值为"black"

角度和输出大小的表达式可以包含以下常量和函数:

n

输入帧的序号,从0开始。在第一帧被过滤之前,它始终为NAN

t

输入帧的时间(以秒为单位),配置过滤器时设置为0。在过滤第一帧之前,它始终为NAN

hsub
VSUB

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

in_w,iw
in_h, ih

输入视频的宽度和高度

out_w,ow
out_h, oh

输出宽度和高度,即宽度和高度表达式指定的填充区域的大小

rotw(a)
roth(a)

完全包含由弧度旋转的输入视频所需的最小宽度/高度。

这些仅在计算'out_w''out_h'表达式时可用。

29.145.1 示例

  • 顺时针旋转PI/6弧度输入:

      rotate=PI/6
    
  • 逆时针旋转PI/6弧度输入:

      rotate=-PI/6
    
  • 顺时针旋转输入45度:

      rotate=45*PI/180
    
  • PI/3角度开始应用周期T的恒定旋转:

      rotate=PI/3+2*PI*t/T
    
  • 使输入视频旋转以T秒的周期和A弧度的幅度振荡:

      rotate=A*sin(2*PI/T*t)
    
  • 旋转视频,选择输出大小,以便整个旋转输入视频始终完全包含在输出中:

      rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    
  • 旋转视频,减小输出大小,以便不显示任何背景:

      rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    

29.145.2 命令行

该过滤器支持以下命令:

a, angle

设置角度表达式。 该命令接受相应选项的相同语法。

如果指定的表达式无效,则保持其当前值。

29.146 sab

应用形状自适应模糊。

过滤器接受以下选项:

luma_radius,lr

设置亮度模糊滤镜强度,必须是0.1-4.0范围内的值,默认值为1.0。值越大,图像越模糊,处理速度越慢。

luma_pre_filter_radius,lpfr

设置luma预滤波器半径,必须是0.1-2.0范围内的值,默认值为1.0

luma_strength,ls

设置luma最大像素之间的差异仍然要考虑,必须是0.1-100.0范围内的值,默认值是1.0

chroma_radius,cr

设置色度模糊滤镜强度,必须是-0.9-4.0范围内的值。值越大,图像越模糊,处理速度越慢。

chroma_pre_filter_radius,cpfr

设置色度预滤波器半径,必须是-0.9-2.0范围内的值。

'chroma_strength,cs'
设置仍然要考虑的像素之间的色度最大差异,必须是-0.9-100.0范围内的值。

如果未明确指定,则每个色度选项值都设置为相应的亮度选项值。

29.147 scale

使用libswscale库缩放(调整大小)输入视频。

通过更改输出样本宽高比,缩放滤镜强制输出显示宽高比与输入相同。

如果输入图像格式与下一个过滤器请求的格式不同,则缩放过滤器会将输入转换为请求的格式。

29.147.1 选项

过滤器接受以下选项,或libswscale缩放器支持的任何选项。

有关缩放器选项的完整列表,请参阅(ffmpeg-scaler)scaler_options

width, w
height, h

设置输出视频维度表达式。 默认值是输入维度。

如果widthw值为0,则输入宽度用于输出。 如果heighth值为0,则输入高度用于输出。

如果其中一个且只有一个值为-nn> = 1,则比例过滤器将使用一个值,该值保持输入图像的纵横比,从另一个指定的维度计算。 之后,它将确保计算出的尺寸可被n整除,并在必要时调整该值。

如果两个值都是-nn> = 1,则行为将与之前详细设置为0的两个值相同。

请参阅下面的维度表达式中使用的已接受常量列表。

eval

指定何时评估宽度和高度表达式。 它接受以下值:

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

默认值是:‘init’

interl

设置隔行扫描模式。 它接受以下值:

解释
1 强制隔行扫描意识缩放
0 不要应用隔行扫描缩放
-1 根据源帧是否标记为隔行扫描,选择隔行扫描感知缩放

默认值是:‘0’

flags

设置libswscale缩放标志。 有关完整的值列表,请参阅(ffmpeg-scaler)sws_flags。 如果未明确指定,则过滤器应用默认标志。

param0,param1

为需要它们的缩放算法设置libswscale输入参数。 有关完整文档,请参阅(ffmpeg-scaler)sws_params。 如果未明确指定,则过滤器应用空参数。

size,s

设置视频大小。 有关此选项的语法,请检查(ffmpeg-utils)视频大小语法

in_color_matrix

out_color_matrix

设置/输出YCbCr颜色空间类型。

这允许覆盖自动检测的值,并允许强制用于输出和编码器的特定值。

如果未指定,则颜色空间类型取决于像素格式。

可能的值如下:

解释
auto 自动选择
bt709 符合国际电信联盟(ITU)建议书BT.709的格式
fcc 设置符合美国联邦通信委员会(FCC)联邦法规(CFR)标题47(2003)73.682(a)的色彩空间
bt601 设置符合以下条件的色彩空间:

1:国际电联无线电通信部门(ITU-R)建议书BT.601

2:ITU-R Rec。 BT.470-6(1998)系统B,B1G

3:电影电视工程师协会(SMPTE)ST 170:2004
smpte240m 设置符合SMPTE ST 240:1999的色彩空间
in_range
out_range

设置/输出YCbCr样本范围。

这允许覆盖自动检测的值,并允许强制用于输出和编码器的特定值。 如果未指定,则范围取决于像素格式。 可能的值:

解释
auto/unknown 自动选择
jpeg/full/pc 设置全范围(8位亮度时为0-255
mpeg/limited/tv 设置MPEG范围(8位亮度时为16-235
force_original_aspect_ratio

如有必要,启用减小或增加输出视频宽度或高度以保持原始高宽比。 可能的值如下:

解释
disable 按指定缩放视频并禁用此功能
decrease 如果需要,输出视频尺寸将自动减小
increase 如果需要,输出视频尺寸将自动增加

此选项的一个有用实例是,当您知道特定设备的最大允许分辨率时,可以使用此选项将输出视频限制为该值,同时保留纵横比。 例如,设备A允许1280x720播放,的视频为1920x800。 使用此选项(将其设置为减小)并将1280x720指定到命令行会使输出1280x533

请注意,这与为'w''h'指定-1不同,仍需要指定此选项的输出分辨率才能工作。

'w''h'选项的值是包含以下常量的表达式:

in_w
in_h

输入的宽度和高度。

iw
ih

这些与in_win_h相同。

out_w
out_h

输出(缩放)宽度和高度。

ow
oh

这些与out_wout_h相同。

a

iw/ih一样。

sar

输入样本宽高比。

dar

输入显示宽高比。 从(iw / ih)* sar计算。

hsub
vsub

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

ohsub
ovsub

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

29.147.2 示例

  • 将输入视频缩放到200x100的大小:

      scale=w=200:h=100
    

  这相当于下面方法:

    scale=200:100

  或者如下:

    scale=200x100
  • 指定输出大小的大小缩写:

      scale=qcif
    

  也可以写成:

    scale=size=qcif
  • 将输入缩放为2x

      scale=w=2*iw:h=2*ih
    
  • 以上内容与:

      scale=2*in_w:2*in_h
    
  • 使用强制隔行缩放将输入缩放到2x

      scale=2*iw:2*ih:interl=1
    
  • 将输入缩放到一半大小:

      scale=w=iw/2:h=ih/2
    
  • 增加宽度,并将高度设置为相同的大小:

      scale=3/2*iw:ow
    
  • 寻找Greek harmony:

      scale=iw:1/PHI*iw
      scale=ih*PHI:ih
    
  • 增加高度,并将宽度设置为高度的3/2

      scale=w=3/2*oh:h=3/5*ih
    
  • 增加大小,使大小为色度子样本值的倍数:

      scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    
  • 将宽度增加到最大500像素,保持与输入相同的宽高比:

      scale=w='min(500\, iw*3/2):h=-1'
    
  • 通过组合scalesetsar使像素成为正方形:

      scale='trunc(ih*dar):ih',setsar=1/1
    
  • 通过组合scalesetsar使像素成为方形,确保结果分辨率均匀(某些编解码器需要):

      scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
    

29.147.3 命令行

此筛选器支持以下命令:

width, w
height, h

设置输出视频维度表达式。 该命令接受相应选项的相同语法。

如果指定的表达式无效,则保持其当前值。

29.148 scale_npp

使用NVIDIA Performance Primitives(libnpp)CUDA视频帧上执行缩放和/或像素格式转换。 设置输出宽度和高度的工作方式与缩放滤镜的工作方式相同。

接受以下附加选项:

format

输出CUDA帧的像素格式。 如果设置为字符串same(默认值),则将保留输入格式。 请注意,硬件帧尚不支持自动格式协商和转换

interp_algo

用于调整大小的插值算法。 算法如下:

算法 解释
nn 最近的邻居
linear
cubic
cubic2p_bspline 2-parameter cubic (B=1, C=0)
cubic2p_catmullrom 2-parameter cubic (B=0, C=1/2)
cubic2p_b05c03 2-parameter cubic (B=1/2, C=3/10)
super 超级采样
lanczos

29.149 scale2ref

根据参考视频缩放(调整大小)输入视频。

有关可用选项的比例过滤器,scale2ref支持相同但使用参考视频而不是主输入作为基础。 scale2ref还支持'w''h'选项的以下附加常量:

main_w
main_h

主输入视频的宽度和高度

main_a

main_w/main_h相同

main_sar

主输入视频的样本宽高比

main_dar,mdar

主输入视频的显示宽高比。 从(main_w/main_h)* main_sar计算。

main_hsub
main_vsub

主输入视频的水平和垂直色度子样本值。 例如,对于像素格式“yuv422p”hsub2vsub1

29.149.1 示例

  • 在覆盖之前缩放字幕流(b)以匹配主视频(a)的大小。

      'scale2ref[b][a];[a][b]overlay'
    

你可能感兴趣的:(FFplay文档解读-40-视频过滤器十五)