Tôi có vài trăm tệp .wav mà tôi cần chuyển đổi sang cả định dạng ogg và mp3. Có cách nào để tôi có thể thực hiện việc này hàng loạt từ Audacity hoặc từ một số công cụ dòng lệnh khác không?
Tôi có vài trăm tệp .wav mà tôi cần chuyển đổi sang cả định dạng ogg và mp3. Có cách nào để tôi có thể thực hiện việc này hàng loạt từ Audacity hoặc từ một số công cụ dòng lệnh khác không?
Câu trả lời:
Từ một dòng lệnh giống như Unix (Linux, OSX, v.v.), ffmpeg có thể được sử dụng như thế này:
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
Điều này sẽ chuyển đổi mọi WAV trong một thư mục thành một MP3 và một OGG; lưu ý rằng nó phân biệt chữ hoa chữ thường (lệnh trên sẽ chuyển đổi mọi tệp kết thúc bằng .wav, nhưng không phải .WAV). Nếu bạn muốn có một phiên bản không phân biệt chữ hoa chữ thường:
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
Để chuyển đổi mọi WAV trong thư mục theo cách đệ quy (nghĩa là: mọi WAV trong thư mục hiện tại và tất cả các thư mục trong thư mục hiện tại), bạn có thể sử dụng 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}' '{}' \;
(Tối đa tôn trọng Dennis vì phản hồi của anh ấy ở đây vì đã tìm cho tôi một triển khai tìm kiếm với ffmpeg)
Đối với tìm kiếm không phân biệt chữ hoa chữ thường với find, sử dụng -iname
thay vì -name
.
Một lưu ý về -q:a
: đối với MP3, phạm vi chất lượng là 0-9, trong đó 0 là chất lượng tốt nhất và 2 là đủ tốt cho hầu hết mọi người để chuyển đổi âm thanh CD; đối với OGG, đó là 1-10, trong đó 10 là tốt nhất và 5 tương đương với chất lượng CD đối với hầu hết mọi người.
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
chỉ với mp3 320 kbps
Bạn có thể sử dụng foobar2000 với bộ mã hóa cho ogg và mp3. Tôi tin rằng bạn có thể tìm thấy bộ mã hóa tại rarewares .
Tải xuống ffmpeg từ liên kết bên dưới và cài đặt nó: http://ffmpeg.zeranoe.com/builds/
tạo và chạy tệp bó với các lệnh bên dưới:
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
Tất cả các tệp * .ogg được chuyển đổi sẽ được sao chép vào thư mục .. \ Ogg.
Tôi đã thực hiện một số thay đổi đối với tệp dơi mà tôi đã tìm thấy trên SO, bây giờ, xử lý các khoảng trắng trong tên tệp vì nó thường là trường hợp trong tên bài hát. tập tin bat này chuyển đổi .wav thành .mp3, sử dụng công cụ dòng lệnh VLC. Nhưng bạn có thể thay đổi định dạng wma -> mp3, v.v.
@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 thay đổi mã hóa (để xử lý các ký tự có dấu.) ab là tốc độ bit ở đây 320