Чи може звук Apple Lossless перетворити на FLAC без втрати вірності?


19

Чи можна конвертувати аудіофайли Apple Lossless (ALAC) у аудіофайли FLAC без втрати вірності?


2
коротка відповідь "так" (як сказав Слхк). питання полягає в тому, чи шукаєте ви інструмент для цього чи запитуєте, чи можете ви без втрат перетворити формат без втрат в інший формат без втрат?
Подорожник Geek

Відповіді:


37

Так, враховуючи, що обидва є математично без втрат, конверсія теж без втрат.

Причиною цього є те, що при декодуванні файлу 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


2
На основі superuser.com/a/277358/45914 ви можете зробити наступне для перетворення цілого каталогу: for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done Це працює в Linux, але також, наприклад, у Git bash для Windows.
Рууд

1
Перетворення за допомогою ffmpeg, як сказав @RuudvA, працює, але дає мені повідомлення, яке говорить: *** 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
Блокування Duncan

XLD - ще один хороший для OSX.
Арран Кадбар-Белл

3

Для Windows CMD ви можете зробити.

@for /R %%x in (*.m4a) do ffmpeg -i "%%x" -acodec flac "%%~dpnx.flac"

(Пакетний сценарій)

(Це зробить рекурсію (Кожна папка та нижче, де вона запущена))


1

Якщо у вас Mac (оскільки у вас є файли ALAC), ви також можете використовувати програмне забезпечення з відкритим кодом Max як приємний інтерфейс для перетворення з ALAC / FLAC або багатьох інших форматів.


2
Ще один приємний - XLD.
Натаніел

1

для 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" }

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