Sem dor converter FLAC para ALAC no Windows?


10

Gostaria de saber se alguém tem um fluxo de trabalho limpo e indolor para transcodificar sem perdas arquivos FLAC para o seu ALAC equivalente? Supõe-se que seja uma conversão perfeita, o que significa que não deve ser muito difícil, mas ... é.

Por que eu faria isso? (Antes que o pessoal do SO me coma vivo) Principalmente, porque um aplicativo de áudio que eu uso (Serato Scratch Live) não suporta FLAC e, apesar do constante estímulo de usuários nos últimos cinco (!) Anos, provavelmente não será por um enquanto. Eles, no entanto, juntaram o suporte do ALAC

Além disso, parece que conseguir o iTunes para reproduzir arquivos FLAC (e convertê-los adequadamente para usar espaço eficientemente no meu iPod) é praticamente impossível.

O único problema é que eu gostaria de preservar algumas meta tags estranhas e incomuns (BPM e chave da música) que seriam um pouco dolorosas de regenerar. Estou afim de qualquer coisa no Windows ou Linux

obrigado

Tom

Respostas:


10

No Ubuntu, você pode abrir um terminal, navegar para o diretório em questão e executar o seguinte comando:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done

Isso converterá todos os arquivos .flac desse diretório em arquivos .alac e o fará de uma maneira "um pouco perfeita".

ffmpeg não vem empacotado com o Ubuntu, então você precisa instalá-lo nos repositórios.

Não posso dizer com certeza, no entanto, que isso manterá suas informações de tag do BPM.

Além disso, parece que conseguir o iTunes para reproduzir arquivos FLAC (e convertê-los adequadamente para usar espaço eficientemente no meu iPod) é praticamente impossível.

Existe um programa chamado flukeformac que pode permitir a reprodução de arquivos .flac no iTunes.

Quanto à conversão para um uso eficiente do iPod, o seguinte loop de comando fará o truque:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done

Aqui, você pode substituir a --preset fast extremeopção por outra opção de taxa de bits mais baixa. Mais informações sobre lamepredefinições podem ser encontradas aqui .


1
Uma resposta excelente e abrangente. Obrigado
Tom Corelis

Eu tentei usar a compilação estática do ffmpeg no Windows 10, ele pode converter o acodec alac, mas não pode converter o vcodec h264, embora o h264 seja um formato compatível emffmpeg --codecs
user1022209

6

Com base na resposta boehj, apenas para Windows usando PowerShelle ffmpeg:

ls -recurse -include *.flac | %{C:\path_to_ffmpeg\ffmpeg.exe -i $_.FullName -acodec alac ($_.DirectoryName+"\\"+$_.BaseName+'.m4a')}


4

Para os viciados em linha de comando (Windows) por aí:

Eu escrevi um script de automação para o iTunes para Windows que importa em lote todos os arquivos FLAC da pasta fornecida e suas subpastas para o iTunes no formato ALAC, preservando as principais metainformações, como nome do álbum, artista e música. Ela exige flac.exee metaflac.exee um pequeno utilitário auxiliar para conversão de charset. Você pode baixar um pacote pronto para uso que inclui essas dependências (veja abaixo) ou dividir meu projeto no GitHub.

Para a história completa, download binário, limitações, etc., consulte minha postagem no blog .


1

FFmpeg deve ser capaz de fazê-lo; cabe a você encontrar os comandos corretos para fazer isso.


Este é um post antigo, mas é realmente mais um comentário do que uma solução. Por favor, considere expandir a resposta. Obrigado.
fixer1234

1

No Windows você pode abrir um prompt de comando e execute os seguintes comandos para converter os arquivos FLAC para ALAC no mesmo diretório em uma unidade diferente (do jeito que eu prefiro tê-lo), utilizando qaac, libFLACe iTunes:

  1. altere o diretório de trabalho atual para o diretório de origem que contém seus arquivos flac ( s:\musicé usado aqui como exemplo)

  2. copie todas as suas pastas para o diretório de destino, incluindo os arquivos de capa do álbum com os nomes de arquivo ( folder.(jpg|png|gif)):

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

    A opção /Einclui os diretórios vazios; se você não quiser que eles sejam copiados, use a /Sopção

  3. use qaacpara converter todos os arquivos FLAC nesse diretório em arquivos ALAC na outra unidade de uma maneira 'pouco perfeita' e mantendo a maioria dos metadados originais:

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

    Inserir IF NOT EXIST "d:%~pI%~nI.m4a"o comando acima depois DOpulará a conversão de arquivos que já existem no diretório de destino.

Por favor note que

  • os nomes dos diretórios na unidade de origem ( s:) e destino ( d:) precisam ser os mesmos (caso contrário, você precisa mexer nas variáveis ​​do FORcomando, qaacnão criará os diretórios para você)
  • você precisa mudar para o diretório de origem ( s:\musicno exemplo acima) para que os comandos funcionem
  • o diretório de destino ( d:\musicno exemplo acima) deve estar vazio para evitar a substituição de arquivos
  • você pode usar o SUBSTcomando para mapear um diretório para uma letra de unidade, se desejar criar os arquivos ALAC na mesma unidade
  • você precisará executar pelo menos a versão 2.57 qaace usar o binário apropriado para a sua versão do Windows (32 bits ou 64 bits)
  • qaacprecisa estar na sua PATHvariável do Windows ou você precisará incluir o caminho completo para o seu binário no FORcomando acima
  • qaac precisa do iTunes ou QuickTime instalado para funcionar
  • qaacprecisa de uma cópia correspondente da libFLACDLL em seu diretório para ler arquivos FLAC, você pode encontrá-la no site rarewares
  • O iDevices não pode manipular arquivos com taxas de amostragem acima de 48.000 kHz e tamanhos de amostra acima de 24 bits (no início de 2016). O iTunes não permite que você copie esses arquivos no seu dispositivo, avisando que a faixa "não foi copiada porque a taxa de amostragem não é suportada pelo" iDevice. A chamada qaaccom as opções --rate 48000 --bits-per-sample 24corrigirá isso, mas certifique-se de usar essas opções apenas nos arquivos de alta definição, pois caso contrário você inchará todos os seus arquivos sem ganhar nada!
  • os arquivos ALAC perderão as informações de volume das quais o Apple iTunes e o iDevices se baseiam na funcionalidade Sound Check (ajusta o volume de reprodução da música no mesmo nível). As informações podem ser adicionadas aos arquivos usando o iTunes (parece armazenar apenas informações de volume em sua biblioteca), beaTunes (software comercial), iVolume (software comercial) e várias outras ferramentas em diferentes plataformas
  • este não é um fluxo de trabalho de sincronização: os comandos acima, executados uma segunda vez, adicionarão os arquivos FLAC que você adicionou ao diretório de origem ao diretório de destino, mas não manterão dois diretórios da sua música sincronizados (arquivos renomeados resultarão em arquivos ALAC duplicados com nomes diferentes, os arquivos excluídos não serão excluídos do diretório de destino, se você estiver usando IF NOT EXISTalterações de metadados, pois a última execução não será refletida nos arquivos ALAC)

Indolor e grátis.


Bem-vindo ao Super Usuário! Obrigado por postar uma primeira resposta tão abrangente. :)
Excellll


1

Existem várias maneiras de converter flac para alac. No Windows, você pode usar o foobar2000 e o pacote do codificador . No Windows, Linux e Mac, você pode usar o PowerShell, flac e 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

Verifique minha postagem no blog para obter mais detalhes: Converta arquivos de música de FLAC para ALAC


0

Estou usando o método gratuito e fácil, usando apenas FooBar e iTunesEncode para o seu conversor.

primeiro você precisa obter o iTunesEncode

então vá ao FooBar, selecione tudo na sua lista de reprodução flac -> clique direito -> converter

Olhe para o lado direito -> Formatos -> Clique nele -> Selecionar Personalizado

E personalize-o desta maneira:

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

É isso aí, preencha outros parâmetros para converter -> salvar configuração (opcional)

E pressione Converter.


0

O MediaMonkey também pode fazer isso, mas preservará apenas a tag BPM (não sei se o Song Key é uma tag padronizada nesses formatos).

nota: você precisará adquirir o 'MediaMonkey Codec Pack' para codificação ALAC.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.