将 MP4 转换为 WAV

Posted

技术标签:

【中文标题】将 MP4 转换为 WAV【英文标题】:Converting MP4 to WAV 【发布时间】:2015-04-09 15:59:55 【问题描述】:

我正在用 Java 创建一个小型音频播放器,可以很好地播放某些格式(例如 WAV)。我发现这是因为javax.sound 不支持 MP4。从我读过的内容来看,从 MP4 转换为 WAV 是无损的,所以我相信这不应该那么困难。我知道有很多第三方库可以做到这一点,但我对下载一个应该相当简单的东西不感兴趣。我已经查看了每个 ISO 的特定 ISO,试图了解数据是如何存储的,以便能够创建 BufferedReaderBufferedWritter 以查看是否可以手动转换它,但我无法找到信息我在寻找。在纯 Java 1.7.0 中执行此操作的方法是什么(我知道 JavaFX 有一个 MediaPlayer,但不幸的是我不能使用 1.8.0)。

或者,如果有人知道我可以在哪里找到构成 MP4 和 WAV 的每个容器的特定容器信息(例如标头大小/信息、数据、ACK/NACK 等)。

【问题讨论】:

是什么让您认为这很简单?这实际上是极其复杂的。 MP4 文件中可能使用的编解码器都经过了数十年的研究。使用现有的编解码器。更好的是,使用 FFmpeg 并让它为您完成所有工作。我不明白你为什么认为你不能使用现有的图书馆。 【参考方案1】:

关于 MP4 到 wav 并没有什么直截了当的地方。拳头,MP4 是一个容器而不是编解码器。因此,您的 MP4 可能包含 wav、mp3、aac、AC3、DD+ 等。所有这些格式都需要不同的解码器才能“转换”为原始 PCM。

【讨论】:

我的 MP4 容器中不会还有一个标头可以说明 wav/mp3/aac 在其中的位置吗? 基本流会被分成很多块,每个块都可以通过解析'stco'原子找到。 谢谢!我能够使用它来获取 mp3,然后将其转换为 PCM。

以上是关于将 MP4 转换为 WAV的主要内容,如果未能解决你的问题,请参考以下文章

python中.mp4到.wav的转换花费了太长时间

如何使用 python 将 .264 文件转换为 avi\wav

115怎么转码

将音频转换为 8 位签名 PCM

将 .wav 文件转换为二进制文件,然后再转换回 .wav?

用于将 .wav 文件转换为 ogg 文件的 Python 库