mp3 - 如何读取 MP3 文件,将元数据与音频分离?

标签 mp3 binaryfiles file-format id3 lame

据我了解,MP3文件格式本质上由两部分组成,id3元数据+音频帧。如何以二进制形式读取所有 id3 段和所有音频帧作为两个二进制 blob?我希望简单地对元数据和音频作为文件中的两个单独的单元执行哈希计算。如何确定“分割点”在文件中的位置?

最佳答案

来自 ID3 标签规范:

+-----------------------------+
|      Header (10 bytes)      |
+-----------------------------+
|       Extended Header       |
| (variable length, OPTIONAL) |
+-----------------------------+
|   Frames (variable length)  |
+-----------------------------+
|           Padding           |
| (variable length, OPTIONAL) |
+-----------------------------+
| Footer (10 bytes, OPTIONAL) |
+-----------------------------+

请注意,有多个 ID3 标签版本。

规范:http://www.id3.org/id3v2.4.0-structure

关于mp3 - 如何读取 MP3 文件,将元数据与音频分离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916095/

相关文章:

c - 关于在 C 中使用 LAME 的问题

c++ - 二进制文件处理程序未写入最后一个值

xcode - 哪种文件是有效的Xcode行为脚本?

c++ - 理解这段代码(将十六进制直接写入文件-midi)

Java 播放 mp3 和 ogg

php - 将 mp3 文件合并为一个,然后使用 php 保存在一个文件夹中

php - 从 php 运行 lame

ios - 使用 Expo 构建二进制文件是否会压缩应用程序的大小?

python - 定义二进制文件字符串的类型

c# - 读取 MNIST 数据库