J'ai quelques centaines de fichiers .wav que je dois convertir au format ogg et mp3. Existe-t-il un moyen de le faire par lots à partir d'Audacity ou d'un autre outil de ligne de commande?
J'ai quelques centaines de fichiers .wav que je dois convertir au format ogg et mp3. Existe-t-il un moyen de le faire par lots à partir d'Audacity ou d'un autre outil de ligne de commande?
Réponses:
A partir d'une ligne de commande de type Unix (Linux, OSX, etc.), ffmpeg peut être utilisé comme ceci:
for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}"; done
Cela convertira chaque WAV d'un répertoire en un MP3 et un OGG; notez qu'il est sensible à la casse (la commande ci-dessus convertira chaque fichier se terminant par .wav, mais pas .WAV). Si vous voulez une version insensible à la casse:
for f in *.{wav,WAV}; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.*}.mp3" -c:a libvorbis -q:a 4 "${f%.*}.ogg"; done
Pour convertir chaque WAV d'un répertoire de manière récursive (c'est-à-dire: chaque WAV du répertoire actuel et tous les répertoires du répertoire actuel), vous pouvez utiliser find
:
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}' '{}' \;
(Max respect à Dennis pour sa réponse ici pour m'avoir trouvé une implémentation fonctionnelle de find avec ffmpeg)
Pour une recherche insensible à la casse avec find, utilisez -iname
plutôt que -name
.
Une note sur -q:a
: pour les MP3, la plage de qualité est de 0 à 9, où 0 est la meilleure qualité et 2 est assez bon pour la plupart des gens pour convertir le CD audio; pour OGG, c'est 1-10, où 10 est le meilleur et 5 est équivalent à la qualité CD pour la plupart des gens.
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
'
.
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; done
pour mp3 320 kbps uniquement
Vous pouvez utiliser foobar2000 avec des encodeurs pour ogg et mp3. Je pense que vous pouvez trouver des encodeurs dans les raretés .
Téléchargez ffmpeg à partir du lien ci-dessous et installez-le: http://ffmpeg.zeranoe.com/builds/
créer et exécuter un fichier de commandes avec les commandes ci-dessous:
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
Tous les fichiers * .ogg convertis seront copiés dans le répertoire .. \ Ogg.
J'ai fait quelques changements dans un fichier bat que j'ai trouvé sur SO, il traite maintenant des espaces dans les noms de fichiers comme c'est souvent le cas dans le nom des chansons. ce fichier bat convertit .wav en .mp3, en utilisant l'outil de ligne de commande VLC. Mais vous pouvez changer les formats wma -> mp3 et ainsi de suite ...
@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
chcp changer l'encodage (pour traiter les caractères accentués.) ab est le débit binaire ici 320