Ответы:
В поисках пакетов, соответствующих ogg, я нашел dir2ogg, который, кажется, именно то, что вы хотите. Только что
sudo apt-get install dir2ogg
dir2ogg -r /path/to/mp3s/
И он рекурсивно находит и конвертирует все mp3-файлы /path/to/mp3s/
в ogg (при условии, что я правильно прочитал руководство).
Используйте комбинацию FFMPEG и String Manipulation .
Перейдите в папку, где находятся ваши mp3:
cd mp3folder
Одним из примеров является использование простого цикла for:
for file in *.mp3
do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done
Двойные кавычки запрещают использование пробелов в именах файлов как «новых строк».
ffmpeg имеет несколько опций для включения в преобразование, таких как кодеки, битрейт, размер выборки, стерео / моно и т. д. Выше приведено наиболее общее преобразование с настройками по умолчанию.
ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.ogg
настройки высочайшего качества, все еще заметно хуже, чем оригинал. Настройки по умолчанию у меня вообще не работали (на Cygwin, так что подайте в суд на меня :)), но у этого вопроса была хорошая информация: superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
Предупреждение : и MP3, и OGG являются форматами с потерями , в отличие, скажем, от WAV или FLAC. Это означает, что они достигают своего сжатия в значительной степени, выбрасывая биты аудиоинформации, незаметные для человеческого слуха (так называемая психоакустика [wikipedia] )
Когда вы кодируете (транскодируете) из одного формата с потерями в другой, большинство этих психоакустически избыточных битов уже потеряны, поэтому качество транскодирования будет ухудшаться и даже может быть «слышимым» в результате. Следовательно, не рекомендуется делать такие преобразования, если это не является абсолютно необходимым.
Если вы выполняете это преобразование MP3 в OGG, вы можете минимизировать вероятность появления артефактов (низкого качества), используя более высокую скорость передачи, чем исходную , например, если ваши MP3-файлы имеют скорость 128 кбит / с, попробуйте использовать Ogg с -q7
(переменным уровнем битрейта). 7), что обычно составляет около 200 кбит / с.
Вы можете передать -q
опцию в dir2ogg (доступный в репозиториях как упомянутый @geirha), который должен делать то, что вы хотите.
Вы можете использовать программу avconv a gpl, для примера я сделал оболочку (запустите ее в папке с файлами .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
или более простая версия, без проверки установки avconv:
#!/bin/bash
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
ffmpeg
официально устарело и явно упоминает, что вы должны использовать avconv
вместо этого.
Вот один из них, использующий mplayer. Я думаю, что это быстрее, чем avconv. Хотя Firefox должен воспроизводить mp3 файлы изначально.
#!/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
Если вы используете только аудио, используйте приведенный ниже код [иначе FF не воспроизводит .ogg]
for file in *.mp3;
do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}";
done
Также есть Soundconverter . Он поддерживает как GUI, так и CLI и может выполнять массовые преобразования в обоих режимах.
Похоже, что это может решить вашу проблему http://www.perturb.org/display/entry/687/