一位记者向我发送了四个小时的采访作为 M4A 文件,因为她的转录服务拒绝了这些,并询问以 320 kbps 的速度转换为 MP3 是否会“保持高质量”。 它不会。 录音为 64 kbps 单声道语音备忘录,以 320 重新编码将产生五倍大的文件,保存完全相同的音频,再加上第二个编码器的新层损坏。 她需要的是 WAV,因为转录服务想要 PCM,而文件大小对于她一次上传并删除的东西并不重要。 转换需要一分钟。 有用的部分是确定损失的方向,在您转换任何内容之前,这是值得理解的。
TL;博士: M4A 和 MP3 都是有损的,因此在它们之间转换会解码已经有细节缺失的音频,并使用不同的模型再次压缩它。 没有设置可以避免这种情况。 有两个规则保持小:永远不要选择源上的比特率,因为额外的位描述了第一个编码器的伪影而不是记录,并将原始文件保留为您的主数据而不是转换后的副本。 如果目的地是编辑器、转录服务或语音模型,则将其转换为 WAV 并完全跳过第二代。 那个 音频转换器 在 Toolz.dev 中,通过 WebAssembly 在您自己的选项卡中运行 ffmpeg,因此采访或语音备忘录永远不会离开机器。
.m4a 文件中有什么?
扩展名命名了容器,而不是音频,而这种区别消除了围绕这种格式的大部分混淆。
M4A 是一个 MPEG-4 容器,包含单个音轨。 里面的通常是 AAC,这是 iPhone 语音备忘录、Mac 屏幕录制、QuickTime 导出和大多数 Apple 下载产生的内容。 但是同一个扩展的容器,同样的扩展,可以容纳苹果无损,这两个文件表现不一样:一个已经把细节扔掉了,另一个没有。 iTunes Match 的 .m4a 是 AAC。 Apple Music 以无损模式撕裂的 .m4a 是 ALAC 大小,大约是 5 倍的大小,这就是您在没有工具的情况下将它们区分开来的方式。
这很重要,因为正确的转换取决于编解码器,而不是扩展。 转换为 MP3 的 AAC 文件会丢失第二代。 转换为 MP3 的 ALAC 文件丢失了它的第一个。 转换为 WAV 或 FLAC 不会再失去任何东西,尽管两者都无法恢复 AAC 已经丢弃的内容。
容器和编解码器之间的相同关系管理视频,它导致了更大的误解 雷蒙德指南:换包装很便宜,换压缩不行。
为什么将 M4A 转换为 MP3 会使情况变得更糟?
因为这两种格式都通过丢弃心理声学模型预测您不会听到的内容来工作,而第二个编码器无法区分记录和第一个编码器的剩余部分之间的区别。
AAC 和 MP3 构建不同的模型。 他们不同意哪些频率被更响亮的邻居掩盖,他们将信号分成不同数量的频段,并且它们处理突发的瞬态不同。 所以AAC决定保留的细节不是MP3会保留的细节,反之亦然。 当 MP3 对 AAC 文件的解码输出进行编码时,它会花费一些位数来保存从未在麦克风信号中的伪影,并丢弃了第一次通过的一些残留物。
损坏以可预测的顺序出现。 钹和踩踏先行,变成了一种被抹黑的嘶嘶声。 掌声如下,因为满是手的房间接近噪音,而噪音是这些编解码器无法建模的一件事。 然后,“s”在语音中发声,它会产生一种耳鸣,一旦你注意到它就很难听不见。
这些都不是反对转换的论据。 当下游的东西真正需要不同的格式时,它是一个从原始转换一次的参数。 M4A 不是 MP3 的文件。 在相同的比特率下,AAC 通常听起来更好,这意味着从 M4A 到 MP3 是一个兼容性步骤,它会花费您一点质量,而不是让您获得任何收益的升级。
你应该选择哪种比特率?
匹配源或稍微低于它,并且永远不会高于它。
原因是上面的一种。 高于源速率的位用于描述伪影,因此以 320 kbps MP3 重新编码的 128 kbps M4a 是大小的两倍半,没有可听的增益。 远低于源头会做相反的事情,并放弃了第二个真正的细节帮助。 如果您知道源码率,请使用它。 如果您不这样做,192 kbps 是音乐的合理默认值,任何 128 或以上的内容都适合语音。
天花板不是工具的决定。 MPEG-1 层 III 的最高速度为 320 kbps,您可以读取它 MPEG 音频帧头中的比特率索引表,无论接口提供什么,任何编码器都不能超过它。
以下是每个目标每分钟的立体声音频成本。
| 目标 | 每分钟 | 有损吗? | 它是为了什么 |
|---|---|---|---|
| MP3 128 kbps | 0.96 兆 | 是的 | 语音、播客、任何只读 MP3 的设备 |
| MP3 192 kbps | 1.44 MB | 是的 | 默认。 你会听而不是掌握的音乐 |
| MP3 320 kbps | 2.40 MB | 是的 | 只有当源头至少这么高时 |
| M4A (AAC) | 与 MP3 相同的速率相同 | 是的 | Apple 设备,并且比 MP3 速率更好的音效 |
| 奥格(沃比斯) | 再次相同 | 是的 | 游戏、网络音频、无专利权事项 |
| 氟 | 约6 MB | 否 | 存档无损源 |
| 波 | 10.1 MB | 否 | 编辑、转录服务、语音模型 |
WAV 数字不是估计值。 44.1 kHz 和 16 位的未压缩立体声 PCM 为 44,100 x 2 通道每秒 2 字节,即每秒 176,400 字节和每分钟 10.1 MB 的无音量,无论音频包含什么。 沉默的成本与交响曲的成本完全一样。
什么时候应该转换为 wav 或 flac?
每当目的地是一台机器而不是一对耳朵。
音频编辑器、转录服务、强制对齐工具和语音模型都需要 PCM,递给它们一个有损文件意味着它们首先将其解码。 转换为 wav 自己会完全跳过第二代有损生成:解码发生一次,结果是准确的,没有进一步的丢弃。 该文件很大,对于您上传一次的内容来说很好。
FLAC 是存档答案,而不是工作之一。 它在典型音乐上无损压缩到大约 60% 的 PCM,因此音频是可恢复位的,而文件较小的是第三个。 现在是 RFC 9639 中正式规定经过两十年的实际标准,它带有一个值得了解的细节: StreamInfo 块包含未编码音频的 MD5 签名,因此解码器可以证明其输出与样本的原始样本相匹配。 没有任何有损格式可以提供它,也没有任何有损来源可以拯救它。 将 MP3 转换为 FLAC 会产生较大的文件,保存相同的损坏音频,这是一种常见且完全没有意义的操作。
# what the conversions amount to, if you have ffmpeg installed
#
# M4A to MP3, matching a 192 kbps source:
ffmpeg -i memo.m4a -vn -acodec libmp3lame -b:a 192k memo.mp3
# M4A to WAV for a transcription service (16-bit PCM, 44.1 kHz):
ffmpeg -i memo.m4a -vn -acodec pcm_s16le -ar 44100 memo.wav
# size arithmetic, which needs no tool:
# lossy MB per minute = kbps x 60 / 8 / 1000
# WAV MB per minute = 44100 x 2 x 2 x 60 / 1024 / 1024 = 10.1
为什么我的 MP3 开头有间隙?
因为 MP3 不能表示任意数量的样本,并且修复程序存在于音频数据之外。
MPEG-1 层 III 帧正好容纳 1152 个样本。 因此,文件的长度会四舍五入到帧边界,编码器还需要导入才能产生有效输出,因此每个 MP3 在前面都有少量的静音,在末端有一个不在源中的小填充。 在 44.1 kHz 时,前间隙是几十毫秒。 在作为连续表演录制的专辑曲目之间,这是现场录音和幻灯片放映之间的区别。
格式没有此字段。 相反,玩家使用的是编码器写入的头部,记录延迟和填充,因此读取它的播放器可以修剪两者,而不会将不会的播放器。 MP4容器中的AAC具有作为容器结构的一部分的长度,这就是为什么M4A文件默认是无间隙的,而MP3文件仅按照惯例是无视距的。
对于单一语音备忘录,这些都不重要。 对于转换专辑,这是结果听起来巧妙的原因,即使每首曲目都很好。
为什么我的转换在带有专辑封面的文件上失败?
因为艺术品是作为视频流存储的,编码器要求将其写成一种无处可放的格式。
带有嵌入式封面艺术的 MP3 或 M4A 有两个流:音频和容器描述为视频的单个静止图像。 不用说,FFmpeg 将尝试将该图像带入输出,并且对于像 Wav 这样的目标,该操作没有意义,并且失败并出现在明显是音频文件上的视频编解码器的错误。
修复是一面旗帜, -vn,它完全放弃视频流。 转换器在这里传递它每次转换,因此艺术品被丢弃并且音频转换。 如果您希望保留封面艺术,请转换为携带它的格式并在之后使用标签编辑器重新附加,因为没有转换器可以可靠地完成两者。
奥格值得选择吗?
对于大多数人来说,没有。 对于两种具体情况,是的。
用 Xiph 自己的话来说,Ogg 容器中的 Vorbis 是 “完全开放、非专有、无专利权和免版税的通用压缩音频格式”。 这是它的全部论点,如果您在游戏中发送音频、您分发的应用程序或任何以编解码许可是某人最终会提出的问题的内容,它是一个真实的论点。
反对它:硬件支持是不完整的。 大量的汽车音响、旧手机和廉价播放器读取 MP3 而没有其他内容,这就是 MP3 仍然是文件发送给人而不是程序的安全选择的原因。 浏览器支持很好,并且已经有多年了。
声音是洗涤。 在大多数人使用的比特率下,Vorbis 和 AAC 都比 MP3 更好,而且彼此接近,而且这些都无法存活到第二代。
音频会离开我的机器吗?
不,对于这类文件,这就是重点。
转换通过编译为 WebAssembly 的 WebAssembly 浏览器选项卡中运行。 文件从磁盘读取到页面内存中,在那里转换,并作为下载返回。 在转换过程中打开 DevTools 中的网络面板,没有任何内容携带音频。
想想人们转换的内容。 语音备忘录。 录制的采访。 治疗笔记。 客户来电。 未经许可的人在未扩展到第三方的情况下进行的讲座。 免费在线转换器的正常安排是您将所有这些上传到陌生人的服务器以换取下载链接,保留政策是页脚所说的。 这里没有任何副本可以保留。
限制是选项卡而不是计划:300 MB 的源,大约是 128 kbps 音频的 5 小时或 wav 的半小时。 过去,桌面编码器是更好的工具,与 视频压缩器 适用于浏览器的内存而不是付费墙设置上限的地方。
如果音频在视频中怎么办?
那么这是错误的工具,而且区别不是迂腐的。
将 MP4 中的音轨拉出与重新编码音频文件的操作不同:当视频的音轨已经是 AAC 并且您想要 M4A 时,可以直接复制流,无需重新编码,也不会丢失。 这就是 音频提取器 确实如此,这就是为什么它作为一种单独的工具而不是这种工具存在的原因。
如果您需要视频中的 MP3 损失,则损失最少的顺序:首先提取,检查出了什么编解码器,只有在结果是您的目标拒绝的格式时才进行转换。 一步将视频直接转换为 MP3 有效,但它隐藏了有损重新编码是否发生。
另一个方向,MP3 到 M4A 呢?
值得在一种情况下做,其余的毫无意义。
有帮助的情况:Apple 设备或仅读取 M4A 的应用程序,这仍然适用于旧汽车集成、一些有声读物播放器以及任何期望 MPEG-4 包装中的 AAC 轨道的东西。 那么它与以相同的成本走另一条路的兼容性步骤相同。
人们伸手去拿它的情况:希望有一个更好的文件。 AAC 是比 MP3 更好的编解码器,但在编码原始录制时,这一优势适用。 交给一个解码的MP3,它以新的比特率忠实地编码MP3的人工制品,结果是第二代听起来略差,占用了大致相同的空间。 没有格式升级可以恢复不再在示例中的细节。
诚实的测试是询问文件的用途。 如果有东西拒绝播放,请转换。 如果它播放得很好并且您正在尝试改进它,唯一真正的改进就是找到原件。
我可以一次转换文件文件夹吗?
不在浏览器中,这是值得明确的边界。
每次转换都会将整个文件加载到选项卡中并运行一个 ffmpeg 传递,因此该工具一次处理一个文件。 对于比安装任何东西更快的三个语音备忘录。 对于音乐库,它是完全错误的工具,当浏览器仍在第二个文件上时,本地 ffmpeg 上的 shell 循环将完成。
# the batch version, once there are more than a handful
for f in *.m4a; do
ffmpeg -i "$f" -vn -acodec libmp3lame -b:a 192k "${f%.m4a}.mp3"
done
实践中的分界线大约有十个文件或半小时的音频。 在它下面,浏览器在设置时间内获胜,在它上面,本地编码器在所有内容上获胜。 同样的权衡支配着 视频压缩器,其中 tab 内存而不是订阅层设置了上限,并且 视频转换器 对于同一个问题的格式方面。



