Musikdaten bei Audiofiles mit der Erweiterung mp3
Informationen dazu findet man bei: https://de.wikipedia.org/wiki/MP3#Frame-DatenJeder Musikabschnitt (hier Musik-Frame) besitzt wieder einen Kopf mit den technischen Angaben zur Musikübertragung.
Uns interessiert hier aber nur die Bitrate, weil man mit ihrer Hilfe die Spieldauer des mp3-Files bestimmen kann.
Die Bytenummer des Anfanges des ersten Musik-Frames erhält man aus der Metadatengröße.
Siehe vordere Metadaten!
Hier sollen nur die Byteinhalte besprochen werden, mit deren Werten wir die Bitrate bestimmen können!
Musik-Frame-Header (mit Bytes und Bitdarstellung)
Byte 1 | Byte 2 | Byte 3 | Byte 4 |
11111111 | 111aabbc | dddd---- | -------- |
Sync | aa=ID bb=Layer c=Pr | dddd=Bitrate-Kennnummer ( .... Rest siehe obige Quelle) |
Byte | Belegung | Informationen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | 1111 1111 | Der Inhalt muss 255 sein! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | 111a abbc | in aa wird die MPEG-Version angegeben: aa = ... 0 = MPEG Version 2.5 1 = reserviert 2 = MPEG Version 2 3 = MPEG Version 1 wie erhält man aa aus dem 2. Byte? - Das 2. Byte habe den Wert w aa = ( w & 24 ) / 8 ... 24 ist dual 0001 1000; & steht für die bitweise UND-Operation; mit "/ 8" schiebt man die beiden Bits ganz nach rechts und erhält so eine Zahl von 0 bis 3 je einschl. mit bb wird die Layer-Nr. angegeben: bb = ... 0 -> reserviert 1 -> Layer III 2 -> Layer II 3 -> Layer I bb = (w & 6 ) / 2 ... 6 ist dual 0000 0110; man erhält also mit & den Wert 0000 0bb0; "/ 2" erzeugt dann den Wert 0 bis 3 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | dddd xxxx | das 3. Byte habe den Wert v mit dddd wird eine Bitraten-Kennnummer angegeben: Mit ihrer Hilfe kann man in einer Tabelle (s.u.) mittels MPEG-Version und Layernummer die Bitrate ermitteln dddd = (v & 240 ) / 16 ... 240 ist dual 1111 0000; man erhält also mit & den Wert dddd 0000; "/ 16" erzeugt dann den Wert 0 bis 15 Tabelle Bitraten (Angaben in kbps -> KiloBit pro Sekunde)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | xxxx xxxx | für uns nicht relevant |
Ein Beispiel zur Bestimmung der Bitrate
zurück zur mp3-Startseite