Piszę bibliotekę C++ do dekodowania i kodowania dźwięku pomiędzy różnymi formatami/kodekami. Mam procedurę pozwalającą szybko wykryć format przed załadowaniem wymaganej biblioteki kodeków.Wykryj, czy plik jest MP3
Dla WAV pliki można jeden prosty wygląd Wartości ASCII „RIFF” i „fali” na początku pliku. To samo dotyczy FLAC, możemy po prostu przeczytać w pierwszych 4 bajtach, które będą "fLaC".
Ale jak mogę szybko wykryć, czy plik jest MP3? Nie mogę polegać na rozszerzeniu pliku. Nie mogę również próbować dekodować pierwszej ramki MP3, ponieważ na początku pliku mogą istnieć dodatkowe dane (np. ID3, obraz okładki itp.).
Sekwencja bajt proponujesz ('' d' I' '3') jest częścią nagłówka dla ID3 (v2) metadane tag ale nie wszystkie pliki MP3 będą mieć tagów ID3v2 (oraz tag ID3v2.4 mógłby być na końcu pliku, a nie na początku). – Deltics