la durée d'un fichier mp3
Quelle est la façon la plus simple de déterminer la durée (en secondes) d'un fichier mp3, sans aide de l'extérieur des bibliothèques? (source python très apprécié)
source d'informationauteur Silver Dragon
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser pymad. C'est une bibliothèque externe, mais ne tombez pas dans le Pas Inventé Ici piège. Aucune raison particulière pour laquelle vous ne voulez pas de bibliothèques externes?
Repéré ici.
--
Si vraiment vous ne voulez pas utiliser une bibliothèque externe, jetez un oeil ici et découvrez comment il l'a fait. Avertissement: c'est compliqué.
Pour google adeptes de l'amour, voici quelques libs externes:
mpg321 -t
ffmpeg -i
midentify (mplayer) voir En utilisant mplayer pour déterminer la longueur du fichier audio/vidéo
mencoder (pass invalide, params, il va cracher un message d'erreur, mais aussi vous donner des informations sur le fichier en question, ex $ mencoder inputfile.mp3 -o faux)
mediainfo programme http://mediainfo.sourceforge.net/en
exiftool
linux "fichier" commande
mp3info
sox
refs:
https://superuser.com/questions/36871/linux-command-line-utility-to-determine-mp3-bitrate
http://www.ruby-forum.com/topic/139468
mp3 durée en millisecondes
(ce qui en fait un wiki pour en ajouter d'autres).
et libs: .net: naudio, java: jlayer, c: libmad
Cheers!
simplement utiliser
mutagen
l'utiliser en python shell:
Aussi jeter un oeil à audioread (certaines distributions linux dont ubuntu ont des paquets), https://github.com/sampsyo/audioread
Vous pouvez compter le nombre d'images dans le fichier. Chaque image a un code de départ, bien que je ne peux pas se rappeler la valeur exacte du début de code et je n'ai pas de MPEG specs autour de la pose. Chaque image a une certaine longueur, environ 40ms pour MPEG1 layer II.
Cette méthode fonctionne pour CBR-fichiers (Constant Bit rate), comment VBR-files est une histoire complètement différente.
À partir du document ci-dessous:
Pour la Couche I fichiers nous de cette formule:
FrameLengthInBytes = (12 * Débit Binaire /Une Fréquence D'Échantillonnage + Remplissage) * 4
Pour la Couche II & III fichiers, utilisez cette formule:
FrameLengthInBytes = 144 * Débit Binaire /Une Fréquence D'Échantillonnage + Rembourrage
Informations sur MPEG Audio en-Tête de Trame