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

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

作者: 张芳涛 | 来源:发表于2018-11-15 17:57 被阅读11次

    前言

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

    29.90 kerndeint

    通过应用Donald Graft的自适应内核解除来解交织输入视频。 处理视频的隔行扫描部分以生成渐进帧。

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

    thresh
    

    在确定是否必须处理像素行时,设置影响滤波器容差的阈值。 它必须是[0,255]范围内的整数,默认为10。值为0将导致对每个像素应用该过程。

    map
    

    如果设置为1,则将超过阈值的像素绘制为白色。默认值为0

    order
    

    设置字段顺序。 交换字段(如果设置为1),如果为0则保留字段。默认值为0

    sharp
    

    如果设置为1,则启用其他锐化。默认值为0

    twoway
    

    如果设置为1,则启用双向锐化。默认值为0

    29.90.1 示例

    • 应用默认值:

        kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
      
    • 启用其他锐化:

        kerndeint=sharp=1
      
    • 以白色绘制处理过的像素:

        kerndeint=map=1
      

    29.91 lenscorrection

    正确的径向镜头失真

    该滤波器可用于校正由于使用广角镜头而导致的径向失真,从而重新校正图像。 要找到正确的参数,可以使用可用的工具,例如作为opencv的一部分或简单的反复试验。 要使用opencv,请使用opencv源中的校准样本(在samples/cpp下),并从结果矩阵中提取k1k2系数。

    请注意,KDE项目中的开源工具KritaDigikam实际上提供了相同的过滤器。

    与晕影滤镜(也可用于补偿镜头误差)相比,此滤镜可校正图像的失真,而晕影可校正亮度分布,因此可能希望在某些情况下同时使用两个滤镜,尽管将拥有 照顾顺序,即是否应在镜头校正之前或之后应用渐晕。

    29.91.1 选项

    过滤器接受以下选项:

    cx
    

    图像焦点的相对x坐标,从而失真的中心。 该值具有范围[0,1]并且表示为图像宽度的分数。 默认值为0.5

    cy
    

    图像焦点的相对y坐标,从而是失真的中心。 该值具有范围[0,1]并表示为图像高度的分数。 默认值为0.5

    k1
    

    二次校正项的系数。 该值的范围为[-1,1]0表示无更正。 默认值为0

    k2
    

    双二次修正项的系数。 该值的范围为[-1,1]0表示无更正。 默认值为0

    生成更正的公式是:

    r_src = r_tgt *(1 + k1 *(r_tgt / r_0)^ 2 + k2 *(r_tgt / r_0)^ 4)

    其中r_0是图像对角线的一半,r_srcr_tgt分别是源图像和目标图像中距焦点的距离。

    29.92 libvmaf

    获取两个输入视频之间的VMAF(视频多方法评估融合)分数。

    通过测井系统打印获得的VMAF分数。

    它需要Netflixvmaf库(libvmaf)作为先决条件。安装库后,可以使用以下命令启用它:./ configure --enable-libvmaf。如果未指定模型路径,则使用默认模型:vmaf_v0.6.1.pkl

    过滤器有以下选项:

    model_path
    

    设置要用于SVM的模型路径。默认值:vmaf_v0.6.1.pkl

    log_path
    

    设置用于存储日志的文件路径。

    log_fmt
    

    设置日志文件的格式(xmljson)。

    enable_transform
    

    启用计算vmaf的转换。

    PHONE_MODEL
    

    调用手机型号会产生比常规型号更高的VMAF分数,这更适合于笔记本电脑,电视等观看条件。

    PSNR
    

    启用计算psnrvmaf

    SSIM
    

    启用与vmaf一起计算ssim

    ms_ssim
    

    允许计算ms_ssimvmaf

    pool
    

    设置用于计算vmafpool方法(平均值,最小值或调和平均值)。

    此过滤器还支持framesync选项。

    在下面的例子中,正在处理的输入文件'main.mpg'与参考文件'ref.mpg'进行比较。

    ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf -f null - 
    

    选项示例:

    ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf =“psnr = 1:enable-transform = 1”-f null -
    

    29.93 limiter

    将像素组件值限制为指定范围[min,max]

    过滤器接受以下选项:

     min
    

    下限。 默认为输入的最低允许值。

    max
    

    上限。 默认为输入的最大允许值。

    planes
    

    指定要处理的平面。 默认为全部可用。

    29.94 loop

    循环视频帧。

    过滤器接受以下选项:

    loop
    

    设置循环次数。 将此值设置为-1将导致无限循环。 默认值为0

    size
    

    设置帧数的最大大小。 默认值为0

    start
    

    设置第一帧循环。 默认值为0

    29.95 lut3d

    3D LUT应用于输入视频。

    过滤器接受以下选项:

    file
    

    设置3D LUT文件名。

    目前支持的格式:

    支持的格式 解释
    3dl AfterEffects
    cube Iridas
    dat DaVinci
    m3d Pandora
    interp
    

    选择插值模式。

    可用值包括:

    解释
    nearest 使用最近定义点的值
    trilinear 使用定义立方体的8个点来插值
    tetrahedral 使用四面体插值

    此过滤器还支持framesync选项。

    29.96 lumakey

    将某些亮度值变为透明度。

    过滤器接受以下选项:

    threshold
    

    设置将用作透明度基础的亮度。 默认值为0

    tolerance
    

    设置要键入的亮度值范围。 默认值为0

    softness
    

    设定柔软度范围。 默认值为0。使用此选项可控制从零到完全透明的逐渐过渡。

    29.97 lut, lutrgb, lutyuv

    计算查找表以将每个像素分量输入值绑定到输出值,并将其应用于输入视频。

    lutyuv将查找表应用于YUV输入视频,lutrgb应用于RGB输入视频。

    这些过滤器接受以下参数:

    c0
    

    设置第一个像素组件表达式

    c1
    

    设置第二个像素组件表达式

    c2
    

    设置第三像素组件表达式

    c3
    

    设置第四个像素组件表达式,对应于alpha组件

    r
    

    设置红色组件表达式

    g
    

    设置绿色组件表达式

    b
    

    设置蓝色组件表达式

    a
    

    alpha分量表达式

    y
    

    设置Y/luminance分量表达式

    u
    

    设置U/Cb组件表达式

    v
    

    设置V/Cr组件表达式

    它们中的每一个都指定用于计算相应像素分量值的查找表的表达式。

    与每个c*选项关联的确切组件取决于输入中的格式。

    lut滤波器在输入中需要YUVRGB像素格式,lutrgb在输入中需要RGB像素格式,而lutyuv需要YUV

    表达式可以包含以下常量和函数:

    w
    h
    

    输入的宽度和高度。

    val
    

    像素组件的输入值。

    clipval
    

    输入值,剪切到minval-maxval范围。

    maxval
    

    像素组件的最大值。

    minval
    

    像素组件的最小值。

    negval
    

    像素分量值的否定值,剪切到minval-maxval范围;它对应于表达式“maxval-clipval + minval”

    clip(val)
    

    val中的计算值,剪切到minval-maxval范围。

    gammaval(gamma)
    

    计算出的像素分量值的伽马校正值被剪切到minval-maxval范围。它对应于表达式“pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+ minval”

    所有表达式默认为val

    29.97.1 示例

    • 否定输入视频:

        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"
      
    • 应用luma燃烧效果:

        lutyuv="y=2*val"
      
    • 删除绿色和蓝色组件:

        lutrgb="g=0:b=0"
      
    • 在输入上设置一个恒定的alpha通道值:

        format=rgba,lutrgb=a="maxval-minval/2"
      
    • 将亮度伽玛值校正0.5倍:

        lutyuv=y=gammaval(0.5)
      
    • 丢弃最不重要的亮点:

        lutyuv=y='bitand(val, 128+64+32)'
      
    • Technicolor like效果:

        lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
      

    29.98 lut2, tlut2

    lut2过滤器采用两个输入流并输出一个流。

    tlut2(时间lut2)滤波器从一个流中获取两个连续帧。

    此过滤器接受以下参数:

    c0
    

    设置第一个像素组件表达式。

    c1
    

    设置第二个像素组件表达式。

    c2
    

    设置第三像素组件表达式。

    c3
    

    设置第四个像素组件表达式,对应于alpha组件。

    它们中的每一个都指定用于计算相应像素分量值的查找表的表达式。

    与每个c*选项关联的确切组件取决于输入中的格式。

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

    w
    h
    

    输入的宽度和高度。

    x
    

    像素组件的第一个输入值。

    y
    

    像素组件的第二个输入值。

    bdx
    

    第一个输入视频位深度。

    bdy
    

    第二个输入视频位深度。

    所有表达式默认为x

    29.98.1 示例

    • 突出显示两个RGB视频流之间的差异:

        lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
      
    • 突出显示两个YUV视频流之间的差异:

        lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
      
    • 显示两个视频流之间的最大差异:

        lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
      

    29.99 maskedclamp

    使用第二个输入和第三个输入流夹住第一个输入流。

    返回第一个流的值,使其位于第二个输入流 - undershoot和第三个输入流+``overshoot之间。

    此过滤器接受以下选项:

    undershoot
    

    默认值为0

    overshoot
    

    默认值为0

    planes
    

    设置将处理为位图的planes,将从第一个流复制未处理的planes。 默认值为0xf,将处理所有planes

    相关文章

      网友评论

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

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