массовая / пакетная конвертация mp3 файлов в ogg через командную строку?

44

можно ли конвертировать mp3 в ogg через командную строку?

Я хотел бы просто конвертировать мои mp3-файлы в ogg, чтобы я мог воспроизводить их в Firefox без каких-либо проблем.

chrisjlee
источник
Firefox должен проигрывать mp3 файлы очень хорошо
mchid

Ответы:

37

В поисках пакетов, соответствующих ogg, я нашел dir2ogg, который, кажется, именно то, что вы хотите. Только что

sudo apt-get install dir2ogg
dir2ogg -r /path/to/mp3s/

И он рекурсивно находит и конвертирует все mp3-файлы /path/to/mp3s/в ogg (при условии, что я правильно прочитал руководство).

geirha
источник
30

Используйте комбинацию FFMPEG и String Manipulation .

Перейдите в папку, где находятся ваши mp3:

cd mp3folder

Одним из примеров является использование простого цикла for:

for file in *.mp3
  do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done

Двойные кавычки запрещают использование пробелов в именах файлов как «новых строк».

ffmpeg имеет несколько опций для включения в преобразование, таких как кодеки, битрейт, размер выборки, стерео / моно и т. д. Выше приведено наиболее общее преобразование с настройками по умолчанию.

SaultDon
источник
Превосходно. dir2ogg не работал на wheezy, но этот ответ работал как очарование
Onimusha
У меня тоже не работал dir2ogg, но я конвертировал m4a -> ogg. <a href=" linuxquestions.org/questions/linux-general-1/… "title= linuxquestions.org"> lq </a>, но вышеприведенный цикл for сделал это (заменив ffmpeg на avconv). При преобразовании m4a / mp3 в ogg с вышеописанным процессом, размер файла увеличивается в 9 раз. Однако, если вы сначала конвертируете m4a в mp3, а затем mp3 в ogg, размер файла увеличивается только в 4 раза. <pre> <code> avconv -i "ManjusriMantra.m4a" " ManjusriMantra.mp3 "wait avconv -i" ManjusriMantra.mp3 "" ManjusriMantra.ogg "<code> <pre>
afc888ny
это сработало для меня: ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.oggнастройки высочайшего качества, все еще заметно хуже, чем оригинал. Настройки по умолчанию у меня вообще не работали (на Cygwin, так что подайте в суд на меня :)), но у этого вопроса была хорошая информация: superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
Kai Carver
19

Будьте осторожны с преобразованиями из MP3, M4A и т. Д. В OGG, потому что результат может показаться плохим!

Предупреждение : и MP3, и OGG являются форматами с потерями , в отличие, скажем, от WAV или FLAC. Это означает, что они достигают своего сжатия в значительной степени, выбрасывая биты аудиоинформации, незаметные для человеческого слуха (так называемая психоакустика [wikipedia] )

Когда вы кодируете (транскодируете) из одного формата с потерями в другой, большинство этих психоакустически избыточных битов уже потеряны, поэтому качество транскодирования будет ухудшаться и даже может быть «слышимым» в результате. Следовательно, не рекомендуется делать такие преобразования, если это не является абсолютно необходимым.


Минимизируйте эффект, если вы сделаете это, выбрав более высокую скорость передачи, чем исходная скорость передачи

Если вы выполняете это преобразование MP3 в OGG, вы можете минимизировать вероятность появления артефактов (низкого качества), используя более высокую скорость передачи, чем исходную , например, если ваши MP3-файлы имеют скорость 128 кбит / с, попробуйте использовать Ogg с -q7(переменным уровнем битрейта). 7), что обычно составляет около 200 кбит / с.

Вы можете передать -qопцию в dir2ogg (доступный в репозиториях как упомянутый @geirha), который должен делать то, что вы хотите.

иш
источник
10

Вы можете использовать программу 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
ademar111190
источник
ПРИМЕЧАНИЕ. Пакет avconv - это недавняя ветка / ветвь ffmpeg с похожим синтаксисом и функциями.
david6
ПРИМЕЧАНИЕ 2: ffmpeg официально устарело и явно упоминает, что вы должны использовать avconvвместо этого.
ashes999
3

Разбор / замена mp3 на ogg некорректна. Правильная форма должна быть:

for file in *.mp3;

   do ffmpeg -i "${file}" -acodec libvorbis "${file%mp3}ogg";

done
Джон Жак
источник
2

Вот один из них, использующий 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
mchid
источник
1

Если вы используете только аудио, используйте приведенный ниже код [иначе FF не воспроизводит .ogg]

for file in *.mp3;
   do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}"; 
done
Аруп Бханджа
источник
1

Также есть Soundconverter . Он поддерживает как GUI, так и CLI и может выполнять массовые преобразования в обоих режимах.

zakkak
источник
0

Похоже, что это может решить вашу проблему http://www.perturb.org/display/entry/687/

Гарри Кернс
источник
Можете ли вы уточнить, что это такое? Это добавит больше контекста к вашему ответу и улучшит его удобство использования, если ссылка, на которую вы ссылаетесь, однажды исчезнет =)
SaultDon
Собирался сделать, как ты предлагаешь, но потом увидел ответ гейры, который кажется намного лучше, чем мой, поэтому я проголосовал за него.
Гарри Кернс