惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
ffmpeg音频解码器的介绍和了解
HelloLLLLL · 2026-05-04 · via 博客园_首页

Audio Decoders

  AC-3(通常指 Dolby Digital)音频解码器主要用于处理 .ac3格式的音频流,常见于 DVD、蓝光及数字电视广播中。-drc_scale是该解码器用来控制动态范围压缩(DRC)强度的关键参数。AC-3 音轨在设计时为了兼顾影院级的动态范围(爆炸声很大,耳语声很小)和家庭观看需求,内置了动态范围控制(DRC)元数据。DRC能在解码时压缩音频的动态范围,让小声变大、大声变小,从而避免你在深夜观影时频繁调节音量。drc_scale参数决定了在解码过程中应用 DRC 的强度比例。它是一个浮点数,默认值通常为 1。drc_scale = 0,完全禁用 DRC。输出原始、未压缩的全动态范围音频。0 < drc_scale ≤ 1,启用部分压缩。数值越小,压缩越轻;数值为 1 时应用标准的完整压缩。drc_scale > 1,启用增强型压缩(非线性)。对大声压级信号进行更强力的限制,同时提升微弱声音。例子:​

ffmpeg -i input.mkv -c:a ac3 -drc_scale 0 output.wav # 禁用 DRC,保留原动态

ffmpeg -i input.ac3 -drc_scale 2.0 output.wav # 启用强力压缩,

flac

  FLAC audio decoder用于还原无损压缩音频的核心组件。能将 .flac文件精准还原为原始的 PCM 音频数据,有任何音质损失。FLAC 解码器核心特性有:1、无损还原:解码后的音频数据与编码前完全一致,常用于音乐存档、母带制作及 Hi-Fi 播放。2、广泛兼容:支持 FLAC 规范中的所有特性,包括高分辨率音频(最高 32-bit/655.35 kHz)、多声道(如 5.1/7.1)及元数据(如封面、CUE 章节)。默认行为:在 FFmpeg 中,只要使用 -c:a flac或默认的自动解码流程,即可调用此解码器。

参数:-use_buggy_lpc,用于解码从‌早期 FLAC 编码器(如 1.1.x 或更早版本)‌ 生成的文件,因为这个早期的编码器的一个算法上有缺陷,后来,新版的解码器修复了这个问题,导致旧版和新版的FLAC编码器的文件再解码时有兼容问题。ffmpeg 在使用这个参数时,就是为了兼容旧版本FLAC编码器编码的文件,开启这个参数,就用对应有缺陷的旧编码算法的解码算法,不开启这个参数,就说明是用的新与修复后的算法对应的解码算法来解码。如果当你发现在没开启这个参数时,解码出来的音频在合成后形成的音频文件出现了播放异常(如爆音、失真),但确认文件未损坏。就可以尝试开启这个参数。例如:

  # 仅在遇到“问题文件”时使用

  ffmpeg -i buggy_file.flac -c:a flac -use_buggy_lpc 1 fixed_output.wav

  # 正常情况下的解码(推荐)

  ffmpeg -i normal_file.flac output.wav

ffwavesynth

  音频也是可以像编程一样,通过特定的语法可以创建出能播放标准声音的脚本文件。这让我联想到一些ai模仿明星的说话的声音,就是因为其声音是可以通过编程来实现让人觉得ai的声音与真人声音听起来很相似。这意味着任何人的声音都在被这人的声音数据被收集齐备后,是可以通过编程来实现模仿这个人的说话声音。一些网络上的骗子就会使用有这种技术的软件。这是题外话。这个ffwavesynth,就可以把这些声音脚本文件,通常是.wave格式的文件,像我们的各种编程语言的编译器一样,解析“编译”脚本的语法,最后程序是生成可执行文件,而这个ffwavesynth组件就会合成出可以被音频设备,如:扬声器、耳机播放出声音的音频数据,它不直接生成文件,它是一个解码器,后续还需要把经过ffwavesynth处理的数据,复用后最终生成一个音频文件。

libcelt decoder wrapper

  ffmpeg里并没有libcelt解码动态库,需要我们自己准备好,而ffmpeg里的libcelt decoder wrapper是对真正的libcelt解码器的封装。libcelt库解码的对象是CELT​编码器编码的音频,CELT 编解码器的出现是为了实时的语言交互,它的延迟很低,但该编码器在2010年就没有人维护,取而代之的是Opus编解码器。针对CELT​编码器编码的这种音频,对使用的ffmpeg是有要求的,在编译ffmpeg源码时,要显示配置 --enable-libcelt,并且系统需预先安装好对应的 libcelt开发包(如 libcelt-dev),这个库我想的话要放到ffmpeg的音频解码器目录,在编译时,需要指定这个libcelt所在目录的路径,否则编译后会找不到此解码器,那编译出来的ffmpeg就无法处理这种音频了。它的使用命令:

  # 使用 libcelt 解码器进行转换

  ffmpeg -c:a libcelt -i old_voice.celt output.wav

  # 或者让 FFmpeg 自动探测(如果流标记正确)

  ffmpeg -i old_voice.celt output.wav

libcelt decoder wrapper

  这个跟libcelt decoder wrapper类似,也是要编译设置,也是一个适配器充当ffmpeg与真正的ibcelt decoder的“胶水”作用。开了ai的介绍,让我想到了以前2000年左右使用GSM电话卡,对没错,这个编码器就是可以用来编解码这种2G时代的手机通话语音的。

libilbc decoder wrapper

  这个也跟libcelt decoder wrapper类似,后面提到某某wrapper都是这个意思。它是用于实时语音通话,核心是为了实时传输中容错抗丢包,现在已被Opus编解码器替代。

libmpeghdec decoder wrapper

  libmpeghdec用于编解码高清广播流媒体领域,被视为杜比全景声(Dolby Atmos)的主要竞争对手。

libopencore-amrnb

  AMR-NB是2G/3G 时代的语音标准,也是早期手机录音(.amr文件)的通用格式。

libopencore-amrwb

  3G/4G 的高清语音编解码器

libopus

  它就是取代libilbc、libcelt的编解码器。