Batch convert .wav ke mp3 dan ogg?

20

Saya memiliki beberapa ratus file .wav yang perlu saya konversikan ke format ogg dan mp3. Apakah ada cara saya bisa melakukan ini dalam batch baik dari Audacity atau dari beberapa alat baris perintah lainnya?


sumber

Jawaban:

25

Dari commandline Unix-like (Linux, OSX, dll), ffmpeg dapat digunakan seperti ini:

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

Ini akan mengubah setiap WAV dalam direktori menjadi satu MP3 dan satu OGG; perhatikan bahwa case-sensitive (perintah di atas akan mengonversi setiap file yang berakhiran .wav, tetapi tidak .WAV). Jika Anda ingin versi case-insensitive:

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

Untuk mengonversi setiap WAV dalam direktori secara rekursif (yaitu: setiap WAV di direktori saat ini, dan semua direktori di direktori saat ini), Anda dapat menggunakan 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 menghormati Dennis untuk tanggapannya di sini karena menemukan saya implementasi yang berfungsi dari find with ffmpeg)

Untuk pencarian case-sensitive dengan find, gunakan -inamesebagai gantinya -name.

Catatan untuk -q:a: untuk MP3, kisaran kualitasnya adalah 0-9, di mana 0 adalah kualitas terbaik, dan 2 cukup baik bagi kebanyakan orang untuk mengonversi audio CD; untuk OGG, ini 1-10, di mana 10 adalah yang terbaik dan 5 setara dengan kualitas CD untuk kebanyakan orang.

Evilsoup
sumber
4
Sangat berguna. Saya memodifikasi ini menjadi batch .wav ke mp3 secara rekursif, karena saya tidak perlu ogg:find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
smg
Contoh ketiga, untuk konversi rekursif, tidak cocok '.
Anaforis
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; donehanya untuk 320 kbps mp3
qwr
3

Anda dapat menggunakan foobar2000 dengan enkoder untuk ogg dan mp3. Saya percaya Anda dapat menemukan pembuat kode di barang langka .

Nils Magne Lunde
sumber
2

Sepertinya Anda dapat menggunakan oggenc untuk mengubah WAV menjadi OGG, dan Anda dapat menggunakan Lame untuk mengubah WAV menjadi MP3.

Christian Mann
sumber
2

Unduh ffmpeg dari tautan di bawah ini dan instal: http://ffmpeg.zeranoe.com/builds/

buat dan jalankan file batch dengan perintah di bawah ini di dalamnya:

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

Semua file * .ogg yang dikonversi akan disalin ke .. \ Direktori Ogg.

Sathya
sumber
0

Saya melakukan beberapa perubahan pada file bat yang saya temukan di SO, sekarang, berkaitan dengan spasi dalam nama file seperti yang sering terjadi pada nama lagu. file kelelawar ini mengonversi .wav ke .mp3, menggunakan alat baris perintah VLC. Tetapi Anda dapat mengubah ke format wma -> mp3 dan seterusnya ...

@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 mengubah encoding (untuk menangani karakter yang ditekankan.) ab adalah bit rate di sini 320

Tom
sumber