Битрейт MP3 хранится в 3-м байте заголовка кадра, поэтому можно было бы выполнить поиск первого байта со значением 255 (теоретически не должно быть никаких других байтов со всеми битами, установленными в 1 до этого), и битрейт должен хранить два байта после этого. Следующий код делает это:
program Project1;
{$APPTYPE CONSOLE}
uses
Classes, SysUtils;
const
BIT_RATE_TABLE: array [0..15] of Integer =
(0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0);
var
B: Byte;
begin
with TFileStream.Create(ParamStr(1), fmOpenRead) do begin
try
Position := 0;
repeat
Read(B, 1);
until B = 255;
Position := Position + 1;
Read(B, 1);
Writeln(BIT_RATE_TABLE[B shr 4]);
finally
Free;
end;
end;
end.
Обратите внимание, что это находит только битрейт первого кадра.
Более подробную информацию можно найти по адресу здесь