ID3 tag version 2.4.0 - Main Structure (和訳)

Last-modified: 2007-02-09 (金) 17:25:10

#analyzer
原文
ID3v2とはMP3固有のものではありません。
ここではID3v2のメインドキュメントを和訳しています。

  • 要約
    ID3v2タグはヘッダとフレーム集合とフッターで構成されています。
    ヘッダとフッターに関してはユーザにとって興味の対象ではないでしょう。
    MP3でよく話題になるタグとはアルバム名やタイトル名といったテキストメタデータです。
    これらは全てフレーム集合の中に1つのフレームとして格納されています。

Table of contents


Standard overview

ID3v2 overview

ID3v2とはオーディオのための一般的なタギング(tagging)フォーマットです。
オーディオファイルにそのオーディオ自身のメタデータを格納するためのフォーマットです。
このドキュメントで記述されているID3タグはMPEG-1/2-I, MPEG-1/2-II, MPEG-1/2-III, MPEG-2.5
でエンコードされたオーディオファイルを対象としています。
他のタイプのファイルでも動作するかもしれません。
オーディオメタデータのためのスタンドアローンなフォーマットです。

 

ID3v2はできる限り柔軟で拡張性のあるように設計されているため新たなメタデータ情報に出会うでしょう。
To achieve that ID3v2 is constructed as a container for several information blocks, called frames, whose format need not be known to the software that encounters them.
全てのフレームの先頭はユニーク且つ定義済みの識別子で、unknownフレームやフラグフィールドをスキップできるようにサイズデスクリプタがある。
the flags describes encoding details and if the frame should remain in the tag, should it be unknown to the software, if the file is altered.

 

ID3v2のビットオーダはMSBです。
バイトオーダはビッグエンディアンです(e.g. 0x12345678 would be encoded 0x12 0x34 0x56 0x78)

 
  • タグ構造の全体
    Header (10 bytes)
    Extended Header (variable length, OPTIONAL)
    Frames (variable length)
    Padding (variable length, OPTIONAL)
    Footer (10 bytes, OPTIONAL)

ID3v2 header

ID3v2タグの最初のパートは10バイトのタグヘッダです。
下のような配置になっています。

ID3v2/file identifier              "ID3"
ID3v2 version                      $04 00
ID3v2 flags                        %abcd0000
ID3v2 size                         4 * %0xxxxxxx

最初の3バイトは常に"ID3"にすることで、ID3v2タグであるということが識別できます。
バージョンの先頭1バイトはメジャーバージョンで2バイト目はリビジョンナンバです。
バージョンまたはリビジョンは $FF であってはいけません。

 

フラグには現在4つのフラグが利用されています。

  • a - Unsynchronisation
    ビット7。すべてのフレームに unsynchronisation が適用されているかどうか。
  • b - Extended header
    ビット6。Header の次に Extended Header が存在するかどうか。
  • c - Experimental indicator
    ビット5。タグが実験段階での実装であればセットされます。
  • d - Footer present
    ビット4。タグの最後に Footer が存在するかどうか

上のフラグ以外のビットは全てクリアされてないといけません。

 

タグサイズは32ビット synchsafe integer が格納されます。
The ID3v2 tag size is stored as a 32 bit synchsafe integer, making a total of 28 effective bits (representing up to 256MB)

 

タグサイズは unsynchronisation 後の Extended header, padding, frames のバイト長の合計です。
If a footer is present this equals to ('total size' - 20) bytes, otherwise ('total size' - 10) bytes

 

ID3v2タグは次のパターンとして検出可能です:

$49 44 33 yy yy xx zz zz zz zz

yyは$FF未満です。
xxはフラグバイトです。
zzは0x80未満です。

ID3v2 frames overview

Tag location

Unsynchronisation