【发布时间】:2020-05-22 16:19:11
【问题描述】:
我一直致力于将用户上传的.mp3 文件转换为.wav 格式以供后端处理。我一直关注this example,我认为它有效,但结果.wav 比后端想要处理的要大。我对音频构成的内部工作原理知之甚少,无法理解我可以更改哪些内容以进一步压缩最终的.wav 文件,或者是否有可能。
它是直接的 1:1 转换,其中某个尺寸 .mp3 将始终变为某个尺寸 .wav?这将是一个简单的答案,但是创建.wav 似乎有很多配置,我敢肯定它不是那么简单。
几乎没有适合初学者的文档,我可以找到详细说明转换中实际发生的情况,例如这些行(以及所有其他行)实际在做什么:
intBuffer[0] = 0x4952; // "RI"
intBuffer[1] = 0x4646; // "FF"
非常感谢这里的任何帮助,我想我在这里不知所措。
【问题讨论】:
-
“实际上我也找不到详细说明实际情况的文档” -> en.wikipedia.org/wiki/Mp3#Encoding_and_decoding
-
@Andreas 太好了,谢谢,但是您知道我没有音频语言背景的任何资源吗?在这个阶段,这对我来说几乎是希腊语。
-
mp3 与其对应的 wav 之间很可能存在 1:1 映射,但是 mp3 有许多排列方式,例如可变或固定比特率,因此没有固定类型的 mp3,所以我会避免尝试担心从 mp3 转换后的 wav 文件会有多大……根据定义,wav 不是压缩的……还有几种不同风格的 wav 编解码器(例如整数或浮点数)……位深度,采样率和字节序是 wav 文件编码的原始音频的三个基本属性
-
@ScottStensland 嗯,我明白了,谢谢。那么,如果我的后端只能处理一个 8mb 的 wav 文件,并且我有用户上传或录制需要转换的各种大小的 mp3,那么我试图限制它们是不是运气不好?还是我必须对 mp3 的大小有非常严格的限制?
-
您可以将上传的 mp3 大小限制为 1mb,因为通常会发生 1:10 的比例,这可能会导致 wav 约为 10mb ...单声道文件(单声道)将使音频剪辑持续时间最大化给定文件大小限制,而两个通道(立体声)将使收听时间减半
标签: javascript audio mp3 wav