Câu trả lời:
Sử dụng kết hợp FFMPEG và Thao tác chuỗi .
Thay đổi vào thư mục chứa mp3 của bạn:
cd mp3folder
Một ví dụ là sử dụng vòng lặp "for" đơn giản:
for file in *.mp3
do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done
Các trích dẫn kép ngăn không gian trong tên tệp được coi là "dòng mới".
ffmpeg có một số tùy chọn để đưa vào chuyển đổi như codec, bitrate, cỡ mẫu, âm thanh nổi / đơn âm, v.v ... Trên đây là chuyển đổi chung nhất với cài đặt mặc định.
ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.ogg
Cài đặt chất lượng cao nhất, vẫn còn kém hơn đáng kể so với ban đầu. Các cài đặt mặc định hoàn toàn không hoạt động với tôi (trên Cygwin, vì vậy hãy kiện tôi :)), nhưng câu hỏi này có thông tin tốt: superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
Cảnh báo : Cả MP3 và OGG đều là các định dạng mất dữ liệu , không giống như WAV hoặc FLAC. Điều này có nghĩa là họ đạt được khả năng nén của mình một cách tuyệt vời bằng cách loại bỏ các mẩu thông tin âm thanh không thể nghe được đến tai người (được gọi là psychoacoustics [wikipedia] )
Khi bạn mã hóa (chuyển mã) từ định dạng mất sang định dạng khác, hầu hết các bit dư thừa về mặt tâm lý đã biến mất, do đó, chất lượng chuyển mã sẽ bị ảnh hưởng và thậm chí có thể bị "đè nặng". Do đó, không nên thực hiện các chuyển đổi như vậy trừ khi thực sự cần thiết.
Nếu bạn thực hiện chuyển đổi MP3-OGG này, bạn có thể giảm thiểu cơ hội tạo tác (chất lượng kém) bằng cách sử dụng tốc độ bit đích cao hơn tốc độ bit nguồn , ví dụ nếu MP3 của bạn ở mức 128 kbps, hãy thử sử dụng Ogg tại -q7
(mức bitrate thay đổi 7), thường là khoảng ~ 200 kbps.
Bạn có thể chuyển -q
tùy chọn cho dir2ogg (có sẵn trong các repos như @geirha đã đề cập) sẽ làm những gì bạn muốn.
bạn có thể sử dụng avconv một chương trình gpl, tôi đã tạo một shell cho ví dụ (chạy nó trên thư mục với các tệp .mp3):
#!/bin/bash
if hash avconv > /dev/null; then
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
else
echo "avconv not found"
fi
hoặc một phiên bản đơn giản hơn, không có xác nhận cài đặt avconv:
#!/bin/bash
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
ffmpeg
được chính thức phản đối và đề cập rõ ràng rằng bạn nên sử dụng avconv
thay thế.
Đây là một trong những người sử dụng mplayer Tôi nghĩ rằng điều này nhanh hơn avconv. Mặc dù, firefox nên phát các tệp mp3 nguyên bản.
#!/bin/bash
for f in *.mp3; do
newname=`echo $f | tr ' ' '_' `
mv "$f" $newname
f=$newname
mplayer $f -novideo -ao pcm:file=tmp.wav
lame -V 0 -q 0 tmp.wav ${f/.mp3/.ogg}
rm -f tmp.wav
done
Trong trường hợp bạn chỉ làm âm thanh, hãy sử dụng đoạn mã dưới đây [khác FF không phát .ogg]
for file in *.mp3;
do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}";
done
Ngoài ra còn có soundconverter . Nó hỗ trợ cả GUI và CLI và có thể thực hiện chuyển đổi hàng loạt trong cả hai chế độ.
Điều này có vẻ như nó có thể giải quyết vấn đề của bạn http://www.perturb.org/display/entry/687/