Question Comment convertir plusieurs fichiers d'un type (par exemple wav en mp3) en utilisant VLC ou Audacity en un seul coup?


J'ai 10 fichiers wav. Je veux tous les convertir en fichiers mp3. J'ai réussi à y parvenir pour un seul fichier (comme décrit dans Comment convertir un média en utilisant VLC?), mais je ne veux pas le faire pour chaque fichier. Est-il possible de convertir tous les 10 fichiers en un seul coup? J'utilise Windows 7.


4
2017-07-08 15:48


origine


duplicata possible de Convertir par lots .wav en mp3 et ogg? - nixda


Réponses:


J'ai suivi la suggestion de nixda et utilisé un script batch. J'ai compris comment programmer un lot pour Windows 7. C'est ma solution:

@echo off
for /f "delims=|" %%f in ('dir /b C:\Any_Directory\*.wav') do (
echo converting      %%f
CALL "C:\Program Files\VideoLAN\VLC\vlc.exe" --intf dummy --dummy-quiet "%%f" --sout="#transcode{acodec=mp3,ab=256,vcodec=dummy}:standard{access=file,mux=raw,dst=MP3_Files/"%%f"}"  vlc://quit
move "%%f" WAV_converted/"%%f"
)

cd MP3_Files
ren *.wav *.mp3
cd ..

echo .
echo .
echo .
echo conversion finished
pause

Comment fonctionne le programme:

  • Tous les fichiers avec l'extension .wav dans le dossier spécifié "C: \ Any_Directory \" sont convertis en mp3 (les noms de fichiers ne doivent pas contenir d'espaces blancs)
  • Les fichiers mp3 sont enregistrés dans le dossier "MP3_Files" (qui doit déjà exister)
  • Les fichiers wav sont poussés dans le dossier "WAV_converted" (qui doit déjà exister)
  • "ab = 256" définit le débit binaire. Pour convertir avec par ex. débit binaire 128, remplacez-le par "ab = 128".
  • Le fichier de commandes doit être exécuté à partir du même dossier que les fichiers à convertir (comme indiqué par Kevin Heidt)

Astuces  - Supprimez "--intf dummy --dummy-quiet" du script si vous souhaitez voir l'interface graphique de VLC lors de la conversion. Pourrait être utile pour le débogage.

Mettre à jour Il y a encore un bogue: si le nom du fichier wav contient un point ou une virgule, le nom est tronqué (et aucune extension n'est ajoutée!). Le fichier est converti malgré cela. Testé avec la version 1.1.11. Les nouvelles versions peuvent ne pas fonctionner!

Signe de citation ajouté: --sout = "...". Fonctionne pour les nouvelles versions, aussi. Testé avec la version 2.1.3 64 bits sous Windows (voir le Page wiki VLC pour les différences dans la ligne de commande pour Linux et Windows et des exemples et options supplémentaires).


10
2017-07-09 11:48



Remarque: cela suppose que votre fichier de commandes est exécuté à partir du même dossier que les fichiers à convertir (D: \ "dossier xyz" \ VLC_batch) - Kevin Heidt
excellentes choses. - roel
le lien videolan est mort ... - Kev
C'est toujours une bonne solution. Une note; Je l'ai utilisé pour convertir une charge de fichiers Soundcloud, et tout ce que SC avait nommé avec un% converti en un fichier de longueur zéro. Assez facile pour réparer les noms de fichiers en premier lieu. - Whelkaholism
Il n'aime pas non plus les parenthèses dans le nom du fichier. - Whelkaholism


J'ai utilisé VLC pour convertir l'audio pour un ensemble de fichiers vidéo, mais la même approche peut aider dans toute tâche de transcodage. Vous devez créer un fichier .bat simple:

for %%a in (*.avi) do "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy -vvv "%%a" --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=22050}:standard{access=file,mux=ts,dst="%%a_conv.avi"} --sout-keep vlc://quit
  • Ce fichier de commandes va rechercher tous les fichiers * .avi dans le même dossier et les transcoder avec un paramètre donné décrit dans sout = # transcode {params}
  • Pour savoir quels paramètres vous devez utiliser, vous devez sélectionner Menu-> Media-> Stream ... et sélectionnez tous les paramètres dans l'assistant graphique. Lors de la dernière étape de l'assistant, vous verrez la chaîne params générée que vous devez utiliser dans votre fichier de commandes.
  • Les fichiers de sortie auront _conv.avi suffixe, changez-le si vous avez besoin d'une autre extension

0
2017-07-12 20:03





Pour ajouter une approche similaire à SO:

Les changements que j'ai faits, permet des espaces dans les noms de répertoires et dans les noms de chansons comme c'est souvent (toujours) le cas.

@echo off
chcp 65001
SETLOCAL ENABLEDELAYEDEXPANSION

for /f "delims=" %%f IN ('dir /b /s "YOUR_DISK:\Path\To\Your Music\That May contain Spaces\*.wav"') do (
set file1=%%~nf.mp3
echo "file :" !file1!
set fic1=%%f
echo "file : " !fic1!

CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"  "!fic1!" --sout="#transcode{vcodec=none,acodec=mp3,ab=320,channels=2,samplerate=48000}:std{access=file{no-overwrite},mux=mp3,dst="""!file1!"""}" vlc://quit
)

echo .
echo conversion finished
pause

0
2017-11-09 16:01



Gentil ... bon travail. Maintenant, pour lui faire accepter un chemin en tant qu'argument, et autoriser tous les caractères acceptables dans les noms de fichiers (échoue actuellement si le nom de fichier contient par exemple un '!') - Krakkos