O áudio Apple Lossless pode ser convertido em FLAC sem perda de fidelidade?

19

Os arquivos de áudio Apple Lossless (ALAC) podem ser convertidos em arquivos de áudio FLAC sem perda de fidelidade?

Kev
fonte
2
resposta curta 'sim' (como disse slhck). A questão é: você está procurando uma ferramenta para fazer isso ou está perguntando se pode converter um formato sem perdas, sem perdas para outro formato sem perdas?
Journeyman Geek

Respostas:

37

Sim, dado que ambos são matematicamente sem perdas, a conversão também é sem perdas.

A razão para isso é que o sinal sempre pode ser reconstruído para sua forma original quando um arquivo FLAC / ALAC é decodificado. Portanto, eles são equivalentes e você não deve perder perdas ao transcodificar - mesmo ao transcodificar várias vezes.

O único erro que eu poderia imaginar seria aritmético, por exemplo, através da precisão limitada do ponto flutuante nos cálculos. Acho que isso não se aplica ao FLAC ou ao ALAC.

Caso você use apenas um codec sem perdas "psicoacústica", isso não é possível. Sem perdas, no sentido psicoacústico, significa que você não pode distinguir a versão original e a versão compactada, mas elas são muito diferentes uma da outra. MP3 ou MPEG-4 AAC usam várias técnicas psicoacústicas para conseguir isso. Assim, ao transcodificar, a versão original não pode ser reconstruída e você experimentará uma perda de qualidade.


Caso você queira converter ALAC para FLAC, ffmpegseria uma boa opção, pois é gratuita e disponível para quase todas as plataformas.

ffmpeg -i audio.m4a -c:a flac audio.flac

O FFmpeg lerá o ALAC sem problemas. Para sistemas * nix, também existe um script chamado Convert to FLAC, que facilita todo o processo. Com o Bash, você pode simplesmente converter todos os arquivos em um único diretório:

for f in *.m4a; do ffmpeg -i "$f" -c:a flac "${f%.m4a}.flac"; done

Nota: Se você receber uma mensagem sobre ffmpega descontinuação, esse não é realmente o caso - ainda é um programa desenvolvido ativamente. No entanto, os mantenedores de pacotes do Ubuntu decidiram mudar para o fork do Libav do FFmpeg e, assim, fornecer a você em avconvvez de ffmpeg. A versão ffmpeg disponível no Ubuntu está desatualizada. Você pode obter uma versão recente baixando uma compilação estática ou compilando você mesmo. Continue lendo para obter mais informações: Quem pode me dizer a diferença e a relação entre ffmpeg, libav e avconv

slhck
fonte
2
Com base em superuser.com/a/277358/45914 , você pode fazer o seguinte para converter um diretório inteiro: for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done Isso funciona no Linux, mas também em uma festa do Git no Windows, por exemplo.
Ruud
1
Convertendo usando ffmpeg, como disse @RuudvA, funciona, mas dá-me uma mensagem que diz: *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. A fim de fazer isso usando aconv, fazer isso em vez disso: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
Duncan Bloqueio
XLD é outro bom para OSX.
Arran Cudbard-Bell
3

Para o Windows CMD, você pode fazer.

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

(Script em lote)

(Isso fará recursão (todas as pastas e abaixo de onde é executada))

The009
fonte
1

Se você possui um Mac (já que possui arquivos ALAC), também pode usar o software de código aberto Max como uma interface agradável para fazer a conversão de e para ALAC / FLAC ou muitos outros formatos.

Alex
fonte
2
Outro bom é XLD.
Nathaniel
1

para Windows no Powershell (usando ffmpeg), você pode fazer isso para converter alac para flac:

Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }

e, inversamente, faça isso para converter para alac

Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }

BoteRock
fonte