美文网首页FFPlay专辑
FFplay文档解读-47-多媒体过滤器一

FFplay文档解读-47-多媒体过滤器一

作者: 张芳涛 | 来源:发表于2018-11-16 10:32 被阅读28次

    前言

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

    32. 多媒体过滤器

    以下是当前可用的多媒体过滤器的说明。

    32.1 abitscope

    将输入音频转换为视频输出,显示音频位范围。

    过滤器接受以下选项:

    rate,r
    

    设置帧速率,表示为每秒帧数。 默认值为25

    size,s
    

    指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为1024x256

    colors
    

    指定由空格分隔的颜色列表或用于绘制通道的|。 未识别或缺失的颜色将被白色替换。

    32.2 ahistogram

    将输入音频转换为视频输出,显示音量直方图。

    过滤器接受以下选项:

    dmode
    

    指定如何计算直方图。

    它接受以下值:

    解释
    single 对所有通道使用单个直方图
    separate 为每个通道使用单独的直方图

    默认值是:single

    rate,r
    

    设置帧速率,表示为每秒帧数。 默认值为25

    size,s
    

    指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为hd720

    scale
    

    设置显示比例。

    它接受以下值:

    解释
    log 对数
    sqrt 平方根
    cbrt 立方根
    lin 线性
    rlog 反向对数

    默认值是:log

    ascale
    

    设置幅度标度。

    它接受以下值:

    解释
    log 对数
    lin 线性

    默认值是:log

    acount
    

    设置在直方图中累积的帧数。 Defauls1。将此值设置为-1会累积所有帧。

    rheight
    

    设置窗口高度的直方图比率。

    slide
    

    设置超声波图。

    它接受以下值:

    解释
    replace 用新的行替换旧行
    scroll 从上到下滚动

    默认值是:replace

    32.3 aphasemeter

    将输入音频转换为视频输出,显示音频相位。

    过滤器接受以下选项:

    rate,r
    

    设置输出帧速率。 默认值为25

    size,s
    

    设置输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为800x400

    rc
    gc
    bc
    

    指定红色,绿色,蓝色对比度。 默认值为2,71。允许范围为[0,255]

    mpc
    

    设置将用于绘制中间相位的颜色。 如果color is none是默认值,则不会绘制中间相位值。

    video
    

    启用视频输出。 默认值已启用。

    过滤器还导出帧元数据lavfi.aphasemeter.phase,它表示当前音频帧的平均相位。 值在[-1,1]范围内。 -1表示左右声道完全异相,1表示声道同相。

    32.4 avectorscope

    将输入音频转换为视频输出,表示音频矢量范围。

    滤波器用于测量立体声音频流的声道之间的差异。 由相同的左和右信号组成的单声道信号产生直的垂直线。 任何立体声分离都可以看作是与该线的偏差,从而形成一个Lissajous图。 如果出现直线(或偏离它)但水平线出现,则表示左右声道异相。

    过滤器接受以下选项:

    mode, m
    

    设置矢量示波器模式。

    可用值如下所示:

    解释
    lissajous 利萨如旋转了45度
    lissajous_xy 与上述相同但未旋转
    polar 形状类似于圆的一半

    默认值是:‘lissajous’

    size, s
    

    设置输出的视频大小。 有关此选项的语法,请检查(ffmpeg-utils)视频大小语法。 默认值为400x400

    rate, r
    

    设置输出帧速率。 默认值为25

    rc
    gc
    bc
    ac
    

    指定红色,绿色,蓝色和Alpha对比度。 默认值为40,160,80255。允许范围为[0,255]

    rf
    gf
    bf
    af
    

    指定红色,绿色,蓝色和alpha淡入淡出。 默认值为15,10,55。允许范围为[0,255]

    zoom
    

    设置缩放系数。 默认值为1。允许的范围为[0,10]。 低于1的值将自动将缩放系数调整为最大可能值。

    draw
    

    设置矢量示波器绘图模式。

    可用值如下所示:

    解释
    dot 为每个样本绘制点
    line 在先前和当前样本之间画线

    默认值是:‘dot

    scale
    

    指定音频样本的幅度比例。

    可用值如下所示:

    解释
    lin 线性
    sqrt 平方根
    cbrt 立方根
    log 对数
    swap
    

    用右通道轴交换左通道轴。

    mirror
    

    镜轴。

    解释
    none 没有镜像
    x 仅镜像x轴
    y 仅镜像y轴
    xy 镜像两个轴

    32.4.1 示例

    • 使用ffplay的完整示例:

        ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
             [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
      

    32.5 bench, abench

    过滤图的基准部分。

    过滤器接受以下选项:

    action
    

    启动或停止计时器。

    可用值如下所示:

    解释
    start 获取当前时间,将其设置为帧元数据(使用密钥lavfi.bench.start_time),并将帧转发到下一个过滤器
    stop 获取当前时间并从输入帧元数据中获取lavfi.bench.start_time元数据以获取时差。 然后打印时间差,平均值,最大和最小时间(分别为tavgmaxmin)。 时间戳以秒表示

    32.5.1 示例

    • 基准选择性滤色片:

        bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
      

    32.6 concat

    连接音频和视频流,将它们一个接一个地连接在一起。

    过滤器适用于同步视频和音频流的片段。所有段必须具有相同数量的每种类型的流,并且这也将是输出流的数量。

    过滤器接受以下选项:

    n
    

    设置段数。默认值为2

    v
    

    设置输出视频流的数量,也就是每个段中的视频流数量。默认值为1

    a
    

    设置输出音频流的数量,即每个段中的音频流数量。默认值为0

    unsafe
    

    激活不安全模式:如果段具有不同的格式,请不要失败。

    滤波器具有v + a输出:第一个v视频输出,然后是音频输出。

    nx(v + a)个输入:首先是第一个段的输入,与输出的顺序相同,然后是第二个段的输入,等等。

    由于各种原因(包括编解码器帧大小或草率创作),相关流并不总是具有完全相同的持续时间。出于这个原因,应该立即连接相关的同步流(例如视频及其音频轨道)。 concat过滤器将使用每个段中最长流的持续时间(除了最后一个),并且如果需要,用静音填充较短的音频流。

    要使此过滤器正常工作,所有段必须从时间戳0开始。

    所有相应的流必须在所有段中具有相同的参数;过滤系统将自动选择视频流的常用像素格式,以及音频流的常用样本格式,采样率和通道布局,但其他设置(如分辨率)必须由用户明确转换。

    不同的帧速率是可以接受的,但会在输出时产生可变的帧速率;一定要配置输出文件来处理它。

    32.6.1 示例

    • 连接一个开头,一集和一个结尾,都是双语版本(流0中的视频,流12中的音频):

        ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
          '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
           concat=n=3:v=1:a=2 [v] [a1] [a2]' \
          -map '[v]' -map '[a1]' -map '[a2]' output.mkv
      
    • 连接两部分,分别处理音频和视频,使用(a)电影源,并调整分辨率:

        movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
        movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
        [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
      

    请注意,如果音频和视频流在第一个文件中的持续时间不完全相同,则会在针迹处发生异步。

    32.6.2 命令行

    此筛选器支持以下命令:

    next
    

    关闭当前段并转到下一段。

    32.7 drawgraph, adrawgraph

    使用输入视频或音频元数据绘制图形。

    它接受以下参数:

    m1
    

    设置第一帧元数据键,将使用元数据值绘制图形。

    fg1
    

    设置第一个前景色表达式。

    m2
    

    设置第二帧元数据键,将使用元数据值绘制图形。

    fg2
    

    设置第二个前景色表达式。

    m3
    

    设置第3帧元数据键,将使用元数据值绘制图形。

    fg3
    

    设置第3个前景色表达式。

    m4
    

    设置第4帧元数据键,将使用元数据值绘制图形。

    fg4
    

    设置第4个前景色表达式。

    min
    

    设置元数据值的最小值。

    max
    

    设置元数据值的最大值。

    bg
    

    设置图形背景颜色。 默认为白色。

    mode
    

    设置图形模式。

    模式的可用值如下所示:

    bar
    dot
    line

    默认值是:line

    slide
    

    设置幻灯片模式。

    幻灯片的可用值如下:

    解释
    frame 到达右边框时绘制新框架
    replace 用新的列替换旧列
    scroll 从右向左滚动
    rscroll 从左向右滚动
    picture 画出单张照片

    默认值是:frame

    size
    

    设置图形视频的大小。 有关此选项的语法,请检查(ffmpeg-utils)视频大小语法。 默认值为900x256

    前景色表达式可以使用以下变量:

    变量 解释
    MIN 元数据值的最小值
    MAX 元数据值的最大值
    VAL 当前元数据键值

    颜色定义为0xAABBGGRR

    使用来自signalstats过滤器的元数据的示例:

    signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
    

    使用来自ebur128过滤器的元数据的示例:

    ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
    

    相关文章

      网友评论

        本文标题:FFplay文档解读-47-多媒体过滤器一

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