Як я можу конвертувати свою музичну колекцію FLAC в Apple Lossless?


13

У мене є музична колекція розумного розміру, яку я зберігаю у форматі FLAC на своєму ноутбуці Ubuntu. Я хотів би почати відтворювати цю музику на своєму Mac і синхронізувати її звідти на свій iPod. Люди припустили, що найкращий спосіб зробити це - перетворити свою колекцію на ALAC, і я вирішив, що це я хочу зробити.

Перш ніж зануритися і написати спеціальні сценарії оболонки, які дзвонять ffmpegчерез якусь складну findкоманду, я подумав, що попрошу поради.

Як я можу найкращим чином перетворити свою наявну колекцію FLAC в ALAC, не втрачаючи якості звуку та зберігаючи всі метадані?


Ага. Я здивований. Я думав, що буде очевидний вибір інструменту для перекодування, але всі ті, які я можу знайти, зосереджені на відео.
RAOF

Що я в кінцевому підсумку робив тут, це написання користувальницького сценарію Python, який називався metaflac, ffmpeg та AtomicParsley.
jml

Відповіді:


21

avconv (або ffmpeg, який avconv є виделкою) може зробити це з командного рядка:

avconv -i input.flac -c:a alac output.m4a

Він повинен зберігати метадані сам по собі.

Щоб зробити кожен фрагмент у каталозі:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

Щоб зробити кожен flac рекурсивно (у поточному каталозі та всіх підкаталогах):

shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

Якщо у вас є фрагменти у файлах ogg або щось подібне, очевидно, змініть ./*.flacна ./*.ogg.

Я думаю, що це повинно працювати з avconv / ffmpeg із сховищ (оскільки ALAC випускається під ліцензією Apache і може бути законно розповсюджений), хоча у мене встановлена ​​версія з medibuntu.

Якщо ви хочете позбутися від оригінальних файлів, можете поставити rmв цикл. Ця версія використовує -nпрапор для avconv, тому він не буде перезаписати жодні вже існуючі файли ALAC, а використовувати &&замість того,; що якщо avconv зупиняється з помилкою, то вихідний файл FLAC не буде видалений:

for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done

Зауважте, що видалення файлів із rm є незворотним (за межами відновлення криміналістичних даних), тому будьте обережні, використовуючи його.


Чи знаєте ви, як замінити файли flac на файли alac, замість того, щоб робити копію alac з файлом flac?
користувач138784

@ user13 ні, avconv / ffmpeg не може цього зробити, він не може перезаписати файли, які він використовує як вхідні дані. За rmбажанням ви можете видалити оригінальні файли.
зол

Я насправді не гуру командного рядка (я зовсім новачок у GNU / Linux), тому до цих пір я використовував їх для видалення вручну. (nautilus, упорядкуйте файли за типом, і тоді я можу просто вибрати всі файли .flac у цьому каталозі та видалити їх). Я буду дивитись, як працює ця "rm" річ. :)
user138784

@ user138 Я відредагував відповідь, щоб показати одну реалізацію за допомогою rm- хоча беруть до уваги попередження, rmце набагато незворотніше, воно прямо видаляє файли, а не переміщує їх у відро для сміття. Іншою альтернативою може бути використання глобулінгу після завершення циклу (так що ви можете перевірити, чи не було проблем ... якби команда не вдалася з будь-якої причини, ви не хотіли б позбутися своїх оригіналів): rm -- *.flacвидаляли б кожен FLAC у робочому каталозі.
зол

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