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?
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:
(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.
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
3
Vous pouvez utiliser foobar2000 avec des encodeurs pour ogg et mp3. Je pense que vous pouvez trouver des encodeurs dans les raretés .
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
Réponses:
A partir d'une ligne de commande de type Unix (Linux, OSX, etc.), ffmpeg peut être utilisé comme ceci:
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:
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
:(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.la source
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 uniquementVous pouvez utiliser foobar2000 avec des encodeurs pour ogg et mp3. Je pense que vous pouvez trouver des encodeurs dans les raretés .
la source
On dirait que vous pouvez utiliser oggenc pour convertir WAV en OGG, et vous pouvez utiliser lame pour convertir WAV en MP3.
la source
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:
Tous les fichiers * .ogg convertis seront copiés dans le répertoire .. \ Ogg.
la source
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 ...
chcp changer l'encodage (pour traiter les caractères accentués.) ab est le débit binaire ici 320
la source