IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Metadata de fichiers audio et vidéo


Sujet :

Python

  1. #1
    Membre éclairé Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 321
    Par défaut Metadata de fichiers audio et vidéo
    Bonjour à tous,

    Dans le cadre de mon appentissage de python, je me suis créé un petit défis. : Lister les métadata des fichiers video ou audio présent sur ma machine, puis les écrire dans un fichier Xml.

    Actuellement, j'arrive à faire un listing de tous ses fichiers en fonctions de leurs extensions (mp3, ogg, flac, mp4 mkv, etc....), a créer le fichier xml. Dans ce fichier, je mets le path du fichier audio ou video, le répertoire ou il se trouve ainsi que son nom.

    Par contre, je n'arrive pas à voir dans la documentation d'informations sur la lecture des métadata de ses fichiers.

    Connaissez vous une bibliothèque que je pourrais importer dans mon script qui me permettra de d'extraire ses données.

    Je vous remercie par avance.

    Bon week end à tous

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 760
    Par défaut
    Salut,

    Pourquoi ne pas faire une recherche sur Internet avec votre moteur favori? Une recherche avec les mots clefs "video metadata python3", "audio metadata python3" sortirait une liste de packages à prospecter.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 321
    Par défaut
    salut wiztricks

    J'avais bien effectué une telle démarche, mais ma question était plus axé sur un conseil par rapport à une librairie.

    Notre ami gogle me renvoie plein de réponse pour audio pour video, pour audio et vidéo. Idem pour le site Pipy.

    En fait je voulais plutot un conseil, sur une librairie, parce que bien faite, ou très partique a utiliser, à appréhender etc...

    Je m'excuse si mon post initial laissait entendre que je voulais que vous fassiez les démarches à ma place et d'avoir mon script clef en main.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 760
    Par défaut
    Salut,

    Citation Envoyé par FadeToBlack Voir le message
    En fait je voulais plutôt un conseil, sur une librairie, parce que bien faite, ou très partique a utiliser, à appréhender etc...
    "simple" et "pratique" sont des notions relatives à vos connaissances et à la compréhension que vous avez du problème à résoudre. En face, vous avez la documentation de la bibliothèque et à voir comment vous allez bien pouvoir l'utiliser pour vos besoins: c'est a ce moment là (et lors des premiers tests) que vous allez pouvoir dire"simple" et "pratique" (ou pas).

    Citation Envoyé par FadeToBlack Voir le message
    Je m'excuse si mon post initial laissait entendre que je voulais que vous fassiez les démarches à ma place et d'avoir mon script clef en main.
    Si le fan de la bibliothèque tarte-molle vous en vante les mérites, n'oubliez pas qu'il ne l'a peut être pas utilisée pour les mêmes besoins que vous. Ca va juste vous rassurez pour que vous osiez vous jeter à l'eau... mais après, c'est vous qui devrez nager.
    Voilà ce que je pense.... Mais vous pouvez attendre que les "fans" d'une bibliothèques vous fassent l'article du joujou qu'ils utilisent.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut
    Toujours besoin d'aide ?

  6. #6
    Membre éclairé Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 321
    Par défaut
    Pour tout te dire oui.

    Comme je le disais dans les autres posts, je cherchais une librairie d'extraction de meta données pour les fichiers vidéos, images et audio. J'ai trouvé Hachoir et PymediaInfo.

    J'ai eu quelques problèmes d'installations pour les deux, mais j'y suis arrivé. Par contre Hachoir3 assez difficile d'accès. J'ai opté pour PyMediaInfo. Je ne sais toujours pas si il en existe d'autres "bien" pour faire ce que je veux.

    Concernant mediaInfo, je me heurte à un petit problème.
    Lors que je parse mon fichier avec ma méthode mediainfo.parse(), je me retrouve avec une quantité astronomique de données. Ce qui est bien en théorie, mais en pratique assez difficile à gérer.

    Est-il possible dans la méthodes parse ou dans une autre (je n'ai rien vu dans la doc), de ne récupérer que certaines meta. Dans le cas présent "on" voudrait file_name, audio_codec, file_path, extension, duration, etc....

    Sous Php avec Exiftools, il est possible d'extraire les méta que l'on veut. Mais est-ce possible sous python avec MediaInfo ou tout autre librairie.

    Merci pour tes conseils.

    Bonne journée

  7. #7
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut,

    C'est tout de même pas sorcier, j'ai rapidos installé MediaInfo.
    https://pypi.python.org/pypi/MediaInfo/0.0.8

    Ensuite, bah on teste en mode intéractif, car cette bibliothèque est on ne peut plus simple à utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
    [GCC 4.9.1] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import mediainfo
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named 'mediainfo'
    >>> import MediaInfo
    >>> MediaInfo.
    MediaInfo.MediaInfo(         MediaInfo.__format__(        MediaInfo.__name__           MediaInfo.__spec__
    MediaInfo.__cached__         MediaInfo.__ge__(            MediaInfo.__ne__(            MediaInfo.__str__(
    MediaInfo.__class__(         MediaInfo.__getattribute__(  MediaInfo.__new__(           MediaInfo.__subclasshook__(
    MediaInfo.__delattr__(       MediaInfo.__gt__(            MediaInfo.__package__        MediaInfo.json
    MediaInfo.__dict__           MediaInfo.__hash__(          MediaInfo.__reduce__(        MediaInfo.os
    MediaInfo.__dir__(           MediaInfo.__init__(          MediaInfo.__reduce_ex__(     MediaInfo.re
    MediaInfo.__doc__            MediaInfo.__le__(            MediaInfo.__repr__(          MediaInfo.subprocess
    MediaInfo.__eq__(            MediaInfo.__loader__         MediaInfo.__setattr__(       MediaInfo.sys
    MediaInfo.__file__           MediaInfo.__lt__(            MediaInfo.__sizeof__(        
    >>> MediaInfo.MediaInfo('fichier_son.ogg')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: __init__() takes 1 positional argument but 2 were given
    >>> help(MediaInfo.MediaInfo)
     
    >>> MediaInfo.MediaInfo(filename='fichier_son.ogg')
    <MediaInfo.MediaInfo object at 0x7f5778a10b00>
    >>> m = MediaInfo.MediaInfo(filename='fichier_son.ogg')
    >>> m.
    m.__class__(               m.__gt__(                  m.__reduce_ex__(           m._mediainfoGetInfo(
    m.__delattr__(             m.__hash__(                m.__repr__(                m._mediainfoGetInfoRegex(
    m.__dict__                 m.__init__(                m.__setattr__(             m.cmd
    m.__dir__(                 m.__le__(                  m.__sizeof__(              m.filename
    m.__doc__                  m.__lt__(                  m.__str__(                 m.getInfo(
    m.__eq__(                  m.__module__               m.__subclasshook__(        m.info
    m.__format__(              m.__ne__(                  m.__weakref__              
    m.__ge__(                  m.__new__(                 m._ffmpegGetInfo(          
    m.__getattribute__(        m.__reduce__(              m._ffmpegGetInfoJson(      
    >>> m.filename
    'fichier_son.ogg'
    >>> m.info
    {}
    >>> m.info.
    m.info.__class__(         m.info.__getitem__(       m.info.__reduce__(        m.info.fromkeys(
    m.info.__contains__(      m.info.__gt__(            m.info.__reduce_ex__(     m.info.get(
    m.info.__delattr__(       m.info.__hash__           m.info.__repr__(          m.info.items(
    m.info.__delitem__(       m.info.__init__(          m.info.__setattr__(       m.info.keys(
    m.info.__dir__(           m.info.__iter__(          m.info.__setitem__(       m.info.pop(
    m.info.__doc__            m.info.__le__(            m.info.__sizeof__(        m.info.popitem(
    m.info.__eq__(            m.info.__len__(           m.info.__str__(           m.info.setdefault(
    m.info.__format__(        m.info.__lt__(            m.info.__subclasshook__(  m.info.update(
    m.info.__ge__(            m.info.__ne__(            m.info.clear(             m.info.values(
    m.info.__getattribute__(  m.info.__new__(           m.info.copy(              
    >>> m.info.items()
    dict_items([])
    >>> m.getInfo()
    {'audioChannel': '1', 'audioSamplingRate': '44100', 'bitrate': '455015', 'audioBitrate': '80000', 'container': 'OGG', 'fileSize': '3697', 'haveAudio': 1, 'audioDuration': '0.065', 'duration': '0.065', 'audioCodec': 'Vorbis'}
    >>> m.getInfo('duration')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: getInfo() takes 1 positional argument but 2 were given
    >>> m.getInfo.values('duration')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'function' object has no attribute 'values'
    >>> m.info
    {'audioChannel': '1', 'audioSamplingRate': '44100', 'bitrate': '455015', 'audioBitrate': '80000', 'container': 'OGG', 'fileSize': '3697', 'haveAudio': 1, 'audioDuration': '0.065', 'duration': '0.065', 'audioCodec': 'Vorbis'}
    >>> m.info['duration']
    '0.065'
    >>> m.info['container']
    'OGG'
    >>> m.getInfo()['bitrate']
    '455015'
    >>> print('Et voilà !')
    Et voilà !
    >>>
    J'admets que la bibliothèque n'a pas de docstring bien utile, et que c'est bien plus facile dans un terminal linux que dans une console windows (d'où l'intérêt d'installer un interpréteur plus élaboré sur windows), mais on arrive tout de même à se dépatouiller, même en faisant n'importe quoi comme j'ai pu le faire ici

  8. #8
    Membre éclairé Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 321
    Par défaut
    Ah la V.....

    Je n'ai pas encore le réflexe de passer par la console pour regarder les infos sur une librairie. je cherche souvent la doc sur internet.

    Mais dis moi, quelle est la différence entre MediaInfo et PyMediaInfo ? La seconde n'est pas spécifique à Python (Peut être là, dis-je une Co..... )

  9. #9
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par FadeToBlack Voir le message
    Mais dis moi, quelle est la différence entre MediaInfo et PyMediaInfo ?
    Aucune idée, j'ai uniquement chosit la 1ère occurence en cherchant mediainfo dans pypi, mais les 2 doivent vraisemblablement faire la même chose, reste à voir laquelle est la plus complète, la mieux documentée, la plus simple d'utilisation, etc.

    Et si tu en essaies plusieurs, tu pourrais toujours faire un petit contre-rendu de tout ce que tu as essayé en évoquant avantages et inconvénients, etc.

    Cela pourra toujours servir à d'autres ayant ce même besoin

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut MediaInfo & biblios auto-générées
    Citation Envoyé par FadeToBlack Voir le message
    Mais dis moi, quelle est la différence entre MediaInfo et PyMediaInfo ? La seconde n'est pas spécifique à Python (Peut être là, dis-je une Co..... )
    Pour l'utilisateur MI c'est un logiciel et pour le développeur aussi une bibliothèque. PyMI ça doit être un enième "wrapper" généré automatiquement souvent à partir de code source C/C++. Beaucoup des modules Python sont dans ce cas !
    Citation Envoyé par FadeToBlack Voir le message
    Je n'ai pas encore le réflexe de passer par la console pour regarder les infos sur une librairie. je cherche souvent la doc sur internet.
    C'est pas plus mal car un projet non documenté est souvent un gage de mauvaise qualité. Par contre dans le cas de biblios générées il faut parfois se référer à la doc originale. Cependant généralement le site du projet a une petite section doc avec des infos spécifiques comme par exemple un usage particulier ou des explications sur les conventions de nommage.

    Donc ton approche est pertinente mais savoir jouer avec la console est utile.

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut Biblios, PHPython & bon courage
    Citation Envoyé par FadeToBlack Voir le message
    Je ne sais toujours pas si il en existe d'autres "bien" pour faire ce que je veux.
    Je pense à ces bibliothèques même si elles ne sont pas axées métadonnées :
    • Audio : FMOD
    • Images : GD library et ImageMagick. Je crois cette dernière peut même gérer certaines vidéos ou alors je confonds avec de simples GIFs animées.
    • Multimédia/Vidéo : Les projets VLC et FFmpeg sont des mines d'or en la matière. Je penche particulièrement pour le second puisque beaucoup de logiciels reposent sur lui pour jouer des vidéos, les éditer… Hé j'ai failli oublier ce bon vieux VirtualDub avec lequel on peut bidouiller et qui doit bien reposer sur une biblio ! FFmpeg ? Hum…


    Citation Envoyé par FadeToBlack Voir le message
    Sous Php avec Exiftools, il est possible d'extraire les méta que l'on veut. Mais est-ce possible sous python avec MediaInfo ou tout autre librairie.
    Sous PHP tout le monde connait GD et il y a aussi un module pour ImageMagick. J'ai jamais essayé mais je suis persuadé qu'elles sont dispos en version Py !

    Si tu trouves pas ton bonheur je t'invite à apporter ta petite pierre à ce fabuleux édifice qu'est le logiciel libre. Certains projets ont même des sections dédiées pour les bouts de code source et autres contributions ! Parfois un simple message sur leur forum suffit pour avancer.

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut Comparatifs
    Citation Envoyé par bistouille Voir le message
    Et si tu en essaies plusieurs, tu pourrais toujours faire un petit contre-rendu de tout ce que tu as essayé en évoquant avantages et inconvénients, etc.
    Un compte-rendu ahah ! Bonne idée un comparatif pourrait être utile même si il en existe déjà plein. Je pense notamment à ceux de Wikipédia et peut-être même qu'on en trouve sur ce site. Après recherche malheureusement du côté de Wikimedia Commons aucun article dédié aux biblios mais par exemple Comparaison de lecteurs multimédia et Comparison of metadata editors. Ce dernier a seulement 2 mentions de "library" mais c'est toujours mieux que rien. À améliorer voire traduire surtout qu'un modérateur un peu rêveur a lancé un appel à contributions la dernière fois héhé !!

  13. #13
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Oui, mais là ça fait un peu trop de monde à tester

    Citation Envoyé par ohnomorejmmings Voir le message
    C'est pas plus mal car un projet non documenté est souvent un gage de mauvaise qualité.
    Je confirme, le code python de MediaInfo est assez crade, je dis pas que je pourrais faire mieux, quoique faudrait que je m'y intéresse avant d'infirmer, mais de toute façon c'est géré avec subprocess et des regex, donc c'est pas trop compliqué à faire.

Discussions similaires

  1. Besoin d'informations sur la vérification de fichiers (audio,vidéo..)
    Par zestu77 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 26/07/2017, 14h20
  2. script ou balise pour lire un fichier audio ou vidéo
    Par onesat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/03/2012, 16h50
  3. Réponses: 0
    Dernier message: 27/06/2011, 17h31
  4. [AudioVideo] Java et les fichiers audio-vidéo
    Par Mr-Mobou dans le forum Multimédia
    Réponses: 3
    Dernier message: 03/05/2008, 03h50
  5. Réponses: 2
    Dernier message: 09/05/2007, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo