Nouvelles d'hachoir-metadata
Par haypo, mercredi 4 avril 2007 à 01:08 :: Python :: #36 :: rss
hachoir-metadata est un programme permettant de lire les métadonnées d'un fichier : taille d'une image, auteur d'une vidéo, durée d'un son, etc. Il repose sur hachoir-parser pour lire les informations d'un fichier.
Traitements automatiques
hachoir-metadata réalise de plus en plus de traitements automatiques haut niveaux tels que :
- supprimer les espaces inutiles
- ignorer les chaînes de caractère vides
- filtrer les valeurs : ignore les valeurs abbérantes (ex: image ayant une largeur nulle)
- supprimer les doublons
La suppression des doublons ne concerne pas simplement les valeurs identiques. Pour les chaînes de caractère, hachoir-metadata est capable de reconnaître qu'une chaîne est le début d'une autre. Exemple : si on trouve les deux auteurs "James Brown" et "James Br" pour une chanson, seule la chaîne la plus longue est conservée (James Brown !).
Réutilisation des valeurs
L'extracteur de métadonnée est de plus en plus rigoureux : les valeurs doivent être d'un type précis. Par exemple, la durée d'une chanson est maintenant du type Python « timedelta ». Avant les dates, durées, débit en bit/sec, nombre de canaux audios étaient tantôt une chaîne de caractère, tantôt un entier, tantôt une date, ...
Le fait que le type des données soit strict a permis de faire des calculs sur les documents multimédias. On peut maintenant obtenir le débit en bits par seconde pour du son et de la vidéo, et le taux de compression pour une image et du son. Ceci permet de comparer la qualité d'un codec.
Option --quality
J'ai également ajouté l'option --quality permettant de choisir la « qualité » des métadonnées extraites. En fait, cette option détermine la vitesse d'extraction : les opérations lourdes ne seront faites que pour quality=1.0, alors que pour quality=0.0 toutes les opérations lentes sont ignorées. Cette option influe par exemple sur le calcul de la durée d'un MP3 à débit variable : pour un calcul exact, il faut lire le fichier en entier mais ceci est très long. L'option quality va donc faire varier le nombre de champs traités.
Exemples
Histoire de montrer les progrès récents, voici quelques exemples de sortie d'hachoir-metadata. J'ai légèrement tronqué les résultats (en particulier le type MIME et l'endian). J'ai également mis en gras les informations ajoutées ou reformatées.
Vidéo AVI (700 Mo)
- Duration: 1 hour 42 min 15 sec
- Bit rate: 946.2 Kbit/sec
- Producer: Nandub v1.0rc2
- Comment: Has audio/video index (5.8 MB)
- MIME type: video/x-msvideo
Video stream:
- Duration: 1 hour 42 min 15 sec
- Image width: 608
- Image height: 336
- Bits/pixel: 12
- Compression: XviD MPEG-4 (fourcc:"XVID")
- Frame rate: 25.0 fps
Audio stream:
- Duration: 1 hour 38 min 44 sec
- Channel: stereo
- Sample rate: 44.1 KHz
- Compression: MPEG Layer 3
- Bit rate: 133.2 Kbit/sec
Musique MP3 (3,1 Mo)
- Title: Ramon Perez
- Author: Les VRP
- Album: Retire les nains de tes poches
- Duration: 3 min 21 sec 717 ms
- Track number: 2
- Track total: 14
- Channel: Joint stereo
- Sample rate: 44.1 KHz
- Bits/sample: 16 bits
- Compression rate: 11.02x
- Bit rate: 128.0 Kbit/sec (constant)
- Format version: MPEG version 1 layer III
Photo JPEG (1,2 Mo)
- Title: OLYMPUS DIGITAL CAMERA
- Image width: 2816
- Image height: 2112
- Image orientation: Horizontal (normal)
- Bits/pixel: 24
- Pixel format: YCbCr
- Compression rate: 14.8x
- Creation date: 2005-07-16 20:51:50
- Camera model: uD600,S600
- Camera manufacturer: OLYMPUS IMAGING CORP.
- Compression: JPEG (Baseline)
- Producer: Version 1.0
- Comment: JPEG quality: 90% (approximate)
Son WAVE (1,8 Ko)
- Duration: 19 ms
- Channel: stereo
- Sample rate: 22.1 KHz
- Bits/sample: 16 bits
- Compression rate: 1.00x
- Creation date: 2001-02-21
- Compression: Microsoft Pulse Code Modulation (PCM)
- Bit rate: 705.6 Kbit/sec
- Producer: Sound Forge 4.5
Commentaires
1. Le samedi 28 juin 2008 à 21:55, par rencontre
2. Le dimanche 29 juin 2008 à 14:19, par haypo
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.