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


44

чи можна перетворити mp3 в ogg за допомогою командного рядка?

Я хотів би просто масовим натхненням перетворити свої mp3-файли в ogg, щоб я міг відтворювати їх у Firefox без жодних проблем.


firefox повинен відтворювати mp3 файли просто чудово
mchid

Відповіді:


37

Шукаючи пакети, які відповідають ogg, я знайшов dir2ogg, який, здається, саме те, що ви хочете. Просто

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

І він рекурсивно знаходить і перетворює всі mp3-файли під /path/to/mp3s/огг (припускаючи, що я правильно прочитав посібник).


30

Використовуйте комбінацію FFMPEG та String Manipulation .

Перейдіть у папку, де розміщені ваші mp3:

cd mp3folder

Одним із прикладів є використання простого циклу "for":

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

Подвійні лапки не дають пробілам у файлах називатись «новими рядками».

ffmpeg має декілька варіантів включення в конверсію, як кодеки, бітрейт, розмір вибірки, стерео / моно і т. д. ... Наведене вище є найбільш загальним перетворенням із налаштуваннями за замовчуванням.


Відмінно. dir2ogg не працював на хриплість, але ця відповідь спрацювала як принадність
Онімуша

dir2ogg також не працював для мене, але я перетворював m4a -> ogg. <a href=" linuxquestions.org/questions/linux-general-1/… "title= linuxquestions.org"> lq </a>, але цикл for для цього зробив (замінивши ffmpeg на avconv). ogg з вищезазначеним процесом, розмір файлу збільшується в 9 разів. Однак, якщо спершу перетворити m4a в mp3, а потім mp3 в ogg, розмір файлу лише в 4 рази більший. <pre> <code> avconv -i "ManjusriMantra.m4a" " ManjusriMantra.mp3 "зачекай 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

ПРИМІТКА. Пакет 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

1

Якщо ви робите лише аудіо, використовуйте наведений нижче код [інакше FF не відтворює .ogg]

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


0

Схоже, це може вирішити вашу проблему http://www.perturb.org/display/entry/687/


Чи можете ви детальніше розглянути, що це таке? Це додало б більше контексту вашій відповіді та підвищило її зручність використання, якщо посилання, на яке ви посилаєтесь, одного дня зникне =)
SaultDon

Збирався робити, як ви пропонуєте, але тоді побачив відповідь гейри, яка здається набагато кращою за мою, тому я її схвалив.
Гаррі Кернс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.