aac(Advanced Audio Coding (AAC) encoder)
不显示指定时默认每秒收集128个千比特数据个数据也意味着1秒钟播放的音频的数据量是128个千比特。8bit1byte1024byte1kb所以128千比特的数据量是128*1000/8/1024156.25kb也就是使用128kbps采集一秒钟的生意数据就产生156.25kb数据。这个128kbps是怎么算出来的它是由采样率*采样深度*声道数量。采样率一秒钟采集声音样本的次数比如4400hz表示1秒钟采集44000次声音数据也就是生成44000个bit单位的数据采样深度每次采样的样本所保存的声音特点数据比如采样深度10表示一次采样保留10bit的声音特点数据声道同一时间采集声音来源的通道个数比如2声道就是同一时间是录入两个不同的声音样本。那最终比特率就是4400*10*2880,00bit/s 就是88kbps。-q 设置动态码率的质量例如ffmpeg -i input.wav -c:a aac -q:a 2 output.m4a #-q:a 数值设定质量等级。数值范围通常为 0.1 到 10取决于编码器实现数值越低音质越好文件越大数值越高压缩率越高文件越小。-cutoff 设置声音频率的上限。超过这个上限的声音就会被舍弃。声音的频率是说一秒钟声音在传播介质通常就是空气中震荡的次数比如声音频率1000hz表示1秒钟声音在空气中震荡1000次。频率越低声音越沉。人耳的听觉范围是 20 Hz ~ 20,000 Hz的声音。使用例子比如# 保留约 20kHz 以下的所有频率人耳听不到的高频声音就舍弃了ffmpeg -i music.wav -c:a libfdk_aac -b:a 256k -cutoff 20000 music.m4a-aac_coder 设置编码时使用的编码算法它有三个算法1.‘twoloop’ 它会先遍历一遍声音数据来寻找一个优化值然后第二次循环使用这个优化值来处理声音可以达到降噪的目的。2.‘fast’是twoloop的简化版它是直接给出一个优化值不会根据具体的声音数据去找这个优化值它在64kbps的比特率下效果不好但是在192kbps的比特率下效果跟twoloop的效果相近。它因为少了寻找优化值的步骤所以编码速度要比twoloop快在直播监控时可以指定这个参数达到提高编码效率的目的减少延迟。3、‘anmr’。-aac_ms 转换立体声它的全称为 Mid/Side Stereo Coding中/侧立体声编码默认值auto自动根据条件启动或不启动enable​强制启用。disable完全禁用。它开启后可以减少编码后的数据大小可以把左声道右声道两个声道的数据转换为中立声音Mid和侧独立声音数据Side。Mid的算法是左声道数据右声道数据/2Side的计算是左声道数据-右声道数据/2。虽然还是会用两个通道但因为左右声道的中低频声音数据相近那么Side的数据两边一减很多都是接近或等于0然后编码器就可以压缩这些接近或等于0的数据用更少的编码来表示Side的数据就可以达到了减少数据量的目的。例子# 使用默认的自动模式推荐ffmpeg -i input.wav -c:a aac -aac_ms auto output.m4a# 设置aac编码以48kbps编码一秒钟声音的数据量是48*1000bit强制开启 M/S 以在低码率下保立体声ffmpeg -i input.wav -c:a aac -b:a 48k -aac_ms enable output.m4a-aac_is丢弃立体声模拟声源所在物理位置的信息这个位置信息并不是真实的物理位置而是通过一些算法模拟的位置信息比如模拟出人左耳听到的声音效果就是左声道。那它本来可以听出声音可能出现在左耳的感觉但使用了这个之后就区分不了感觉是左耳听到的还是右耳听到的了。这样达到大大的减少编码后的数据量的作用。使用例子# 使用默认的自动模式推荐ffmpeg -i input.wav -c:a aac -aac_is auto output.m4a# 强制开启仅在“只要能出声就行”的低码率场景使用ffmpeg -i input.wav -c:a aac -b:a 32k -aac_is enable output.m4a-aac_pns它是FFmpeg 中 AAC 编码器的感知噪声替换Perceptual Noise Substitution开关。它针对的是人耳听不到的高频声音它在编码时把这个高频声音打个标记并去掉这个被标记的数据段原始的数据但又要符合编码规则它用AAC编码规则支持的指令去替代这段被删除的数据然后直接保存到输出文件里。在使用能播放AAC编码的音频软件时播放这个输出文件时在其播放过程就会读取到这些标记并合成原来被舍去的高频声音的数据。例子ffmpeg -i input.wav -c:a aac -aac_pns 1 output.m4a# 默认开启 PNS无需显式指定ffmpeg -i input.wav -c:a aac output.m4a# 显式禁用 PNS通常仅用于调试ffmpeg -i input.wav -c:a aac -aac_pns 0 output.m4a-aac_tns它的作用是将噪声从“无声或弱声”的时间段“挤”到声音大的爆发的时间段人耳听到声响大的声音就听不到那些声音小的噪声了。它的原理是把声音的数据根据20ms时间分成一段段的在每一段数据如果发现这段数据前半段是“沙沙”的小的噪音后半段是很大的声音数据这个时候这个参数就会把前半段的噪声数据推到后半段。这个噪音数据还是存在是会播放的只不过就被大的声音覆盖掉了人耳就听不清噪音了只能听到大的声音。如果这个片段里没有声音大声音都很小效果就不好默认是自动模式根据声音特点来自动决定按这个原理编码那些数据段。例子# 默认开启 TNS标准用法ffmpeg -i input.wav -c:a aac output.m4a# 显式关闭 TNS通常不建议ffmpeg -i input.wav -c:a aac -aac_tns 0 output.m4a-aac_ltp它的作用是在全段的每个20ms音频数据里用指令来替代这所有片段中有相似声音波形的数据。在解码时就像aac_pns 一样的方法去解码。只不过解码的指令有区别。-profile它的作用是限制使用那些优化编码的参数比如-aac_pns 、-aac_tns、-aac_ltp。它有三个可选参数1.‘’aac_low’指定了这个就可以使用TNS PNS但就不能使用-aac_ltp编码工具。2.‘aac_ltp’允许使用aac_ltp编码工具。3.‘mpeg2_aac_low’。例子

相关新闻

VMware虚拟机开机自动启动配置全解:3步完成、2种触发机制、1个致命陷阱必须避开

VMware虚拟机开机自动启动配置全解:3步完成、2种触发机制、1个致命陷阱必须避开

更多请点击: https://codechina.net 第一章:VMware虚拟机开机自动启动配置全解:3步完成、2种触发机制、1个致命陷阱必须避开 VMware Workstation 和 VMware Player 支持虚拟机随宿主机启动而自动运行,但该功能默认关闭且配置分散…

2026/6/26 9:48:36阅读更多 →
Sherlock.js终极指南:用自然语言创建日程事件的简单方法

Sherlock.js终极指南:用自然语言创建日程事件的简单方法

Sherlock.js终极指南:用自然语言创建日程事件的简单方法 【免费下载链接】Sherlock Natural-language event parser for Javascript 项目地址: https://gitcode.com/gh_mirrors/sherlock4/Sherlock 想要用自然语言创建日程事件吗?Sherlock.js就是…

2026/6/26 9:48:36阅读更多 →
适合夏天的“下火汤”,清润解暑,每天来一杯,越喝越舒服~

适合夏天的“下火汤”,清润解暑,每天来一杯,越喝越舒服~

夏季气温偏高,火气也大,再加上饮食作息不规律,很容易出现一系列上火的情况:○ 吃了煎炸烧烤,容易溃疡、口苦喉咙疼,鼻子周围总爱起痘痘;○ 皮肤干,口气重,口腔溃疡&#…

2026/6/26 9:48:36阅读更多 →
低成本MMX多材料3D打印换色方案设计与优化

低成本MMX多材料3D打印换色方案设计与优化

1. MMX换色机构概述与核心优势 MMX(Multi-Material Extruder)是一种基于舵机切换的3D打印多材料换色方案。相比市面上主流的兔子换色系统,这套方案最大的特点就是结构简单、成本低廉。我自己组装下来总成本控制在150元左右,如果用…

2026/6/26 14:46:31阅读更多 →
3分钟完成Windows与Office永久激活:KMS_VL_ALL_AIO智能激活指南

3分钟完成Windows与Office永久激活:KMS_VL_ALL_AIO智能激活指南

3分钟完成Windows与Office永久激活:KMS_VL_ALL_AIO智能激活指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office的激活弹窗烦恼吗?KMS_VL_ALL_AIO智…

2026/6/26 14:46:31阅读更多 →
生物质锅炉在制药企业中的应用与环境影响分析

生物质锅炉在制药企业中的应用与环境影响分析

2026年4月,辽源市生态环境局东辽县分局出具了吉林省鑫辉药业有限公司生物质锅炉建设项目的环评批复文件。该项目为制药企业能源基础设施升级提供了典型案例。吉林鑫辉药业一、项目概况该项目为扩建项目,建设地点位于东辽县渭津镇尚义村。主要建设内容包括…

2026/6/26 14:46:31阅读更多 →
【稀缺首发】VMware官方未公开的OVF导出隐藏参数大全:--skipManifest、--noSSLVerify等8个高危但高效的调试开关

【稀缺首发】VMware官方未公开的OVF导出隐藏参数大全:--skipManifest、--noSSLVerify等8个高危但高效的调试开关

更多请点击: https://intelliparadigm.com 第一章:OVF导出隐藏参数的发现背景与风险认知 OVF(Open Virtualization Format)作为虚拟机标准化分发格式,被广泛应用于vSphere、VirtualBox、OVirt等主流平台。然而&#x…

2026/6/26 14:46:31阅读更多 →
从vSphere到开源替代:一位CTO亲历的6个月迁移实战(含Kubernetes+OpenZiti平滑过渡路径)

从vSphere到开源替代:一位CTO亲历的6个月迁移实战(含Kubernetes+OpenZiti平滑过渡路径)

更多请点击: https://kaifayun.com 第一章:VMware博通收购后的战略转向与生态剧变 博通于2023年11月完成对VMware的收购,标志着企业虚拟化领域进入以“精简、集成、订阅优先”为内核的新周期。此次整合并非简单品牌延续,而是系统…

2026/6/26 14:46:31阅读更多 →
ExifToolGUI:免费开源图片元数据批量编辑终极指南

ExifToolGUI:免费开源图片元数据批量编辑终极指南

ExifToolGUI:免费开源图片元数据批量编辑终极指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾面对数百张照片的拍摄时间混乱而束手无策?是否需要在大量图片中批量添加版…

2026/6/26 14:41:30阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/26 11:03:22阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/26 4:15:25阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/26 9:29:01阅读更多 →
HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

一、前言:企业运维痛点与资源价值自博通收购 VMware 之后,原 VMware 公开免费下载渠道全面关闭,企业运维人员想要获取适配 HPE 慧与服务器的 ESXi 9 原厂镜像,必须注册博通账号、绑定有效授权才能下载,无授权账号无法获…

2026/6/26 0:02:15阅读更多 →
Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin作为一门现代编程语言,与Java的互操作性一直是其核心优势之一。为了让Kotlin代码能够无缝对接Java,Kotlin提供了多种注解来优化互操作体验,其中JvmStatic和JvmField是两个关键注解。它们分别用于解决静态成员和字段在Java中的访问问题&…

2026/6/26 0:02:15阅读更多 →
深入解析musl libc中的mmap实现源码

深入解析musl libc中的mmap实现源码

最近在阅读musl libc源码时,发现其mmap的实现非常精妙,特分享给大家。 一、代码整体结构 这段代码实现了__mmap函数,并通过weak_alias导出为mmap。这是典型的musl libc风格——提供弱符号以便用户可以重写。 weak_alias(__mmap, mmap); 二…

2026/6/26 0:02:15阅读更多 →