I just typed "VBRI header format" into Google, and found this (below).

It certainly is not "the official word", but it looks like more than enough to go forward with in the interim.

-ml



[MP3 ENCODER] FhG VBR header

Mathew Hendry [email protected]
Mon, 22 Jan 2001 13:01:13 -0000

> From: "Mathew Hendry" <[email protected]>
> Sent: Friday, January 19, 2001 11:20 AM
>
> Anyone know the format of the VBR header added by FhG coders? It isn't the
> same as the Xing tag - the only player/decoder I have that recognises it
is
> MusicMatch Jukebox.
>
> It's marked as a 160kbit/s stereo frame, and contains the string "VBRI" at
> offset 0x24.

I had a closer look at these tags over the weekend.

On all the files I looked at (30 or so) the header is set as 160kbit/s, stereo, even if the rest of the MP3 is joint stereo or other. I think that makes FhG's VBR encoder non-compliant.

Here's a breakdown of the frame structure - some stuff (marked ?) I'm not sure about.

0x0000 \
0x0001 |_______ MPEG header (160kbit/s, stereo)
0x0002 |
0x0003 /
0x0004 0x00 empty

...... .... ... .....

0x0023 0x00 empty
0x0024 0x56 'V'
0x0025 0x42 'B'
0x0026 0x52 'R'
0x0027 0x49 'I'
0x0028 0x00 ? version
0x0029 0x01 ? version
0x002a 0x09 ? version
0x002b 0x31 ? version
0x002c 0x00 ? quality (high byte)
0x002d quality (1-100)
0x002e \
0x002f |_______ file length in bytes
0x0030 |
0x0031 /
0x0032 \
0x0033 |_______ file length in frames
0x0034 |
0x0035 /
0x0036 \_______ number of seek offsets
0x0037 /
0x0038 0x00 ?
0x0039 0x01 ?
0x003a 0x00 ?
0x003b 0x02 ?
0x003c \_______ offset "stride" (number of frames between offsets)
0x003d /
0x003e \_______ seek offset 0 (from beginning of file)
0x003f /
0x0040 \_______ seek offset 1 (from previous offset)
0x0041 /

...... .... ... .....

0x0208 \_______ seek offset n (from previous offset)
0x0209 /


For smallish files, the seek offsets seem to be straightforward byte
offsets. For larger files it's using something different - not sure what yet.