用于从 MP3 文件中提取音频信息的 Java 库

Posted

技术标签:

【中文标题】用于从 MP3 文件中提取音频信息的 Java 库【英文标题】:Java library for extracting audio information from MP3 files 【发布时间】:2011-03-16 14:51:28 【问题描述】:

是否有任何免费可用的库(Java 媒体框架除外)可用于从 MP3 文件中提取比特率(例如 128 kbps、VBR)和音频质量(例如 44.1KHz、立体声)?

我想要一个可以合并到我的应用程序 jar 中的独立库,也可以部署在只有 Java 1.5 可用且我无法升级它们或添加任何大型 Java 库的旧 Mac 上。

澄清一下:我不会播放、转码或对音频流本身做任何事情,我只对元数据感兴趣。

【问题讨论】:

我有一个库/代码可以做到这一点,但是网上有很多例子告诉你如何从文件中读取 MP3 信息。 【参考方案1】:

我承认我对 MP3 文件了解不多,但您可以从the format specification 看到所需的所有信息都在文件的 32 位长标题中。

您可以使用FileInputStream 打开 MP3,读取文件的前 4 个字节,然后使用一些简单的二进制掩码检索您需要的信息。恕我直言,为此使用专门的库有点矫枉过正。

【讨论】:

不只是读取前4个字节,还要验证数据也是MPEG帧。【参考方案2】:

看看JAudioTagger,简单易用,你要找的数据在MP3AudioHeader类中,有getBitRate()之类的方法

【讨论】:

【参考方案3】:

您可以使用 LAMEOnJ 库:

http://openinnowhere.sourceforge.net/lameonj/

这个java库很轻,但是你必须在目标计算机上安装LAMELib

【讨论】:

【参考方案4】:

我不是 Java 程序员,但我很确定您可以将 mp3 文件读入字节数组,然后查看 http://www.mp3-tech.org/programmer/frame_header.html 了解帧信息。

【讨论】:

【参考方案5】:

format specification 向您展示了 MPEG (mp3) 标头中包含的内容。您可以编写代码来检索此标头。

【讨论】:

以上是关于用于从 MP3 文件中提取音频信息的 Java 库的主要内容,如果未能解决你的问题,请参考以下文章

从 MP3 中提取原始音频/波形

使用javascript从视频流中提取音频

使用 Python 从 MP3 音乐中提取节拍

ffmpeg_拼接并提取flv视频文件中的音频生成mp3文件

我正在尝试从文本文件数据中提取并将其添加到音频读取函数 Matlab

是否有用于从视频文件(avi/divx/xvid/mpeg)中剥离音频(mp3)的 API?