ID3
MP3
英文描述 | 中文描述 | 标志 |
---|---|---|
Album/Movie/Show title | 专辑/电影/节目标题 | TALB |
Lead performer(s)/Soloist(s) | 指挥, 主唱 | TPE1 |
User defined text information frame | 自订文字 | TXXX |
Part of a set | Part of a set | TPOS |
Title/songname/content description | 标题 | TIT2 |
Track number/Position in set | 曲目 | TRCK |
Attached picture | 封面 | APIC |
Year | 年分 | TYER |
Content type | 内容类型 | TCON |
Copyright message | 版权信息 | TCOP |
Comments | 评论 | COMM |
User defined URL link frame | 自定义URL | WXXX |
Encoded by | 编码者 | TENC |
Beats per minute (BPM) | 量度音乐速度 | TBPM |
Vorbis
flac
ogg
组成: tag + streamInfo + other block
tag: 4字节, fLaC
注意字节与bit之间的转换关系. Buffer中是字节, 一个16进制的两位数, 转换成8位2进制的数
metadata block:
- Header包含内容:
描述 | 长度(bit) |
---|---|
last, 表示是否是最后一个 | 1 bit |
type 0: StreamInfo 1: Padding 2: Application 3: SeekTable 4: VorbisComment 5: CueSheet 6: Picture 7-126: Reserved 127: Error | 7 bit |
block size: 本块的大小 | 24 bit (3 bytes) |
- StreamInfo
描述 | 长度 |
---|---|
minBlockSize | 16 (2) |
maxBlockSize | 16 (2) |
minFrameSize | 24 (3) |
maxFrameSize | 24 (3) |
sampleRate (Hz) | 20 bit |
channel - 1(声道数减一) | 3 bit |
sampleBit - 1(采样位数(?)减一) | 5 bit |
totalSample 一个声道的采样总数 | 36 bit |
md5 | 128 bit (16 bytes) |
-
padding
这个只是用来对齐, 没用任何内容, 长度是8的倍数(bytes)
-
Application
描述 大小 应用程序id 32 (4) 应用程序数据 N (8的倍数, 从header中获取到的size减去4) -
SeekTable
注意, 这里面有多个SeekPoint
描述 (SeekPoint内的数据) | 大小 |
---|---|
目标帧中第一个sample的序号 | 64 (8) |
相对于第一帧的偏移 | 64 (8) |
目标帧的采样数 | 16 (2) |
-
Vorbis Comment
含有的注释, 这个只能是获取string, 因为内部的信息不是统一的(大概率是utf-8)
这里面含有一些专辑, 歌曲名, 歌手等信息, 需要通过字符串匹配或者其他手段去解析
-
CueSheet
不想写这个, 没多大用
-
Picture
描述 | 大小 |
---|---|
类型(同id3) | 32 (4) |
mime的长度 | 32 (4) |
mime | N |
描述的长度 | 32 (4) |
描述 utf-8 | N |
宽度 可能不写 | 32 (4) |
高度 | 32 (4) |
颜色深度 | 32 (4) |
索引图使用的颜色数目 | 32 (4) |
数据长度 | 32 (4) |
图片数据 | N |