mediainfo : Lire les métadonnées des fichiers multimédia
Table des matières
MediaInfo est un utilitaire qui permet d'extraire et d'afficher des informations techniques et des métadonnées sur des fichiers multimédias. Il prend en charge une large gamme de formats audio et vidéo, et fournit des détails tels que le codec, le débit binaire, la durée, la résolution, les pistes audio et vidéo, ainsi que les sous-titres.
Alors que des outils tels que ffmpeg peuvent afficher ces informations, mediainfo les affiche de façon lisible.
On pourra ensuite utiliser awk ou d'autres outils dans nos scripts pour récupérer les informations qui nous intéressent.
Mediainfo n'est pas installé par défaut sous Linux. Il suffit d'installer le paquet du même nom :
Pour Fedora, RHEL et dérivées (Nécessite EPEL) :
Pour Debian, Ubuntu et dérivées :
Pour Gentoo et dérivées :
Il existe une interface graphique, il suffit d'installer mediainfo-gui !
mediainfo fonctionne en ligne de commande avec la commande portant le même nom.
Exemple permettant d'afficher les métadonnées d'un fichier audio :
Ce qui retourne pour le morceau Oxygen 4 de Jean-Michel Jarre un résultat très verbeux :
On a énormément d'informations sur le fichier en général, ses TAG, et les informations techniques audio (Format, Codec, Durée, bitrate, fréquence) ainsi que sur la vignette intégrée.
Voici ce que cela retourne sur un enregistrement vidéo :
On pourra avoir encore plus d'informations avec l'option -f :
Je vous passe la sortie générée, car c'est vraiment énorme.
On pourra générer une sortie en XML si on souhaite traiter ces infos avec une application :
Ce qui donne toujours pour le même fichier :
Introduction
MediaInfo est un utilitaire qui permet d'extraire et d'afficher des informations techniques et des métadonnées sur des fichiers multimédias. Il prend en charge une large gamme de formats audio et vidéo, et fournit des détails tels que le codec, le débit binaire, la durée, la résolution, les pistes audio et vidéo, ainsi que les sous-titres.
Alors que des outils tels que ffmpeg peuvent afficher ces informations, mediainfo les affiche de façon lisible.
On pourra ensuite utiliser awk ou d'autres outils dans nos scripts pour récupérer les informations qui nous intéressent.
Installation
Mediainfo n'est pas installé par défaut sous Linux. Il suffit d'installer le paquet du même nom :
Pour Fedora, RHEL et dérivées (Nécessite EPEL) :
Code BASH :
dnf install mediainfo
Pour Debian, Ubuntu et dérivées :
Code BASH :
apt install mediainfo
Pour Gentoo et dérivées :
Code BASH :
emerge -av media-video/mediainfo
Il existe une interface graphique, il suffit d'installer mediainfo-gui !
Utilisation
mediainfo fonctionne en ligne de commande avec la commande portant le même nom.
Exemple permettant d'afficher les métadonnées d'un fichier audio :
Code BASH :
mediainfo monfichier.mp3
Ce qui retourne pour le morceau Oxygen 4 de Jean-Michel Jarre un résultat très verbeux :
Code TEXT :
General Complete name : 04_oxygene_part_4.mp3 Format : MPEG Audio File size : 10.1 MiB Duration : 4 min 6 s Overall bit rate : 320 kb/s Album : Oxygene Album/Performer : Jean-Michel Jarre Part/Position : 1 Part/Total : 1 Track name : Oxygene Part 4 Track name/Position : 04 Track name/Total : 06 Performer : Jean-Michel Jarre Composer : Jean-Michel Jarre Publisher : Sony Music Genre : Electronic Recorded date : 1976 Writing library : LAME3.99 Cover : Yes Cover type : Cover (front) Cover MIME : image/jpeg Comment : Audio Format : MPEG Audio Format version : Version 1 Format profile : Layer 3 Format settings : Joint stereo Duration : 4 min 6 s Bit rate mode : Constant Bit rate : 320 kb/s Channel(s) : 2 channels Sampling rate : 44.1 kHz Frame rate : 38.281 FPS (1152 SPF) Compression mode : Lossy Stream size : 9.42 MiB (94%) Writing library : LAME3.99 Encoding settings : -m j -V 4 -q 3 -lowpass 20.5 Image Format : JPEG Width : 1 000 pixels Height : 1 000 pixels Color space : YUV Chroma subsampling : 4:4:4 Bit depth : 8 bits Compression mode : Lossy Stream size : 654 KiB (6%)
On a énormément d'informations sur le fichier en général, ses TAG, et les informations techniques audio (Format, Codec, Durée, bitrate, fréquence) ainsi que sur la vignette intégrée.
Voici ce que cela retourne sur un enregistrement vidéo :
Code TEXT :
General ID : 1 (0x1) Complete name : enregistrement-livestream-twitch.mp4 Format : MPEG-TS File size : 5.08 GiB Duration : 4 h 4 min Overall bit rate mode : Variable Overall bit rate : 2 973 kb/s FileExtension_Invalid : ts m2t m2s m4t m4s tmf ts tp trp ty Video ID : 256 (0x100) Menu ID : 1 (0x1) Format : AVC Format/Info : Advanced Video Codec Format profile : Main@L4 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, Reference frames : 4 frames Codec ID : 27 Duration : 4 h 4 min Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Variable Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 Audio ID : 257 (0x101) Menu ID : 1 (0x1) Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Format version : Version 4 Muxing mode : ADTS Codec ID : 15-2 Duration : 4 h 4 min Bit rate mode : Variable Channel(s) : 2 channels Channel layout : L R Sampling rate : 44.1 kHz Frame rate : 43.066 FPS (1024 SPF) Compression mode : Lossy Menu ID : 4096 (0x1000) Menu ID : 1 (0x1) Format : AVC / AAC Duration : 4 h 4 min List : 256 (0x100) (AVC) / 257 (0x101) (AAC) Service name : Service01 Service provider : FFmpeg Service type : digital television
On pourra avoir encore plus d'informations avec l'option -f :
Code BASH :
mediainfo -f monfichier.mp3
Je vous passe la sortie générée, car c'est vraiment énorme.
On pourra générer une sortie en XML si on souhaite traiter ces infos avec une application :
Code BASH :
mediainfo --output=XML monfichier.mp3
Ce qui donne toujours pour le même fichier :
Code XML :
<?xml version="1.0" encoding="UTF-8"?> <MediaInfo xmlns="https://mediaarea.net/mediainfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://mediaarea.net/mediainfo https://mediaarea.net/mediainfo/mediainfo_2_0.xsd" version="2.0"> <creatingLibrary version="24.04" url="https://mediaarea.net/MediaInfo">MediaInfoLib</creatingLibrary> <media ref="04_oxygene_part_4.mp3"> <track type="General"> <AudioCount>1</AudioCount> <ImageCount>1</ImageCount> <FileExtension>mp3</FileExtension> <Format>MPEG Audio</Format> <FileSize>10551093</FileSize> <Duration>246.935</Duration> <OverallBitRate>320000</OverallBitRate> <StreamSize>672629</StreamSize> <Title>Oxygene Part 4</Title> <Album>Oxygene</Album> <Album_Performer>Jean-Michel Jarre</Album_Performer> <Part_Position>1</Part_Position> <Part_Position_Total>1</Part_Position_Total> <Track>Oxygene Part 4</Track> <Track_Position>04</Track_Position> <Track_Position_Total>06</Track_Position_Total> <Performer>Jean-Michel Jarre</Performer> <Composer>Jean-Michel Jarre</Composer> <Publisher>Sony Music</Publisher> <Genre>Electronic</Genre> <Recorded_Date>1976</Recorded_Date> <File_Modified_Date>2024-11-05 06:57:10 UTC</File_Modified_Date> <File_Modified_Date_Local>2024-11-05 07:57:10</File_Modified_Date_Local> <Encoded_Library>LAME3.99 </Encoded_Library> <Cover>Yes</Cover> <Cover_Type>Cover (front)</Cover_Type> <Cover_Mime>image/jpeg</Cover_Mime> <Comment></Comment> </track> <track type="Audio"> <Format>MPEG Audio</Format> <Format_Version>1</Format_Version> <Format_Profile>Layer 3</Format_Profile> <Format_Settings_Mode>Joint stereo</Format_Settings_Mode> <Duration>246.936</Duration> <BitRate_Mode>CBR</BitRate_Mode> <BitRate>320000</BitRate> <Channels>2</Channels> <SamplesPerFrame>1152</SamplesPerFrame> <SamplingRate>44100</SamplingRate> <SamplingCount>10889856</SamplingCount> <FrameRate>38.281</FrameRate> <FrameCount>9453</FrameCount> <Compression_Mode>Lossy</Compression_Mode> <StreamSize>9877420</StreamSize> <Encoded_Library>LAME3.99 </Encoded_Library> <Encoded_Library_Settings>-m j -V 4 -q 3 -lowpass 20.5</Encoded_Library_Settings> </track> <track type="Image"> <Format>JPEG</Format> <Width>1000</Width> <Height>1000</Height> <ColorSpace>YUV</ColorSpace> <ChromaSubsampling>4:4:4</ChromaSubsampling> <BitDepth>8</BitDepth> <Compression_Mode>Lossy</Compression_Mode> <StreamSize>670046</StreamSize> </track> </media> </MediaInfo>