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 :
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 :
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 :