¿Se puede convertir el audio Apple Lossless a FLAC sin pérdida de fidelidad?

19

¿Se pueden convertir los archivos de audio Apple Lossless (ALAC) a archivos de audio FLAC sin pérdida de fidelidad?

Kev
fuente
2
respuesta corta 'sí' (como dijo slhck). la pregunta es, ¿está buscando una herramienta para hacer esto o pregunta si puede convertir un formato sin pérdida, sin pérdida a otro formato sin pérdida?
Journeyman Geek

Respuestas:

37

Sí, dado que ambos son matemáticamente sin pérdidas, la conversión tampoco tiene pérdidas.

La razón de esto es que la señal siempre se puede reconstruir a su forma original cuando se decodifica un archivo FLAC / ALAC. Por lo tanto, son equivalentes y no debería experimentar pérdida al transcodificar, incluso cuando transcodifica varias veces.

El único error que podría imaginar sería aritmético, por ejemplo, a través de una precisión limitada de coma flotante en los cálculos. No creo que esto se aplique ni a FLAC ni a ALAC.

En caso de que solo use un códec sin pérdidas "psicoacústicamente", esto no es posible. Sin pérdida en un sentido psicoacústico significaría que no se puede distinguir la versión original y la versión comprimida, sin embargo, son muy diferentes entre sí. MP3 o MPEG-4 AAC utilizan varias técnicas psicoacústicas para lograr esto. Por lo tanto, al transcodificar, la versión original no se puede reconstruir y experimentaría una pérdida de calidad.


En caso de que desee convertir ALAC a FLAC, ffmpegsería una buena opción, ya que es gratis y está disponible para casi todas las plataformas.

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

FFmpeg leerá ALAC sin problemas. Para los sistemas * nix, también hay un script llamado Convert to FLAC que facilita todo el proceso. Con Bash también puedes convertir todos los archivos en un solo directorio:

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

Nota: Si recibe un mensaje acerca de ffmpegser desaprobado, este no es el caso, sigue siendo un programa desarrollado activamente. Sin embargo, los mantenedores de paquetes de Ubuntu simplemente decidieron cambiar a la bifurcación Libav de FFmpeg y, por lo tanto, proporcionarle en avconvlugar de ffmpeg. La versión de ffmpeg disponible en Ubuntu está por lo tanto desactualizada. Puede obtener una reciente descargando una compilación estática o compilándola usted mismo. Siga leyendo para obtener más información: ¿Quién puede decirme la diferencia y la relación entre ffmpeg, libav y avconv?

slhck
fuente
2
Basado en superuser.com/a/277358/45914 , puede hacer lo siguiente para convertir un directorio completo: for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done Esto funciona en Linux, pero también en un Git bash en Windows, por ejemplo.
Ruud
1
La conversión usando ffmpeg, como dijo @RuudvA, funciona pero me da un mensaje que dice: *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. Para hacer esto usando aconv, haga esto en su lugar: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
Duncan Lock
XLD es otro buen para OSX.
Arran Cudbard-Bell
3

Para Windows CMD puedes hacerlo.

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

(Script por lotes)

(Esto hará Recursion (cada carpeta y menos desde donde se ejecuta))

The009
fuente
1

Si tiene una Mac (ya que tiene archivos ALAC), también puede usar el software de código abierto Max como una interfaz agradable para hacer la conversión desde y hacia ALAC / FLAC o muchos otros formatos.

Alex
fuente
2
Otro buen es XLD.
Nathaniel
1

para Windows en Powershell (usando ffmpeg) puede hacer esto para convertir alac a flac:

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

y viceversa, haga esto para convertir a alac

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

BoteRock
fuente