美文网首页FFPlay专辑
FFplay文档解读-19-音频过滤器四

FFplay文档解读-19-音频过滤器四

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

    前言

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

    26.31 astats

    显示有关音频通道的时域统计信息。 计算并显示每个音频通道的统计数据,并在适用的情况下给出总体数字。

    它接受以下选项:

    length
    

    短窗长度,以秒为单位,用于峰值和谷值RMS测量。 默认值为0.0550毫秒)。 允许范围为[0.01 - 10]

    metadata
    

    设置元数据注入。 所有元数据键都以lavfi.astats.X为前缀,其中X是从1开始的通道编号或字符串整体。 默认为禁用。

    每个通道的可用键是:DC_offset Min_level Max_level Min_difference Max_difference Mean_difference RMS_difference Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count Bit_depth Dynamic_range

    总体而言:DC_offset Min_level Max_level Min_difference Max_difference Mean_difference RMS_difference Peak_level RMS_level RMS_peak RMS_trough Flat_factor Peak_count Bit_depth Number_of_samples

    例如,全键看起来像这个lavfi.astats.1.DC_offset或者这个lavfi.astats.Overall.Peak_count

    有关每个键的含义,请参阅下文:

    reset
    

    设置要重新计算统计数据的帧数。默认为禁用。

    每个显示的参数的描述如下:

    DC offset
    

    从零开始的平均幅度位移。

    Min level
    

    最低样本水平。

    Max level
    

    最大样本水平。

    Min difference
    

    两个连续样本之间的最小差异。

    Max difference
    

    两个连续样本之间的最大差异。

    Mean difference
    

    两个连续样本之间的平均差异。两个连续样本之间每个差异的平均值。

    RMS difference
    

    两个连续样本之间的均方根差异。

    Peak level dB
    
    RMS level dB
    

    标准峰值和RMS水平以dBFS为单位。

    RMS peak dB
    
    RMS trough dB
    

    通过短窗口测量的RMS水平的峰值和谷值。

    Crest factor
    

    标准峰值与RMS水平之比(注意:不以dB为单位)。

    Flat factor
    

    信号在其峰值水平(即最小水平或最大水平)的平坦度(即具有相同值的连续样本)。

    Peak count
    

    信号达到最低级别或最高级别的次数(不是样本数)。

    Bit depth
    

    音频的总位深度。每个样本使用的位数。

    Dynamic range
    

    dB为单位测量的音频动态范围。

    26.32 atempo

    调整音频速度。

    过滤器只接受一个参数,即音频速度。 如果未指定,则过滤器将采用标称1.0速度。 速度必须在[0.5,2.0]范围内。

    26.32.1 示例

    • 将音频降低到80%的速度:

        atempo=0.8
      
    • 要将音频加速到125%的速度:

        atempo=1.25
      

    26.33 atrim

    修剪输入,使输出包含输入的一个连续子部分。

    它接受以下参数:

    start
    

    要保留的部分开头的时间戳(以秒为单位)。即具有时间戳开始的音频样本将是输出中的第一个样本。

    end
    

    指定将要丢弃的第一个音频样本的时间,即紧接在具有时间戳结束的音频样本之前的音频样本将是输出中的最后一个样本。

    start_pts
    

    start相同,但此选项设置样本中的开始时间戳而不是秒。

    end_pts
    

    end相同,但此选项设置样本中的结束时间戳而不是秒。

    duration
    

    输出的最大持续时间(以秒为单位)。

    start_sample
    

    应输出的第一个样本的编号。

    end_sample
    

    应删除的第一个样本的编号。

    'start''end''duration'表示为持续时间规范;请参阅(ffmpeg-utils)持续时间语法

    请注意,前两组start/end选项和'duration'选项查看帧时间戳,而_sample选项只计算通过过滤器的样本。因此,当时间戳错误,不精确或不从零开始时,start/end_ptsstart/end_sample将给出不同的结果。另请注意,此过滤器不会修改时间戳。如果希望输出时间戳从零开始,请在atrim过滤器后插入asetpts过滤器。

    如果设置了多个开始或结束选项,则此过滤器会尝试贪婪,并保留与至少一个指定约束匹配的所有样本。要仅保留匹配所有约束的部分,请链接多个atrim过滤器。

    默认值是保留所有输入。所以可以设置例如只是最终值,以保持指定时间之前的一切。

    下面是示例:

    • 删除除输入的第二分钟以外的所有内容:

        ffmpeg -i INPUT -af atrim=60:120
      
    • 仅保留前1000个样本:

        ffmpeg -i INPUT -af atrim=end_sample=1000
      

    26.34 bandpass

    应用具有中心频率和(3dB点)带宽宽度的双极Butterworth带通滤波器。 csg选项选择恒定裙边增益(peak gain = Q)而不是默认值:恒定0dB peak gain。 滤波器以每倍频程6dB(20dB per decade)滚降。

    过滤器接受以下选项:

    frequency, f
    

    设置滤波器的中心频率。 默认值为3000

    csg
    

    如果设置为1,则恒定裙摆增益。默认为0

    width_type,t
    

    设置方法以指定过滤器的带宽:

    参数 含义
    h Hz
    q Q-Factor
    o octave
    s slope
    k kHz
    width, w
    

    width_type为单位指定过滤器的带宽。

    channels, c
    

    指定要过滤的通道,默认情况下会过滤所有可用的通道。

    26.34.1 命令行

    此筛选器支持以下命令:

    frequency, f
    

    改变带通频率。 该命令的语法是:frequency

    width_type,t
    

    更改bandpass width_type。 该命令的语法是:width_type

    width, w
    

    改变带通宽度。 该命令的语法是:width

    26.35 bandreject

    应用具有中心频率和(3dB-point)带宽宽度的双极Butterworth带阻滤波器。 滤波器以每倍频程6dB20dB per decade)滚降。

    过滤器接受以下选项:

    frequency, f
    

    设置滤波器的中心频率。 默认值为3000

    width_type, t
    

    设置方法以指定过滤器的带宽。

    参数 解释
    h Hz
    q Q-Factor
    o octave
    s slope
    k kHz
    width, w
    

    width_type为单位指定过滤器的带宽。

    channels, c
    

    指定要过滤的通道,默认情况下会过滤所有可用的通道。

    26.35.1 命令行

    此筛选器支持以下命令:

    frequency, f
    

    改变频带反射频率。 该命令的语法是:frequency

    width_type,t
    

    更改bandreject width_type。 该命令的语法是:width_type

    width, w
    

    更改bandreject宽度。 该命令的语法是:width

    26.36 bass

    使用双极搁架滤波器提升或降低音频的低音(低频)频率,其响应类似于标准高保真音调控制的响应。 这也称为搁置均衡(EQ)。

    过滤器接受以下选项:

    gain, g
    

    增益为0 Hz。 它的有用范围是大约-20(用于a large cut)到+20(用于a large boost)。 使用正增益时要小心clipping

    frequency, f
    

    设置滤波器的中心频率,因此可用于扩展或减小要增强或削减的频率范围。 默认值为100 Hz

    width_type,t
    

    设置方法以指定过滤器的带宽:

    参数 解释
    h Hz
    q Q-Factor
    o octave
    s slope
    k kHz
    width, w
    

    确定过滤器的架子过渡有多陡峭。

    channels, c
    

    指定要过滤的通道,默认情况下会过滤所有可用的通道。

    26.36.1 命令行

    此筛选器支持以下命令:

    frequency, f
    

    改变低音频率。 该命令的语法是:frequency

    width_type,t
    

    改变低音width_type。 该命令的语法是:width_type

    width, w
    

    改变低音宽度。 该命令的语法是:width

    gain, g
    

    改变低音增益。 该命令的语法是:gain

    26.37 biquad

    应用具有给定系数的双二阶IIR滤波器。 其中b0,b1,b2a0,a1,a2分别是分子和分母系数。 和通道,c指定要过滤的通道,默认情况下,所有可用的通道都被过滤。

    26.37.1 命令行

    此筛选器支持以下命令:

    ‘a0’
    ‘a1’
    ‘a2’
    ‘b0’
    ‘b1’
    ‘b2’
    

    更改biquad参数。 该命令的语法是:value

    26.38 bs2b

    Bauer立体声到双耳转换,改善了立体声音频记录的耳机收听。

    要启用此过滤器的编译,需要使用--enable-libbs2b配置FFmpeg

    它接受以下参数:

    profile
    

    预定义crossfeed level

    参数 解释
    default 默认级别(fcut=700, feed=50)
    cmoy Chu Moy circuit (fcut=700, feed=60)
    jmeier Jan Meier circuit (fcut=650, feed=95)
    fcut
    

    切割频率(Hz)

    feed
    

    Feed级别(Hz)

    26.39 channelmap

    将输入通道重新映射到新位置。

    它接受以下参数:

    map
    

    将通道从输入映射到输出。 参数是一个'|'分隔的映射列表,每个映射都以in_channel-out_channelin_channel形式出现。 in_channel可以是输入通道的名称(例如左前方的FL)或输入通道布局中的索引。 out_channel是输出通道布局中输出通道的名称或其索引。 如果没有给出out_channel,那么它隐含地是一个索引,从零开始并为每个映射增加1。

    channel_layout
    

    输出流的通道布局。

    如果不存在映射,则过滤器将隐式地将输入通道映射到输出通道,从而保留索引。

    26.39.1 示例

    • 例如,假设一个5.1 +缩混输入MOV文件可以使用如下的命令行:

        ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
      

      将从输入的下混通道创建标记为立体声的输出WAV文件。

    • 修复以AAC原生频道顺序不正确编码的5.1 WAV:

        ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
      

    26.40 channelsplit

    将每个通道从输入音频流拆分为单独的输出流。

    它接受以下参数:

    channel_layout
    

    输入流的通道布局。 默认为stereo

    channels
    

    描述要作为单独输出流提取的通道的通道布局或"all"以将每个输入通道提取为单独的流。 默认为"all"

    选择输入中不存在于通道布局中的通道将导致错误。

    26.40.1 示例

    • 例如,假设立体声输入MP3文件:

        ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
      

      将创建一个输出Matroska文件,其中包含两个音频流,一个仅包含左声道,另一个包含右声道。

    • 5.1 WAV文件拆分为每个通道文件:

        ffmpeg -i in.wav -filter_complex
        'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
        -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
        front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
        side_right.wav
      
    • 仅从5.1 WAV文件中提取LFE

        ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
        -map '[LFE]' lfe.wav
      

    相关文章

      网友评论

        本文标题:FFplay文档解读-19-音频过滤器四

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