FFMPEG : Obtenir les données brutes d’un fichier son pour créer son spectre

La librairie FFMPEG est relativement bien fournie dans le traitement audio et vidéo. Malheureusement elle est relativement mal documentée car manque d'exemples.

Ci-dessous un exemple de code qui récupère les données "brutes" d'un fichier son dans le but d'en créer son spectre.

Cette analyse des données se base en plusieurs temps :

1. Initialisation de la librairie FFMPEG

Capture d’écran 2014-09-09 à 11.25.55

Ici, on initialise la librairie libavformat et on met un niveau de log en debug.

2. Initialisation des données du fichier sonore

Capture d’écran 2014-09-09 à 11.32.07

Ici, on créé un contexte à partir des données du fichier sonore, on récupère le lien vers le meilleur flux, le codec de ce flux.

3. Lecture des données

Capture d’écran 2014-09-09 à 11.42.43

Ici on passe par plusieurs boucles :

  • Pour tous les packets
    • Pour chaque frame du packet
      • Pour chaque "channel" de la frame
        • Pour chaque sample de la frame pour cette "channel"
          • Lecture de la donnée brute

4. Utilisation des résultats

Les données ainsi lues nous permettent de les utiliser pour construire le spectre (ici sous Excel à partir des données exportées en CSV) :

Capture d’écran 2014-09-09 à 11.40.55

 

Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *