アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

ID3v2 フレーム ヘッダ

March 14, 2011MP3

フレームは、ID3v2 のタグ情報におけるデータ本体となる。フレームはヘッダと本体で構成されている。

ヘッダー構造

ヘッダの内容は以下のようになる。

フレーム ID はデータの識別子となる AZ0 ~ @ で構成される文字列である。XYZ ではじまる ID は ID3v2 ヘッダで実験中フラグが無効でも常に実験用となる。

サイズはヘッダ部分を除く、フレームのバイト数となる。ヘッダは v2.2 なら 6、v2.3 ~ 2.4 なら 10 バイトなので、フレーム全体からこれを差し引いた大きさとなる。フレームが圧縮・暗号・非同期化されている場合は、それらを処理した後のサイズとなる。フラグの内容によってはヘッダの後に付加情報が追加される。

v2.2

Byte 内容
0 フレーム ID
1 *
2 *
3 サイズ
4 *
5 *
6 未使用
7 *
8 *
9 *

v2.3

Byte 内容
0 フレーム ID
1 *
2 *
3 *
4 サイズ
5 *
6 *
7 *
8 状態フラグ
9 *
10 圧縮前のサイズ
11 *
12 *
13 *
14 暗号方法
15 グループ

v2.4

Byte 内容
0 フレーム ID
1 *
2 *
3 *
4 サイズ
5 *
6 *
7 *
8 状態フラグ
9 *
10 グループ
11 暗号方法
12 データ長指定子
13 *
14 *
15 *

フラグ

フラグは v2.3 から追加された仕様で 2 byte の値。1 byte 目が状態フラグ、2 byte 目は v2.3 ならエンコード フラグ、v2.4 はフォーマット フラグとして定義される。

状態フラグ

ビット配置は v2.3 なら %abc00000、v2.4 は %0abc0000 となる。

フラグ 内容
a タグ変更による削除。0 = 何もしない、1 = タグが変更されたとき、現在のフレームを削除する。
b ファイル変更による削除。0 = 何もしない、1 = ファイル (タグ以外の領域) が変更されたとき現在のフレームを削除する。
c 読み取り専用。0 = フレーム編集可能、1 = 読み取り専用。

エンコード フラグ

v2.3 の エンコード フラグ。ビット配置は %ijk00000

フラグ 内容
i 圧縮。0 = 圧縮なし、1 フレームが圧縮されておりヘッダー末尾に元のサイズ (4 byte) が指定されている。
j 暗号化。0 = 暗号化なし、1 フレームが暗号化されておりヘッダー末尾にその方法 (1 byte) が指定されている。
k グループ化。0 = グループ情報なし、1 = グループ化されておりヘッダーの末尾に識別子 (1 byte) が指定されている。

フォーマット フラグ

v2.4 の フォーマット フラグの内容は以下。ビット配置は %0h00kmnp

フラグ 内容
h グループ化。0 = グループ情報なし、1 = グループ化されておりヘッダーの末尾に識別子 (1 バイト) が指定されている。
k 圧縮。0 = 圧縮なし、1 = フレームが圧縮されておりヘッダー末尾に元のサイズ (4 バイト) が指定されている。
m 暗号化。0 = 暗号化なし、1 = フレームが暗号化されておりヘッダー末尾にその方法 (1 バイト) が指定されている。
n 非同期化。0 = 非同期化なし、1 = フレームが非同期化されている。
p データ長指定子。0 = データ長指定子なし、1 = データ長指定子がヘッダ ー(フレーム?) 末尾に指定されている。