vlc : extraire la piste audio d'une vidéo

Extraire l'audio en ligne de commande (UNIX)

Problématique

Certaines vidéos ne sont en fait que des formats audio accessibles depuis des plateformes vidéos. Il peut être utile d'en extraire l'audio pur pour l'insérer dans une liste de lecture et en profiter sans avoir besoin de garder un œil sur un écran.

En plus de lire de nombreux formats audio et vidéo, vlc permet d'effectuer des transformations, y compris d'extraire la piste son d'une vidéo.

Solution

Enregistrer la piste audio s'effectue en 2 étapes. D'un côté lire la bande son sans la vidéo, de l'autre encoder le son dans le format choisi.

Extraire la piste audio

Pour n'extraire que le son sans la vidéo :

--no-sout-video --sout-audio --no-sout-rtp-sap --no-sout-standard-sap --ttl=1 --sout-keep

Encoder la piste audio

Pour encoder l'audio (ici en mp3, 128kbps, double canal) :

--sout=#transcode{acodec=mp3,ab=128,channels=2}:std{access=file,mux=dummy,dst=mon_fichier.mp3}

La commande en entier

En concaténant les deux, nous obtenons :

cvlc -I dummy "mon_fichier_video.mp4" --no-sout-video --sout-audio --no-sout-rtp-sap --no-sout-standard-sap --ttl=1 --sout-keep --sout=#transcode{acodec=mp3,ab=128,channels=2}:std{access=file,mux=dummy,dst=mon_fichier.mp3} vlc://quit

Avec :

  • cvlc : l'appel de vlc en mode ligne de commande

  • -I dummy  : interface dummy (pas de mode graphique)

  • vlc://quit : pour quitter automatiquement quand la conversion est achevée