Чи можна конвертувати аудіофайли Apple Lossless (ALAC) у аудіофайли FLAC без втрати вірності?
Чи можна конвертувати аудіофайли Apple Lossless (ALAC) у аудіофайли FLAC без втрати вірності?
Відповіді:
Так, враховуючи, що обидва є математично без втрат, конверсія теж без втрат.
Причиною цього є те, що при декодуванні файлу FLAC / ALAC сигнал завжди може бути реконструйований у його початковий вигляд. Таким чином, вони еквівалентні, і ви не повинні відчувати втрат при перекодуванні - навіть при перекодуванні кілька разів.
Єдиною помилкою, яку я міг уявити, буде арифметична, наприклад, через обмежену точність з плаваючою точкою в обчисленнях. Я не думаю, що це стосується ні FLAC, ні ALAC.
Якщо ви використовуєте лише «психоакустично» кодек без втрат, це неможливо. Без втрати в психоакустичному сенсі означало б, що ви не можете відрізнити оригінальну та стиснуту версію, але вони сильно відрізняються один від одного. MP3 або MPEG-4 AAC використовують для цього різні психоакустичні методи. Таким чином, при перекодуванні оригінальну версію неможливо відновити, і ви відчуєте втрату якості.
Якщо ви хочете перетворити ALAC в FLAC, ffmpeg
це буде хорошим варіантом, оскільки він безкоштовний і доступний майже для кожної платформи.
ffmpeg -i audio.m4a -c:a flac audio.flac
FFmpeg прочитає ALAC без проблем. Для систем * nix також існує сценарій під назвою Перетворити в FLAC, що полегшує весь процес. З Bash ви також можете просто перетворити всі файли в один каталог:
for f in *.m4a; do ffmpeg -i "$f" -c:a flac "${f%.m4a}.flac"; done
Примітка. Якщо ви отримуєте повідомлення про ffmpeg
застаріле ставлення, це насправді не так - це все ще активно розроблена програма. Однак сервісні пакети Ubuntu просто вирішили перейти на вилку Libav FFmpeg і таким чином поставити вас avconv
замість цього ffmpeg
. Отже, версія, ffmpeg
наявна на Ubuntu, застаріла. Ви можете отримати останній, завантаживши натомість статичну збірку або склавши її самостійно. Детальніше читайте далі: Хто може сказати мені різницю та співвідношення між ffmpeg, libav та avconv
for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done
Це працює в Linux, але також, наприклад, у Git bash для Windows.
*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Для того, щоб зробити це за допомогою aconv, зробіть це замість цього:for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
для Windows в Powershell (за допомогою ffmpeg) ви можете зробити це для перетворення alac у flac:
Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }
і, навпаки, зробіть це, щоб перетворити на alac
Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }