Voir et mesurer le son — épisode 2/10. Une extension .mp3 et un nom de fichier ne suffisent pas à décrire un morceau. Pour préparer un lecteur, un waveform ou une analyse de niveau, il faut d’abord savoir ce que le fichier contient. Cet article établit la carte d’identité de Friday party à partir de sa structure réelle, puis montre comment exploiter les résultats sans confondre métadonnées et mesures acoustiques.

Le MP3 du jour : Friday party — Dmc Mystic

Ouvrir le MP3 original. Le titre, l’artiste et l’album indiqués ici proviennent des tags du fichier. Pour le petit exercice d’écoute, lancez les vingt premières secondes : un rapport technique peut identifier le format utilisé, mais ne décrit pas à lui seul les instruments ou l’intention musicale de ce passage.

1. FFprobe inspecte ; FFmpeg transforme et analyse

FFprobe produit un inventaire exploitable du fichier : format, flux audio ou image, informations de temps et tags. FFmpeg peut ensuite décoder le signal, le convertir ou lui appliquer des filtres. Dans ce dossier, FFprobe sert à identifier et compter ; FFmpeg sert à vérifier la durée PCM effectivement délivrée par le décodeur.

L’inspection a été réalisée avec FFprobe et FFmpeg 6.1.1, sur une copie téléchargée du lien fourni. Les résultats ci-dessous correspondent à cette copie : si le fichier hébergé est remplacé, il faudra relancer l’analyse.

2. La carte d’identité relevée dans le fichier

Résultats de l’inspection de Friday party
Propriété Résultat
Format détecté MP3
Codec du flux audio MPEG Audio Layer III
Fréquence d’échantillonnage 48 000 Hz
Canaux 2 — stéréo
Débit déclaré du flux audio 298 328 bit/s, soit environ 298,3 kbit/s
Débit global déclaré 299 463 bit/s, soit environ 299,5 kbit/s
Durée déclarée 302,976 secondes — environ 5 min 03 s
Taille du fichier 11 341 296 octets — environ 11,34 Mo décimaux
Nombre de flux détectés 2 : un audio et une pochette
Pochette intégrée JPEG progressif, 437 × 436 pixels

Le format long retourné par FFprobe peut citer plusieurs couches MPEG audio parce qu’il décrit la famille reconnue par le démultiplexeur. C’est le champ codec_name: mp3 du flux audio qui précise ici la couche utilisée. Le suffixe du nom de fichier n’a pas servi de preuve unique.

3. Une pochette n’est pas une vidéo musicale

Le flux d’indice 1 est présenté avec codec_type: video et codec_name: mjpeg. Pourtant, le fichier ne contient pas un clip : sa disposition attached_pic vaut 1. Il s’agit de la pochette intégrée. Ses dimensions, 437 × 436 pixels, sont indépendantes de celles d’un éventuel waveform à générer.

Un programme qui classe tous les fichiers contenant un flux de type vidéo comme des clips commettrait donc une erreur sur ce MP3. Pour traiter le son, les commandes de cet article ciblent le premier flux audio avec a:0, ou avec -map 0:a:0 dans FFmpeg.

4. Lire les métadonnées sans les surinterpréter

Quelques tags effectivement lus
Champ Valeur
Titre Friday party
Artiste Dmc Mystic
Album Echo jam
Piste 5/15
Genre déclaré Compilation de styles
Année déclarée 2026
Étiqueté « encoded_by » Proto Genesis Labs Software
Tag encoder du flux audio Lavc58.12

Les tags sont éditables. Ils décrivent les informations inscrites dans cette copie ; ils ne prouvent pas une date de création, une provenance complète ou un historique d’encodage. Les mentions encoded_by et encoder peuvent désigner des étapes différentes et ne permettent pas de reconstituer toute la chaîne de production.

Le journal relève Incorrect BOM value et Error reading comment frame, skipped. Le lecteur ignore une trame de commentaire ID3 mal formée. Le rapport reste disponible et le décodage complet a réussi. Il faut distinguer ce problème de tag d’une erreur dans les données audio.

5. Fréquence d’échantillonnage : que signifie 48 kHz ?

Chaque canal décodé comporte 48 000 échantillons par seconde. L’espacement temporel vaut 1 / 48 000 ≈ 20,83 microsecondes. La fréquence de Nyquist est 48 000 / 2 = 24 000 Hz, borne théorique liée à l’échantillonnage. Elle ne signifie pas que ce morceau contient de l’énergie jusqu’à 24 kHz, ni que son encodage conserve uniformément toutes les fréquences.

La présence de deux canaux indique une structure stéréo. Elle ne mesure ni la largeur de l’image, ni la corrélation, ni la qualité du rendu en mono. Ces propriétés nécessitent une analyse du signal.

Le champ sample_fmt: fltp correspond au format d’échantillons flottants planaires utilisé par le décodeur dans ce rapport. Il n’établit pas que le master était en 32 bits. De même, bits_per_sample: 0 ne veut pas dire que le MP3 ne contient aucun son : une profondeur PCM fixe n’est pas renseignée ici pour ce codec compressé.

6. Débit variable : la preuve vient des trames

Le nombre 298 328 bit/s ne ressemble pas à un palier MP3 habituel. Ce seul constat suggère une moyenne, mais ne suffit pas à certifier un encodage à débit variable. Pour vérifier, nous avons lu les tailles et durées des 12 624 paquets audio avec FFprobe.

Dans ce fichier, chaque paquet audio examiné dure 0,024 seconde. Le débit correspondant se calcule par R = 8 × taille_en_octets / durée_en_secondes. Un paquet de 960 octets sur 0,024 seconde correspond ainsi à 320 000 bit/s ; un paquet de 768 octets correspond à 256 000 bit/s.

Distribution observée des paquets audio
Débit calculé Nombre de paquets
32 kbit/s 191
80 kbit/s 1
192 kbit/s 12
224 kbit/s 261
256 kbit/s 2 997
320 kbit/s 9 162

La coexistence de ces tailles, à durée égale, confirme ici un débit variable. Elle ne démontre pas que les passages à haut débit sont plus forts, plus intéressants ou plus aigus. Le débit d’encodage n’est pas un VU-mètre.

À l’échelle du fichier, 8 × 11 341 296 / 302,976 ≈ 299 463 bit/s, ce qui retrouve le débit global déclaré. Ce calcul inclut notamment les données de pochette et les tags ; il ne doit pas être substitué au débit du seul flux audio.

7. Durée des trames et durée réellement décodée

Les 12 624 trames comptabilisées, chacune de 1 152 échantillons par canal à 48 kHz, couvrent 12 624 × 1 152 / 48 000 = 302,976 secondes. Ce résultat retrouve la durée déclarée.

Le premier paquet porte toutefois une indication skip_samples: 1105. Le dernier porte discard_padding: 525. Après prise en compte de ces indications, le décodage PCM complet donne 14 541 218 échantillons par canal, soit 302,942042 secondes.

La vérification numérique est directe : (12 624 × 1 152 − 1 105 − 525) / 48 000 = 302,942042. L’écart est d’environ 33,96 millisecondes. Dans cette copie, il s’explique par les indications d’échantillons à écarter aux extrémités. Le début de flux affiché à environ 0,023021 seconde correspond également à 1 105 / 48 000. Ce n’est pas une mesure d’un silence musical volontaire.

Pour afficher une durée approximative dans une liste, l’arrondi à la seconde suffit souvent. Pour aligner une forme d’onde ou des points de coupe, il faut préciser la référence : durée déclarée, horodatages ou nombre d’échantillons effectivement décodés.

8. Reproduire l’inspection et obtenir un JSON exploitable

Les exemples utilisent une copie locale nommée friday-party.mp3. La redirection du rapport concerne un fichier distinct, pas le MP3 d’origine.

Rapport complet et journal séparé

ffprobe -v warning -show_format -show_streams -of json friday-party.mp3 > rapport-friday-party.json 2> diagnostic-friday-party.log

Le JSON va sur la sortie standard, les avertissements sur la sortie d’erreur. Les garder séparés évite d’introduire les messages ID3 dans le document JSON.

Rapport ciblé pour un lecteur audio

ffprobe -v warning -select_streams a:0 -show_entries stream=index,codec_name,sample_rate,channels,channel_layout,bit_rate:format=duration,size,bit_rate:format_tags=title,artist,album,track -of json friday-party.mp3

Compter les trames et examiner les paquets

ffprobe -v warning -select_streams a:0 -count_frames -show_entries stream=nb_read_frames,duration,start_time,time_base -of json friday-party.mp3
ffprobe -v warning -select_streams a:0 -show_packets -show_entries packet=size,duration_time,side_data_list -of json friday-party.mp3

Les tailles et durées des paquets permettent de refaire le tableau de débits. Les données latérales des paquets renseignent ici les indications de début et de fin. Un comptage complet nécessite de parcourir le fichier ; il coûte davantage qu’une simple lecture de son en-tête.

Vérifier le décodage et son nombre d’échantillons

ffmpeg -v warning -i friday-party.mp3 -map 0:a:0 -c:a pcm_f32le -f f32le friday-party-decoded.f32

Cette sortie brute contient deux valeurs flottantes 32 bits par instant, soit 8 octets par paire stéréo. Sa taille mesurée est 116 329 744 octets : divisée par 8, elle donne 14 541 218 échantillons par canal ; divisée ensuite par 48 000, elle donne la durée PCM. Le fichier brut n’a pas d’en-tête : sa lecture nécessite de connaître ces paramètres.

9. Extrait réel simplifié du rapport

L’extrait ci-dessous conserve une sélection de valeurs relevées ; il ne remplace pas le rapport intégral.

{
  "streams": [
    {
      "index": 0,
      "codec_name": "mp3",
      "sample_rate": "48000",
      "channels": 2,
      "channel_layout": "stereo",
      "bit_rate": "298328"
    },
    {
      "index": 1,
      "codec_name": "mjpeg",
      "width": 437,
      "height": 436,
      "disposition": {
        "attached_pic": 1
      }
    }
  ],
  "format": {
    "duration": "302.976000",
    "size": "11341296",
    "bit_rate": "299463",
    "tags": {
      "title": "Friday party",
      "artist": "Dmc Mystic",
      "album": "Echo jam",
      "track": "5/15"
    }
  }
}

Les valeurs de durée et de fréquence peuvent être des chaînes dans le JSON, tandis que le nombre de canaux est un entier. Un importateur doit convertir les champs nécessaires avec contrôle d’erreur et accepter qu’un champ soit absent. Il ne faut pas remplacer arbitrairement une valeur inconnue par zéro.

10. Ce que ce rapport permet de décider

  • Préparer le lecteur : afficher le titre, l’album, la durée et la pochette.
  • Choisir le bon flux : traiter l’audio et reconnaître l’image jointe.
  • Préparer une mesure : connaître la fréquence et les canaux avant le calcul du waveform ou du RMS.
  • Documenter l’import : conserver les avertissements sans les confondre avec un diagnostic sonore.

Pour cet exercice, réécoutez maintenant le début du morceau en consultant sa carte d’identité. Vous connaissez son format, mais vous n’avez encore mesuré ni sonie LUFS, ni True Peak, ni dynamique perceptive. Un débit élevé ne remplace aucune de ces mesures et ne garantit pas la qualité du master.

Sources et reproductibilité

Les tableaux, le comptage des paquets et les calculs de durée proviennent d’essais exécutés sur le MP3 fourni avec la version 6.1.1. L’image de couverture est une illustration éditoriale, pas une capture du rapport.

Prochain épisode : le crête-mètre numérique et les niveaux en dBFS, avec un nouveau MP3 comme exemple.