美文网首页FFPlay专辑
FFplay文档解读-38-视频过滤器十三

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

作者: 张芳涛 | 来源:发表于2018-11-15 18:04 被阅读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 示例

    • 在输入视频中添加颜色为“紫色”的填充。 输出视频大小为640x480,输入视频的左上角位于第0列第40行。

        pad=640:480:0:40:violet
      

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

        pad=width=640:height=480:x=0:y=40:color=violet
    
    • 填充输入以获得尺寸增加3/2的输出,并将输入视频放在填充区域的中心:

        pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
      
    • 填充输入以获得大小等于输入宽度和高度之间的最大值的平方输出,并将输入视频放在填充区域的中心:

        pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
      
    • 填充输入以获得16:9的最终w/h比率:

        pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
      
    • 在变形视频的情况下,为了正确设置输出显示方面,有必要在表达式中使用sar,根据以下关系:

        (ih * X / ih) * sar = output_dar
        X = output_dar / sar
      

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

        pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    
    • 将输出大小加倍并将输入视频放在输出填充区域的右下角:

        pad="2*iw:2*ih:ow-iw:oh-ih"
      

    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 示例

    • 使用ffmpeg生成给定视频的代表性调色板:

        ffmpeg -i input.mkv -vf palettegen palette.png
      

    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 示例

    • 使用调色板(例如使用palettegen生成)使用ffmpegGIF进行编码:

        ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
      

    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 示例

    • 应用水平和垂直解块,deringing和自动亮度/对比度:

        pp=hb/vb/dr/al
      
    • 应用没有亮度/对比度校正的默认滤镜:

        pp=de/-al
      
    • 应用默认过滤器和时间降噪器:

        pp=default/tmpnoise|1|2|3
      
    • 仅对亮度应用解块,并根据可用的CPU时间自动打开或关闭垂直解块:

        pp=hb|y/vb|a
      

    29.128 pp7

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

    过滤器接受以下选项:

    qp
    

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

    mode
    

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

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

    29.129 premultiply

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

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

    过滤器接受以下选项:

    planes
    

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

    inplace
    

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

    相关文章

      网友评论

        本文标题:FFplay文档解读-38-视频过滤器十三

        本文链接:https://www.haomeiwen.com/subject/mhfufqtx.html