Utiliser VLC en ligne de commande sous windows pour convertir un ensemble de fichiers

Le lecteur VLC est outil très puissant notamment pour transcoder des fichiers d’un format à l’autre. Malheureusement son interface graphique est limitée et ne permet de transcoder qu’un fichier à la fois. Impossible donc d’effectuer un traitement par lots pour transcoder un ensemble de fichiers comme un album de musique par exemple.

Heureusement l’interface en ligne de commande permet de s’en sortir mais sa prise en main initiale sous Windows n’est pas triviale.

La solution

Pour les gens pressés, voici un exemple de ligne pour convertir un album encodé en flac en mp3

for %a in (*.flac) do  "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%a" -I dummy -vvv --sout=#transcode{acodec=mp3,ab=192}:std{access=file,mux=raw,dst="%~na.mp3"}  vlc://quit

Documentation de référence

https://wiki.videolan.org/Command_line/
https://wiki.videolan.org/VLC_comma...
https://wiki.videolan.org/How_to_Ba...
https://forum.videolan.org/viewtopi...

Etape 1 : repérer vlc.exe

Chercher sur votre système où est installé sur VLC (peut varier selon votre configuration, attention aux espaces, ....)

Tester la ligne de commande (Executer > cmd)
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"

Si c’est bon, normalement cela lance le logiciel en mode graphique.

Etape 2 : caler les paramètres de votre ligne de commande

Pour tester le script, en ligne de commande allez dans le répertoire où vous voulez transcoder vos fichiers (E :/mon album/, ...)

Prenez un fichier avec un nom simple pour tester si vos paramètres de votre ligne de commande sont bons.

Par exemple, on va convertir un fichier audio A.flac (format flac) en fichier B.mp3 (format mp3)
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" A.flac -I dummy -vvv --sout=#transcode{acodec=mp3,ab=192}:std{access=file,mux=raw,dst="B.mp3"}

Si c’est bon, cela ouvre une nouvelle fenêtre en mode console avec un log détaillé de l’opération.
Lire ces informations pour savoir si cela fonctionne bien ou non.

En cas d’échec, pensez à vérifier :

  • Le chemin de votre fichier vlc ou de vos fichiers destinations
  • Lire la log de la console
  • Les codecs, conteneurs sont ils bons
 

Pour connaitre toutes les options :

  • Lire la documentation (sic) https://wiki.videolan.org/VLC_comma...
  • S’inspirer des paramètres du logiciel en mode graphique (Menu Convertir, les profils pré-enregistrés) notamment pour connaitre les bons codecs et conteneurs)

Les paramètres importants sont

=#transcode{....}:
... acodec: le codec audio
... vcodec: le codec video
... ab: bitrate / qualité
std{......}
... mux; le conteneur

Etape 3 : Créer le traitement par lot (batch)

Une fois vos paramètres bien calés sur un fichier, il ne reste plus qu’à boucler en créant un boucle for et sa variable %a.

Pour éviter d’avoir à fermer toutes les consoles en fin d’opération on ajoute en fin de ligne de commande
vlc://quit

Cela donne sur le script précédent
for %a in (*.flac) do  "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%a" -I dummy -vvv --sout=#transcode{acodec=mp3,ab=192}:std{access=file,mux=raw,dst="%a.mp3"} vlc://quit

On peut l’améliorer l’écriture du fichier final %a en %~na pour ne pas garder l’extension flac (réf. windows batch scripting)
Ce qui donne au final
for %a in (*.flac) do  "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "%a" -I dummy -vvv --sout=#transcode{acodec=mp3,ab=192}:std{access=file,mux=raw,dst="%~na.mp3"} vlc://quit

Lancer puis être un peu patient ....
même si c’est de la ligne de commande, le temps de processing reste le même ^_^

Bravo ! Vous avez triomphé de la ligne de commande sous windows !

Vous pouvez maintenant convertir un ensemble de fichiers .WAV en .MP3 ou des .MKV en .AVI en une seule ligne avec les paramètres techniques précis voulus....

Limites

Le script n’est pas parfait :

  • Il reste juste un petit soucis pour échapper les fichiers contenant des caractères spéciaux type single quote ou virgule ,
  • On perd les méta-données (titre, N° de piste...)

Si quelqu’un a une suggestion ou amélioration à suggérer.... merci de me contacter

Alternative : FlacSquisher

Pour les personnes allergiques à la ligne de commande, le logiciel open source FlashSquisher permet de convertir une répertoire entier de Flac en .mp3 ou .ogg avec une interface simple et efficace.

Dernière mise à jour : 7 septembre 2016