Пакетное преобразование. WAV в MP3 и OGG?

20

У меня есть несколько сотен WAV-файлов, которые мне нужно конвертировать в формат ogg и mp3. Есть ли способ, которым я могу сделать это в пакетном режиме из Audacity или из какого-либо другого инструмента командной строки?


источник
superuser.com/a/617414/84229
пользователь

Ответы:

25

Из командной строки, подобной Unix (Linux, OSX и т. Д.), Ffmpeg может использоваться следующим образом:

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

Это преобразует каждый WAV в каталоге в один MP3 и один OGG; обратите внимание, что он чувствителен к регистру (приведенная выше команда преобразует каждый файл, заканчивающийся на .wav, но не на .WAV). Если вы хотите версию без учета регистра:

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

Для рекурсивного преобразования каждого WAV в каталоге (то есть каждого WAV в текущем каталоге и всех каталогов в текущем каталоге) вы можете использовать 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}' '{}' \;

(Макс уважает Денниса за его ответ здесь за то, что он нашел меня работающей реализацией find с ffmpeg)

Для поиска без учета регистра с помощью find используйте -inameвместо -name.

Примечание -q:a: для MP3 диапазон качества составляет 0-9, где 0 - лучшее качество, а 2 - достаточно для большинства людей для конвертации аудио с CD; для OGG это 1-10, где 10 является лучшим, а 5 соответствует качеству CD для большинства людей.

evilsoup
источник
4
Очень полезный. Я изменил это для пакетного преобразования .wav в mp3 рекурсивно, так как мне не нужно было ogg:find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
smg
Третий пример для рекурсивного преобразования не соответствует '.
Анафора
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; doneтолько для mp3 320 кбит / с
qwr
3

Вы можете использовать foobar2000 с кодировщиками для ogg и mp3. Я верю, что вы можете найти кодировщики в раритетах .

Нильс Магне Лунде
источник
2

Похоже, вы можете использовать oggenc для преобразования WAV в OGG, и вы можете использовать lame для преобразования WAV в MP3.

Кристиан Манн
источник
2

Скачайте ffmpeg по ссылке ниже и установите ее: http://ffmpeg.zeranoe.com/builds/

Создайте и запустите командный файл с указанными ниже командами:

echo converting *.wav to *.ogg 
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg

Все преобразованные файлы * .ogg будут скопированы в каталог .. \ Ogg.

Sathya
источник
0

Я внес некоторые изменения в файл bat, который нашел в SO, и теперь он работает с пробелами в именах файлов, как это часто бывает в названиях песен. этот bat файл преобразует .wav в .mp3, используя инструмент командной строки VLC. Но вы можете изменить формат WMA -> MP3 и так далее ...

@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 изменить кодировку (для работы с выделенными символами). ab здесь битовая скорость 320

Том
источник