Détecter si le fichier est MP3
Je suis en train d'écrire une bibliothèque C++ pour le décodage et l'encodage de l'audio entre différents formats/codecs. J'ai une routine pour détecter rapidement la le format avant de charger le codec requis à la bibliothèque.
Pour les fichiers WAV un peut simple coup d'oeil pour les valeurs ASCII "RIFF" et "VAGUE" au début du fichier. La même chose s'applique pour FLAC, il suffit de lire les 4 premiers octets, qui sera "fLaC".
Mais comment puis-je détecter rapidement si un fichier MP3? Je ne peux pas compter sur l'extension de fichier. Je ne peux pas essayer de décoder le premier MP3 image, car il pourrait y avoir des données supplémentaires au début du fichier (par exemple: ID3, image de couverture, etc).
source d'informationauteur goocreations
Vous devez vous connecter pour publier un commentaire.
Détecter si un fichier est un fichier MP3 est plus compliqué que de chercher un motif fixe dans le fichier.
Some concepts
(Voir http://www.codeproject.com/Articles/8295/MPEG-Audio-Frame-Header pour plus de détails)
Algorithm to determine if a file is MP3 or not
Je viens de vérifier la signature comme dans les vagues et flac test.
Un fichier mp3 devrait l'avoir en hexadécimal:
0x49, 0x44, 0x33
Il fonctionne pour certains des fichiers que j'ai eu. Je ne suis pas sûr si cela fonctionne dans toutes les circonstances de plus en plus complexe de la solution comme le Chêne Octets de la réponse peut être nécessaire.