¿Convertir sin dolor FLAC a ALAC en Windows?


10

Me pregunto si alguien tiene un flujo de trabajo limpio e indoloro para transcodificar archivos FLAC sin pérdida a su ALAC equivalente. Se supone que es una conversión perfecta, lo que significa que no debería ser muy difícil, pero ... lo es.

¿Por qué haría esto? (Antes de que la gente del sistema operativo me coma vivo) Principalmente, porque una aplicación de audio que uso (Serato Scratch Live) no es compatible con FLAC, y a pesar de la constante presión de los usuarios durante los últimos cinco (!) Años, lo más probable es que no mientras. Sin embargo, piratearon juntos el apoyo de ALAC

Además, parece que hacer que iTunes reproduzca archivos FLAC (y los convierta correctamente para usar el espacio de manera eficiente en mi iPod) es prácticamente imposible.

El único inconveniente es que me gustaría preservar algunas metaetiquetas extrañas y poco convencionales (BPM y clave de canción) que sería un poco doloroso regenerar. No tengo nada en Windows o Linux

Gracias

Tom

Respuestas:


11

En Ubuntu, puede abrir una terminal, navegar al directorio en cuestión y hacer el siguiente ciclo de comando:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Convertirá todos los .flacarchivos en el directorio a .alacarchivos, haciéndolo de una manera perfecta.
  • ffmpegno viene empaquetado con Ubuntu, por lo que deberá instalarlo desde repos; sin embargo, no puedo decir con certeza que esto mantendrá la información de su etiqueta BPM.

Además, parece que hacer que iTunes reproduzca archivos FLAC (y los convierta correctamente para usar el espacio de manera eficiente en mi iPod) es prácticamente imposible.

Hay un programa llamado flukeformac que puede permitirle reproducir .flacarchivos en iTunes.
En cuanto a la conversión para un uso eficiente del iPod, el siguiente bucle de comandos hará el truco:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • Es posible que desee reemplazar --preset fast extremecon una opción de tasa de bits más baja
    ( más información sobre los lameajustes preestablecidos)

1
Una excelente respuesta integral. Gracias
Tom Corelis

Intenté usar la compilación estática de ffmpeg en Windows 10, puede convertir acodec alac pero no puede convertir vcodec h264 aunque h264 es un formato compatible enffmpeg --codecs
user1022209

6

Para Windows usando PowerShelly ffmpeg(basado en la respuesta @boehj):

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


4

Para los adictos a la línea de comandos (Windows):

He escrito un script de automatización para iTunes para Windows que importa por lotes todos los archivos FLAC de la carpeta dada y sus subcarpetas a iTunes en formato ALAC, preservando la metainformación clave como el álbum, el artista y el nombre de la canción. Requiere flac.exey metaflac.exey una pequeña utilidad de ayuda para la conversión de juego de caracteres. Puede descargar un paquete listo para usar que incluye esas dependencias (ver más abajo) o bifurcar mi proyecto en GitHub.

Para la historia completa, descarga binaria, limitaciones, etc., consulte la publicación de mi blog .


2

En Windows, puede abrir un símbolo del sistema y ejecutar los siguientes comandos para convertir los archivos FLAC a ALAC en el mismo directorio en una unidad diferente (la forma en que prefiero tenerlo) usando qaac, libFLACe iTunes:

  1. cambie el directorio de trabajo actual al directorio de origen que contiene sus archivos flac ( s:\musicse usa aquí como ejemplo)

  2. copie todas sus carpetas en el directorio de destino, incluidos los archivos de portada del álbum con los nombres de archivo ( folder.(jpg|png|gif)):

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

    La opción /Eincluye los directorios vacíos. Si no quiere que se copien, use la /Sopción.

  3. use qaacpara convertir todos los archivos FLAC en ese directorio a archivos ALAC en la otra unidad de una manera 'poco perfecta' y manteniendo la mayoría de los metadatos originales:

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

    Al insertar IF NOT EXIST "d:%~pI%~nI.m4a"el comando anterior, DOse omitirá la conversión de archivos que ya existen en el directorio de destino.

Tenga en cuenta que

  • los nombres de directorio en la unidad de origen ( s:) y de destino ( d:) deben ser los mismos (de lo contrario, debe jugar con las variables en el FORcomando, qaacno creará los directorios por usted)
  • necesita cambiar al directorio de origen ( s:\musicen el ejemplo anterior) para que los comandos funcionen
  • el directorio de destino ( d:\musicen el ejemplo anterior) debe estar vacío para evitar sobrescribir archivos
  • puede usar el SUBSTcomando para asignar un directorio a una letra de unidad si desea crear los archivos ALAC en la misma unidad
  • deberá ejecutar al menos la versión 2.57 qaacy utilizar el binario apropiado para su versión de Windows (32 bits o 64 bits)
  • qaacdebe estar en su PATHvariable de Windows o deberá incluir la ruta completa a su binario en el FORcomando anterior
  • qaac necesita iTunes o QuickTime instalado para funcionar
  • qaacnecesita una copia coincidente de la libFLACDLL en su directorio para leer archivos FLAC, puede encontrarla en el sitio de rarewares
  • iDevices no puede manejar archivos con frecuencias de muestreo superiores a 48,000 kHz y tamaños de muestra superiores a 24 bits (a principios de 2016). iTunes no le permitirá copiar estos archivos a su dispositivo, advirtiéndole que la pista "no se copió porque el" dispositivo "no admite la frecuencia de muestreo. Llamar qaaccon las opciones --rate 48000 --bits-per-sample 24solucionará esto, pero asegúrese de usar solo estas opciones en los archivos de alta definición reales, porque de lo contrario, hinchará todos sus archivos sin ganar nada.
  • a los archivos ALAC les faltará la información de volumen en la que Apple iTunes e iDevices confían para su funcionalidad de comprobación de sonido (ajusta el volumen de reproducción de la canción al mismo nivel). La información se puede agregar a los archivos usando iTunes (solo parece almacenar información de volumen en su biblioteca), beaTunes (software comercial), iVolume (software comercial) y una serie de otras herramientas en diferentes plataformas
  • este no es un flujo de trabajo de sincronización: los comandos anteriores que se ejecutan por segunda vez agregarán archivos FLAC que haya agregado al directorio de origen a su directorio de destino, pero no mantendrán sincronizados dos directorios de su música (los archivos renombrados resultarán en archivos ALAC duplicados con diferentes nombres, los archivos eliminados no se eliminarán de su directorio de destino, si está utilizando IF NOT EXISTcambios de metadatos ya que la última ejecución no se reflejará en los archivos ALAC)

¡Bienvenido a Super User! Gracias por publicar una primera respuesta tan completa. :)
Excellll

1

FFmpeg debería poder hacerlo; depende de usted encontrar los comandos correctos para hacerlo.


Esta es una publicación antigua, pero en realidad es más un comentario que una solución. Por favor considere expandir la respuesta. Gracias.
Fixer1234


1

Hay varias formas de convertir FLAC a ALAC.

  • En Windows, puede usar foobar2000 y el paquete de codificador .
  • En Windows, Linux y Mac, puede usar PowerShell flac, y 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

Consulte mi publicación de blog para obtener más detalles: Convertir archivos de música de FLAC a ALAC


0

MediaMonkey también puede hacer esto, pero solo conservará la etiqueta BPM (no estoy al tanto de que Song Key sea una etiqueta estandarizada en estos formatos).

nota: deberá comprar el 'MediaMonkey Codec Pack' para la codificación ALAC.


0

Estoy usando FooBar e iTunesEncode para su convertidor.

  1. Obtén iTunesEncode
  2. Vaya a FooBar> Seleccione todo en su lista de reproducción FLAC> Haga clic derecho - Convertir
  3. Lado derecho> Formatos> Personalizado

    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. Rellene otros parámetros para convertir> Guardar la configuración (opcional)> Convertir
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.