Je connais de nombreux utilitaires qui peuvent me dire le débit d'un fichier MP3, mais je n'ai jamais vu un qui peut me dire si le fichier MP3 est VBR (débit binaire variable - le débit binaire fluctue dans le fichier) ou un CBR (débit binaire constant - le débit reste le même dans le fichier). Je suppose que la plupart des programmes ne sont pas intéressés à trouver cela car il s'agit d'analyser le fichier un peu pour voir si le débit change, ce qui enlève de la vitesse. Donc, au lieu de trouver un utilitaire, j'aimerais en écrire un - comment puis-je déterminer par programme si un fichier MP3 est VBR ou CBR? J'ai environ 15 000 fichiers à parcourir pour trouver cela, donc j'ai besoin d'automatiser le processus.Comment puis-je déterminer par programme si un fichier MP3 est CBR ou VBR? (De préférence en utilisant C#)
Répondre
fichiers MP3 sont essentiellement construire des soi-disant cadres. Chaque cadre a un petit en-tête qui stocke des informations sur le cadre. L'en-tête stocke également quel bitrate a été utilisé pour l'image. Dans les fichiers CBR, tous les trames utilisent le même débit et donc chaque en-tête a les mêmes informations de débit.
Pour détecter si un fichier utilise VBR, vous devez parcourir chaque image du fichier, regarder l'en-tête et vérifier si le champ de débit binaire change. Si c'est le cas, c'est un VBR MP3.
Une description complète du format MP3 est ici: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm
Cocher cette MP3Header Class, il a une méthode qui vous indique si le fichier mp3 est VBR, et toutes les informations d'en-tête mp3 ...
...
boolVBitRate = LoadVBRHeader(bytVBitRate);
...
- 1. Comment déterminer par programme comment un DVD ou un disque dur est connecté - Maître ou Esclave?
- 2. Identifiez si un fichier (dll/exe) est verrouillé ou non par un processus ou une bibliothèque
- 3. Comment déterminer si radioButton.Checked est défini par programmation ou par un clic de souris?
- 4. Déterminer si un pathspec est un répertoire ou un fichier (ou quelque chose d'autre) via WMI?
- 5. Comment déterminer si un DIB est ascendant ou descendant?
- 6. Comment déterminer si un fichier est en ROM dans Windows Mobile?
- 7. Déterminer si une date est un samedi ou un dimanche en utilisant JavaScript
- 8. Comment déterminer si un événement est terminé en utilisant une API tierce - C#?
- 9. Comment vérifier par programme si le téléphone mobile est en cours de charge ou s'il est en cours de chargement?
- 10. Détermination avec C# Si un fichier de sauvegarde SQL est protégé par mot de passe
- 11. Comment SCP un fichier par programmation en utilisant C
- 12. programme est de déterminer si la fenêtre active dans .NET
- 13. Comment déterminer si un fichier est chiffré avec EFS?
- 14. Comment vérifier si le fichier est ASCII ou binaire en C++
- 15. Déterminer si un fichier peut être déplacé ou copié
- 16. C# comment déterminer si un smartphone est un appareil standard ou professionnel?
- 17. Comment puis-je tester par programme si un chemin/fichier est un raccourci?
- 18. Comment déterminer si un assemblage est en cours d'utilisation?
- 19. déterminer si le module python est installé ou en mode développement par programmation
- 20. Comment vérifier si le fichier tlb est enregistré dans le registre en utilisant C++?
- 21. Oracle 9i: Comment déterminer, à l'aide de métadonnées, si un index est en cluster ou non?
- 22. C# Comment déterminer si HTTPS
- 23. Comment puis-je déterminer si quelque chose est un tableau ou un objet en PHP?
- 24. Comment déterminer si une police TrueType est en italique?
- 25. Comment vérifier si un processus est en cours d'exécution en utilisant Delphi?
- 26. Déterminer par programme si un VOB donné est monté dans ClearCase
- 27. Comment déterminer si un caractère est une lettre en Java?
- 28. Comment déterminer par programme la racine du document en PHP?
- 29. Comment restaurer un fichier en utilisant C#?
- 30. comment écrire dans un fichier texte par programme C
La méthode de cette classe utilise pour déterminer si son fichier VBR est assez limité. Il vérifie simplement s'il trouve la chaîne "Xing" après l'en-tête ID3v2 (facultatif) du fichier, mais ceci n'est décrit par aucune norme et il y a des encodeurs qui ne mettent pas "Xing" dedans même s'il s'agit d'un fichier VBR . –