Безболезненно конвертировать FLAC в ALAC на Windows?

10

Мне интересно, есть ли у кого чистый, безболезненный рабочий процесс для преобразования файлов FLAC без потерь в их эквивалентный ALAC? Это должно быть немного идеальное преобразование, то есть это не должно быть очень сложно, но ... это так.

Зачем мне это делать? (До того, как ОС съели меня живьем) В основном потому, что используемое мной аудио приложение (Serato Scratch Live) не поддерживает FLAC, и, несмотря на постоянное подталкивание пользователей в течение последних пяти (!) Лет, скорее всего, не будет пока. Они, однако, взломали поддержку ALAC

Кроме того, может показаться, что заставить iTunes воспроизводить файлы FLAC (и должным образом конвертировать их для эффективного использования места на моем iPod) практически невозможно.

Единственный улов в том, что я хотел бы сохранить некоторые странные, необычные мета-теги (BPM и ключ песни), которые было бы немного больно восстанавливать. Я заболел чем-нибудь на Windows или Linux

Спасибо

Том

Том Корелис
источник

Ответы:

11

В Ubuntu вы можете открыть терминал, перейти к соответствующему каталогу и выполнить следующий цикл команд:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Преобразует все .flacфайлы в каталоге в .alacфайлы, делая это немного идеальным способом.
  • ffmpegне поставляется в комплекте с Ubuntu, поэтому вам нужно установить его из репозитория; тем не менее, я не могу точно сказать, что это сохранит информацию о вашем тэге BPM.

Кроме того, может показаться, что заставить iTunes воспроизводить файлы FLAC (и должным образом конвертировать их для эффективного использования места на моем iPod) практически невозможно.

Есть программа под названием flukeformac, которая может позволить вам воспроизводить .flacфайлы в iTunes.
Что касается преобразования для эффективного использования iPod, следующий командный цикл сделает свое дело:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • Возможно, вы захотите заменить --preset fast extremeна более низкую битрейт
    ( подробнее о lameпресетах)
boehj
источник
1
Отличный, исчерпывающий ответ. Спасибо
Том Корелис
Я попытался использовать статическую сборку ffmpeg в Windows 10, он может конвертировать acodec alac, но не может конвертировать vcodec h264, хотя h264 - поддерживаемый формат вffmpeg --codecs
user1022209
6

Для Windows, использующей PowerShellи ffmpeg(на основе ответа @boehj):

Ls -Recurse -Include *.flac | %{C:\path_to_ffmpeg\ffmpeg.exe -i $_.FullName -acodec alac ($_.DirectoryName+"\\"+$_.BaseName+'.m4a')}
Паулюс
источник
4

Для (Windows) командной строки наркоманов там:

Я написал скрипт автоматизации для iTunes для Windows, который пакетно импортирует все файлы FLAC из данной папки и ее подпапок в iTunes в формате ALAC, сохраняя ключевую мета-информацию, такую ​​как альбом, исполнитель и название песни. Требуется flac.exeи metaflac.exeи небольшая вспомогательная утилита для преобразования кодировки. Вы можете скачать готовый к использованию пакет, включающий эти зависимости (см. Ниже), или разложить мой проект на GitHub.

Полный текст статьи, бинарная загрузка, ограничения и т. Д. См. В моем блоге .

Дмитрий Лесков
источник
2

В Windows вы можете открыть командную строку и выполните следующие команды для преобразования файлов FLAC в ALAC в том же каталоге , на другой диск (путь я предпочитаю иметь его) , используя qaac, libFLACи ITunes:

  1. измените текущий рабочий каталог на исходный каталог, содержащий ваши файлы flac ( s:\musicздесь используется в качестве примера)

  2. скопируйте все свои папки в каталог назначения, включая файлы обложки альбома с именами файлов ( folder.(jpg|png|gif)):

    robocopy "s:\music" "d:\music" folder.jpg folder.png folder.gif /E

    Опция /Eвключает в себя пустые каталоги. Если вы не хотите, чтобы они были скопированы, используйте /Sопцию.

  3. используйте qaacдля «конвертирования» всех файлов FLAC в этом каталоге в файлы ALAC на другом диске с сохранением большей части исходных метаданных:

    FOR /R %I IN (*.flac) DO qaac64 -A --copy-artwork -o "d:%~pI%~nI.m4a" "%I"

    Вставка IF NOT EXIST "d:%~pI%~nI.m4a"в вышеупомянутую команду после DOпропустит конвертирование файлов, которые уже существуют в целевом каталоге.

Обратите внимание, что

  • имена каталогов на диске source ( s:) и destination ( d:) должны быть одинаковыми (в противном случае вам придется повозиться с переменными в FORкоманде, qaacне создавайте каталоги для вас)
  • вам нужно перейти в исходный каталог ( s:\musicв приведенном выше примере), чтобы команды работали
  • каталог назначения ( d:\musicв приведенном выше примере) должен быть пустым, чтобы избежать перезаписи файлов
  • Вы можете использовать SUBSTкоманду для сопоставления каталога с буквой диска, если вы хотите создать файлы ALAC на том же диске
  • вам придется запустить как минимум версию 2.57 из qaacи использовать соответствующий двоичный файл для вашей версии Windows (32-битной или 64-битной)
  • qaacдолжен быть в вашей PATHпеременной Windows, или вы должны будете включить полный путь к его двоичному файлу в FORкоманду выше
  • qaac для работы нужен iTunes или QuickTime
  • qaacнуждается в комбинационной копию libFLACDLL в своей директории для чтения FLAC файлов, вы можете найти его на rarewares сайте
  • iDevices не может обрабатывать файлы с частотой дискретизации выше 48 000 кГц и размерами дискретизации выше 24 бит (в начале 2016 года). iTunes не позволит вам скопировать эти файлы на ваше устройство, предупреждая, что дорожка «не была скопирована, поскольку« iDevice »не поддерживает частоту дискретизации. Вызов qaacс --rate 48000 --bits-per-sample 24этими опциями исправит это, но убедитесь, что вы используете эти опции только для реальных файлов высокой четкости, потому что в противном случае вы будете раздувать все свои файлы, ничего не получая!
  • в файлах ALAC будет отсутствовать информация о громкости, на которую Apple iTunes и iDevices полагаются для своей функции проверки звука (регулирует громкость воспроизведения песни до того же уровня). Информацию можно добавлять в файлы с помощью iTunes (кажется, что он хранит только объемную информацию в своей библиотеке), beaTunes (коммерческое программное обеспечение), iVolume (коммерческое программное обеспечение) и рядом других инструментов на разных платформах.
  • это не рабочий процесс синхронизации: вышеприведенные команды, запущенные во второй раз, добавят FLAC-файлы, которые вы добавили в исходный каталог, в целевой каталог, но не будут синхронизировать два каталога вашей музыки (переименованные файлы приведут к дублированные файлы ALAC с разными именами, удаленные файлы не будут удалены из целевого каталога, если вы используете IF NOT EXISTизменения метаданных, так как последний запуск не будет отражен в файлах ALAC)
Оливер
источник
Добро пожаловать в Супер пользователя! Спасибо за размещение такого исчерпывающего первого ответа. :)
Excellll
1

FFmpeg должен уметь это делать; это зависит от вас, чтобы найти правильные команды для этого.

Hello71
источник
Это древний пост, но на самом деле это скорее комментарий, чем решение. Пожалуйста, подумайте над расширением ответа. Спасибо.
fixer1234
1

Я продолжал задавать себе подобные вопросы для разных форматов, поэтому я сделал https://www.blisshq.com/music-library-management-blog/2017/06/20/matrix-free-audio-file-converters/

На этой странице написано ... foobar2000 . Так что все зависит от того, что вы подразумеваете под «безболезненно» - это бесплатно, как в пиве.

Дэн Гравелл
источник
1

Есть несколько способов конвертировать FLAC в ALAC.

  • В Windows вы можете использовать foobar2000 и Encoder Pack .
  • В Windows, Linux и Mac вы можете использовать PowerShell flacи ffmpeg.

    $folder = "d:\demo"
    
    # Convert flac to wav
    Get-ChildItem -Recurse "$folder\*.flac" | ForEach-Object {
      & C:\tools\flac.exe -d --force --silent $_.FullName
    }
    
    # Convert wav to alac
    Get-ChildItem -Recurse "$folder\*.wav" | ForEach-Object {
      $filename = [System.IO.Path]::ChangeExtension($_.FullName, ".m4a")
      & C:\tools\ffmpeg.exe -hide_banner -loglevel panic -i $_.FullName -acodec alac -sample_fmt s16p $fileName
    }
    
    # Remove wav and flac file
    Get-ChildItem -Recurse "$folder\*.wav" | Remove-Item
    Get-ChildItem -Recurse "$folder\*.flac" | Remove-Item

Проверьте мой блог для получения более подробной информации: конвертировать музыкальные файлы из FLAC в ALAC

meziantou
источник
0

MediaMonkey также может сделать это, но он сохранит только тег BPM (я не знаю, чтобы Song Key был стандартизированным тегом для этих форматов).

Примечание. Для кодирования ALAC вам необходимо приобрести пакет кодеков MediaMonkey.

Ржавая Обезьяна
источник
0

Я использую FooBar и iTunesEncode для его конвертера.

  1. Получить iTunesEncode
  2. Перейдите в FooBar> Выбрать все в вашем плейлисте FLAC> Щелкните правой кнопкой мыши - Convert
  3. Правая сторона> Форматы> Пользовательский

    Encode Tool : path to iTunesEncode.exe
    Extension : m4a 
    Parameters : -d -e "Lossless Encoder" -a "%artist%" -l "%album%" -t "%title%" -g "%genre%" -y %date% -n %tracknumber% -i %s -o %d
    Format is: lossless
    next propery : 24
    
    DisplayInfo example :
    "Encoder name" - iTunes
    "Bitrate" - 1000
    "Setting" - Apple Lossless
  4. Заполните другие параметры для преобразования> Сохранить конфигурацию (необязательно)> Преобразовать
CND
источник