Определить, является ли файл файлом MP3?

Я пишу библиотеку С++ для декодирования и кодирования звука между разными форматами/кодеками. У меня есть процедура для быстрого определения формата перед загрузкой необходимой библиотеки кодеков.

Для файлов WAV можно просто найти значения ASCII «RIFF» и «WAVE» в начале файла. То же самое относится и к FLAC, мы можем просто прочитать первые 4 байта, которые будут «fLaC».

Но как я могу быстро определить, является ли файл MP3? Я не могу полагаться на расширение файла. Я также не могу попытаться декодировать первый кадр MP3, так как в начале файла могут быть дополнительные данные (, например :ID3, обложка и т. д. ).

13
задан Oak Bytes 13 June 2019 в 15:49
поделиться