Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .mp3大小与.wav大小相比如何?_Javascript_Audio_Mp3_Wav - Fatal编程技术网

Javascript .mp3大小与.wav大小相比如何?

Javascript .mp3大小与.wav大小相比如何?,javascript,audio,mp3,wav,Javascript,Audio,Mp3,Wav,我一直在努力将用户上传的.mp3文件转换为.wav格式,以便后端处理。我一直在关注,我认为它是可行的,但是结果.wav比后端想要处理的要大。我对音频合成的内部工作原理了解不够,无法理解我可以修改什么来压缩最终的.wav文件,或者如果可能的话 它是一种直接的1:1转换,其中特定大小的.mp3将始终成为特定大小的.wav?这将是一个简单的答案,但在创建.wav时,似乎有太多的配置,我相信这并不是那么简单 实际上也没有初学者友好的文档,我可以找到转换过程中实际发生的细节,比如这些行(以及所有其他行)实

我一直在努力将用户上传的
.mp3
文件转换为
.wav
格式,以便后端处理。我一直在关注,我认为它是可行的,但是结果
.wav
比后端想要处理的要大。我对音频合成的内部工作原理了解不够,无法理解我可以修改什么来压缩最终的
.wav
文件,或者如果可能的话

它是一种直接的1:1转换,其中特定大小的
.mp3
将始终成为特定大小的
.wav
?这将是一个简单的答案,但在创建
.wav
时,似乎有太多的配置,我相信这并不是那么简单

实际上也没有初学者友好的文档,我可以找到转换过程中实际发生的细节,比如这些行(以及所有其他行)实际上在做什么:

intBuffer[0] = 0x4952; // "RI"
intBuffer[1] = 0x4646; // "FF"
这里的任何帮助都将不胜感激,我想我在这里有些不知所措

我一直在努力将用户上传的.mp3文件转换成.wav格式,以便后端处理

为什么??这仅在您使用原始PCM数据执行某些操作时才有必要。在大多数情况下,您可以将其保留为上载给您的原始最终版本

我一直在遵循这个例子

该示例仅在需要转换客户端时有用。如果在服务器上进行转换,那么使用FFmpeg之类的工具为您进行转换将更加高效

但结果是.wav更大

WAV文件通常存储原始PCM。这是通过每秒数千次量化压力水平来实现的。它允许无损编辑,但效率不高。我们不会直接“听到”压力变化,而是听到频率。而且,我们听到的也有一些进化变化。(例如,如果有响亮的声音和安静的声音同时出现,我们就不会注意到这些安静的声音。我们的大脑在寻找即将吃掉我们的狮子,而不是沿途涓涓细流。)

MP3的工作原理是利用我们听到和感知声音的方式来占用更少的空间。处理在频域中完成。更大的声音比更安静的声音占用更多的带宽。有些声音的计时有点混乱。短时间段(“帧”)不是在单个样本级别上工作,而是一起处理。MP3是有损的,但设计的目的是丢失声音中不那么重要的部分。在这个过程中,它的声音可以接近于“透明”,大约是原始PCM带宽的1/7


WAV文件中的原始PCM总是最大的文件大小。如果你需要缩小尺寸,它不是适合这项工作的工具。

“实际上,我也找不到任何文档可以详细说明实际发生了什么”->@Andreas太好了,谢谢,但是你知道我能理解的没有音频语言背景的资源吗?在这个阶段,这对我来说几乎是希腊语。mp3和它的wav对应物之间可能有1:1的映射,但是有许多类似于mp3的可变或固定比特率的排列,所以没有固定类型的mp3,所以我可以避免担心一旦从mp3转换成wav文件会有多大。。。wav根据定义是不压缩的。。。还有几种不同风格的wav编解码器(例如整数或浮点)。。。位深度、采样率和端度是原始音频的三个基本属性,而原始音频就是wav文件encodes@ScottStensland嗯,我明白了,谢谢。那么,如果我的后端只能处理8mb的wav文件,而我有用户上传或录制需要转换的各种大小的MP3,那么我是否因为试图限制它们而运气不佳?或者我必须对mp3的大小有严格的限制吗?你可以将上传的mp3大小限制在1mb,因为通常会发生1:10的比例,这可能导致wav大约为10mb。。。单声道文件(单声道)将最大限度地延长给定文件大小限制下可用的音频剪辑持续时间,而双声道(立体声)将使收听时间减半我可以告诉您,前几个问题的答案是因为后端只能处理WAV文件,而前端将处理转换。然而,你的回答让我觉得我应该推荐一种不同的方法。谢谢@jdmac是的,我会在服务器端进行转换,以减少上传大小,并最大限度地提高与用户发送内容的兼容性和一致性。如果可能的话,始终保留原始文件的副本。存储成本很低,而且您永远不知道何时需要重新转换。(例如,您可能决定将来确实需要这些有损副本。或者,您可能需要重新提取一些元数据。在那里,就这样做了。:-)一定要将该文件存档。)