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 є незворотним (за межами відновлення криміналістичних даних), тому будьте обережні, використовуючи його.