FLAC-Metadatenblock STREAMINFO
folgende Informationen stammen aus: https://xiph.org/flac/format.html#metadata_block_streaminfoAufbau:
Bits | Bytes | Inhalt |
<16> | 2 | minimale Blockgröße (in samples) |
<16> | 2 | maximale Blockgröße (in samples) |
<24> | 3 | minimale Framegröße (in Bytes) |
<24> | 3 | maximale Framegröße (in Bytes) |
<20> | 8 | Samplerate in Hz (das ganze 11. und 12. Byte und die ersten 4 Bits vom 13. Byte) |
<3> | Anzahl der Kanäle (bit3, bit2 und bit1 vom 13. Byte) | |
<5> | Bits pro sample (bit0 vom 13. Byte und die höherwertigen 4 bits vom 14. Byte) | |
<36> | Anzahl aller samples in der Datei (die 4 niederwertigen Bits vom 14. Byte und weitere 4 Bytes) | |
<128> | 16 | MD5-Signatur der Audiodatei. (zur Fehlererkennung) |
STREAMINFO besteht also immer aus 34 Bytes!
In diesem Block gibt es 2 Angaben, mit deren Hilfe man die Spieldauer bestimmen kann. Aus der GesamtSampleAnzahl G und der SampeRate S kann man die Spieldauer in Sekunden bestimmen: G / S
An dem eingangs beschriebenen Beispiel möchte ich dies veranschaulichen:
00 -- 102 076 097 067 000 000 000 034 016 000
10 -- 016 000 000 000 014 000 029 007 010 196
20 -- 066 240 000 109 140 216 146 175 002 137
30 -- 189 140 244 218 061 178 151 168 152 117
40 -- 159 025 003 000 001 050 000 000 000 000
50 -- 000 000 000 000 000 000 000 000 000 000
Der 1. Header lautet: 0 0 0 34 --> (siehe FLAC-Startseite) Typ: STREAMINFO mit 34 Bytes
Die Samplerate steckt in den Bytewerten 10 (alle 8 Bits), 196 (alle 8 Bits) und die höherwertigen 4 Bits vom Wert 66:
Die 3 Werte dual und in Folge: 0000 1010 1100 0100 0100 0010
Die Samplerate S steckt in den ersten 20 Bits: 0000 1010 ; 1100 0100 0100
S = 10·4096 + 196·16 + 4 = 44100
Die GesamtSampleAnzahl G in Bytes erhält man aus den niederwertigen 4 Bits von 240 und allen Bits der Werte 000, 109, 140 und 216
240 also Dualzahl geschrieben: 1111 0000 ... die 4 niederwertigen Bits sind 0000 und das ergibt 0
Hochzahlen schreibe ich mit: ^ ... 2 hoch 3 = 2^3
G = 0·256^4 + 0·256^3 + 109·256^2 + 140·256 + 216 = 7179480 ... etwa 7,2 MB
Die Spieldauer in Sekunden ist also 7179480 / 44100 = 162,8 ... 2 Minuten 42,8 Sekunden.
zurück zur FLAC-Startseite