热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FFplay文档解读18音频过滤器三

26.21anequalizer每个通道的高阶参数多频带均衡器。它接受以下参数:params此选项字符串的格式为:cchnfcfwwggtf|..

26.21 anequalizer

每个通道的高阶参数多频带均衡器。

它接受以下参数:

params

此选项字符串的格式为:cchn f = cf w = w g = g t = f | ...每个均衡器带由'|'分隔。


均衡器解释
chn设置要应用均衡的通道编号。 如果输入没有该通道,则忽略该条目
f设置频段的中心频率。 如果输入没有该频率,则忽略该条目
w以赫兹为单位设置带宽
g以dB为单位设置频段增益
t设置band的过滤器类型,可选,可以是:
0:  Butterworth,这是默认的
1:  Chebyshev type 1
2:  Chebyshev type 2

curves

使用此选项,激活的均衡器频率响应将显示在视频流中。

size

设置视频流大小。 仅在激活曲线选项时有用。

mgain

设置将显示的最大增益。 仅在激活曲线选项时有用。 将其设置为合理的值使得可以显示从彼此过于接近的相邻频带导出的增益,从而在两者都被激活时产生更高的增益。

fscale

设置用于在视频输出中绘制频率响应的频率刻度。 可以是线性的或对数的。 默认为对数。

colors

设置将在视频流中显示的每个通道曲线的颜色。 这是由空格或'|'分隔的颜色名称列表。 未识别或缺失的颜色将被白色替换。


学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂



【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~  

  



26.21.1 示例

使用Chebyshev 1型滤波器,对前2个通道的中心频率200Hz和宽度100 Hz的增益降低10

anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1

26.21.2 命令行

此筛选器支持以下命令:

change

更改现有过滤器参数。 命令的语法是:fN | f = freq | w = width | g = gain

fN是现有的过滤器编号,从0开始,如果没有这样的过滤器可用,则返回错误。 freq设置新的频率参数。 widthherz中设置新的宽度参数。 增益设置新增益参数,以dB为单位。

使用asendcmd的完整过滤器调用可能如下所示:asendcmd = c ='4.0 anequalizer change 0 | f = 200 | w = 50 | g = 1',anequalizer = ...


26.22 anull

将音频源不变地传递给输出。


26.23 apad

用静音填充音频流的结尾。

这可以与ffmpeg'-shortest'一起使用,将音频流扩展到与视频流相同的长度。

接下来的选项的描述如下。

packet_size

设置静默包大小。 默认值为4096

pad_len

设置要添加到结尾的静音样本数。 达到该值后,流终止。 此选项与whole_len互斥。

whole_len

设置输出音频流中的最小样本总数。 如果该值长于输入音频长度,则将静音添加到结尾,直到达到该值。 此选项与pad_len互斥。

如果既未设置pad_len也未设置whole_len选项,则过滤器将无限期地向输入流的末尾添加静音。


26.23.1 示例


  • 在输入的末尾添加1024个静音样本:

    apad=pad_len=1024

  • 确保音频输出包含至少10000个样本,如果需要,请用静音填充输入:

    apad=whole_len=10000

  • 使用ffmpeg以静音方式填充音频输入,以便视频流始终最短,并在使用shortest选项时将其转换为输出文件中的结尾:

    ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT


26.24 aphaser

为输入音频添加定相效果。

移相器滤波器在频谱中产生一系列峰值和谷值。 调整峰和谷的位置,使它们随时间变化,产生清扫效果。

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

in_gain

设置输入增益。 默认值为0.4

out_gain

设置输出增益。 默认值为0.74

delay

设置延迟(以毫秒为单位)。 默认值为3.0

decay

设置衰变。 默认值为0.4

speed

设置调制速度,单位为Hz。 默认值为0.5

type

设置调制类型。 默认为三角形。

它接受以下值:

triangular, t
sinusoidal, s

26.25 apulsator

音频脉动器是autopanner和颤音之间的东西。 但它也可以产生有趣的立体声效果。 脉冲发生器根据具有不同波形和移相的LFO(低频振荡器)改变左右声道的音量。 此滤镜可以定义左右声道之间的偏移。 偏移量为0意味着两个LFO形状彼此匹配。 左右声道同样改变 - 传统的颤音。 偏移量为50%意味着右通道的形状精确地相移(或向后移动大约一半的频率) - 脉动器充当自动操作器。 在1处,两条曲线再次匹配。 中间的每个设置都会在所有阶段之间无间隙地移动相移,并产生一些具有正弦和三角波形的bypassing声音。 将偏移设置为接近1(从0.5开始)越多,信号从左扬声器传递到右扬声器的速度越快。

过滤器接受以下选项:

level_in

设置输入增益。 默认情况下为1。范围为[0.015625 - 64]

level_out

设置输出增益。 默认情况下为1。范围为[0.015625 - 64]

mode

设置LFO将使用的波形形状。 可以是以下之一:正弦,三角形,方形,锯切或锯齿形。 默认为正弦。

amount

设置调制。 定义LFO影响原始信号的数量。

offset_l

设置左声道偏移。 默认值为0。允许的范围为[0 - 1]

offset_r

设置右通道偏移。 默认值为0.5。 允许范围为[0 - 1]

width

设置脉冲宽度。 默认值为1。允许范围为[0 - 2]

timing

设置可能的定时模式。 可以是以下之一:bpmmshz。 默认为hz

bpm

设置bpm。 默认值为120。允许范围为[30 - 300]。 仅在时间设置为bpm时使用。

ms

设置ms。 默认值为500。允许范围为[10 - 2000]。 仅在时间设置为ms时使用。

hz

设置频率,单位为Hz。 默认值为2。允许范围为[0.01 - 100]。 仅在时间设置为hz时使用。


26.26 aresample

使用libswresample库将输入音频重新采样到指定的参数。 如果未指定,则过滤器将自动在其输入和输出之间进行转换。

此滤镜还能够拉伸/挤压音频数据以使其与时间戳匹配,或者注入静音/剪切音频以使其与时间戳匹配,两者组合或不执行任何操作。

过滤器接受语法[sample_rate:] resampler_options,其中sample_rate表示采样率,resampler_optionskey = value对的列表,以':'分隔。 有关支持的选项的完整列表,请参阅(ffmpeg-resampler)重新采样器选项


26.26.1 示例


  • 将输入音频重采样为44100Hz

    aresample=44100

  • 将样本拉伸/挤压到给定的时间戳,每秒最多补偿1000个样本:

    aresample=async=1000


26.27 areverse

反转音频剪辑。

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


26.27.1 示例


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

    atrim=end=5,areverse


26.28 asetnsamples

设置每个输出音频帧的采样数。

最后一个输出数据包可能包含不同数量的样本,因为当输入音频发出信号时,滤波器将刷新所有剩余样本。

过滤器接受以下选项:

nb_out_samples,n

设置每个输出音频帧的帧数。 该数字用作每个通道的样本数。 默认值为1024

pad,p

如果设置为1,则过滤器将使用零填充最后一个音频帧,以便最后一帧将包含与前一帧相同数量的样本。 默认值为1

例如,要将每帧样本数设置为1234并禁用最后一帧的填充,请使用:

asetnsamples=n=1234:p=0

26.29 asetrate

设置采样率而不改变PCM数据。 这将导致速度和音高的变化。

过滤器接受以下选项:

sample_rate,r

设置输出采样率。 默认值为44100 Hz


26.30 ashowinfo

显示包含每个输入音频帧的各种信息的行。输入音频未被修改。

显示的行包含表单键:值的一系列key:value

输出中显示以下值:

n

输入帧的(顺序)编号,从0开始。

pts

输入帧的显示时间戳,以时基为单位;时基取决于滤波器输入焊盘,通常为1/sample_rate

pts_time

输入帧的显示时间戳,以秒为单位。

pos

输入流中帧的位置,如果此信息不可用和/或无意义(例如在合成音频的情况下),则为-1

fmt

样本格式。

chlayout

频道布局。

rate

音频帧的采样率。

nb_samples

帧中的样本数(每个通道)。

nb_samples

音频数据的Adler-32校验和(以十六进制打印)。对于平面音频,数据被视为所有平面都连接在一起。

plane_checksums

每个数据平面的Adler-32校验和列表。


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • 抽空写了一个ICON图标的转换程序
    抽空写了一个ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换。具体的程序就在下面,如果看的人多,过两天再把思路写一下。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
author-avatar
Edwin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有