Convertir par lots .wav en mp3 et ogg?


Réponses:


25

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 -inameplutô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.


4
Très utile. J'ai modifié ceci pour convertir par lots .wav en mp3 de manière récursive, car je n'avais pas besoin d'ogg:find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
smg

Le troisième exemple, pour la conversion récursive, ne correspond pas '.
Anaphory

$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; donepour mp3 320 kbps uniquement
qwr



2

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.


0

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.