Pregunta:
¿Conversión por lotes gratuita de FLAC a Apple Lossless (ALAC)?
sorin
2011-04-07 11:43:55 UTC
view on stackexchange narkive permalink

Estoy buscando una herramienta gratuita que me permita convertir grandes cantidades de archivos FLAC a ALAC (Apple Lossless Audio Codec) mientras conserva la metainformación y, opcionalmente, agrega nueva información de CDDB o fuentes similares.

En este momento estoy más interesado en una utilidad de Windows, pero puedes recomendarme las de OS X. Utilice diferentes respuestas para diferentes herramientas.

Ocho respuestas:
#1
+20
boehj
2011-04-08 07:01:25 UTC
view on stackexchange narkive permalink

Si está satisfecho con el uso de la Terminal, puede probar el siguiente ciclo de comando:

  for f in * .flac; hacer ffmpeg -i "$ f" -vf "crop = ((in_w / 2) * 2): ((in_h / 2) * 2)" -c: a alac "$ {f% .flac} .m4a"; done  

Esto simplemente recorrerá todos los archivos .flac que se encuentran en el directorio actual y los convertirá todos a .alac hasta que estén listos. Puedo confirmar que esto funciona en Linux, donde ffmpeg está disponible gratuitamente en los repositorios. Para OSX, puede instalar ffmpeg a través de homebrew, y también hay compilaciones estáticas para Windows, OSX y Linux en el sitio web de ffmpeg.

Este preservará los metadatos, pero la forma en que M4A almacena las imágenes de cobertura es fundamentalmente diferente de la forma en que FLAC (y la mayoría de los otros formatos de audio) lo hacen. Desafortunadamente, FFmpeg actualmente no puede manejar esto. Afortunadamente, puede extraer la portada como una imagen jpeg en el mismo paso que transcodifica el audio, y luego usar otra herramienta de línea de comandos (AtomicParsley) para fusionar la portada en el M4A.

  ffmpeg -i input.flac -vf "crop = ((in_w / 2) * 2): ((in_h / 2) * 2)" -c: a alac output.m4a cover.jpg AtomicParsley output.m4a --artwork cover.jpg --overWrite  

Esto se puede poner de manera similar en un bucle for; los && s significan que el siguiente comando solo se ejecutará si el comando anterior tiene éxito.

  for f in * .flac; hacer ffmpeg -i "$ f" -vf "crop = ((in_w / 2) * 2): ((in_h / 2) * 2)" -c: a alac "$ {f /% flac / m4a}" " $ {f /% flac / jpg} "&& \ AtomicParsley" $ {f /% flac / m4a} "--artwork" $ {f /% flac / jpg} "--overWrite && \ rm" $ {f /% flac / jpg} "; hecho  
El siempre útil `ffmpeg`.
En Windows, haga lo siguiente: para% f en (* .flac), haga ffmpeg.exe -i "% f" -acodec alac "% ~ nf.m4a"
Puedo confirmar que esto funcionó para mí (OS X 10.8.2), usando `brew install ffmpeg`. Instaló las dependencias `texi2html`,` yasm`, `x264`,` faac`, `lame` y` xvid`. Todo tardó unos 10 minutos en instalarse.
Solo agregaría que -vn (no manejar video0 a veces es útil si el .flac tiene un mjpeg en la transmisión. Con suerte, Apple iTunes puede obtener la carátula del álbum por usted o puede fusionarla usted mismo desde otra fuente.
#2
+7
David Budiac
2011-04-07 19:27:35 UTC
view on stackexchange narkive permalink

X Lossless Decoder (XLD) es una excelente herramienta de conversión por lotes y copia sin pérdidas perfecta para Mac.

He escuchado cosas maravillosas sobre cómo obtener copias sin pérdida perfectas usando Copia de audio exacta (EAC) en Windows, aunque no estoy seguro de que sea compatible con la conversión.

Gran fan de XLD. Lo he estado usando durante años para mover conciertos de Phish a mi biblioteca de iTunes.
¿Es posible ir directamente de flac a alac con xld? parece que primero tienes que ir a través de wav / aiff
no importa ... viene con una interfaz gráfica de usuario y, de hecho, puede transcodificar directamente a archivos ALAC m4a
#3
+5
Kariem
2012-12-13 15:39:09 UTC
view on stackexchange narkive permalink

si desea convertir todo el archivo flac en carpetas y subcarpetas, agregue de forma recursiva la / r al comando de bucle for así:

  for / r %% a in (".flac") do ffmpeg -i "%% a" -acodec alac "%% a.m4a" -map_metadata input.flac: output.m4a  

El único problema que tengo con esto es que los nombres de archivo vienen como

  output.flac.m4a  

No tengo idea de cómo solucionarlo al final, pero por lo que he visto, no t DAÑAR el archivo para que sea nombrado de esta manera.

EDITAR: Reemplazando el código de salida con

  "%% ~ na.m4a"  

para que el código completo se vea como

  for / r %% a in (".flac") do ffmpeg -i "%% a" -acodec alac "%% ~ na .m4a "-map_metadata input.flac: output.m4a  

Hará que los nombres de archivos se vean como

output.m4a 

PERO guardará las copias convertidas en la RAÍZ de la carpeta que ha ejecutado el comando. Para aclarar, el archivo flac se encuentra en

  C: \ music \ foo \ bar.flac  

el archivo alac se guardará en

 C:\music\bar.m4a 
This example does convert, but saves the output in the folder you start from, not the folder the original file is in. You also might want to make your final code the first example. You can get to the point first, then explain later if you want.
#4
+4
Ilya
2012-11-07 04:50:59 UTC
view on stackexchange narkive permalink

Aquí está la variante de Windows de la respuesta de boehj:

  for% f in (* .flac) do ffmpeg.exe -i "% f" -acodec alac "% ~ nf.m4a"  
No puedo comentar sobre la publicación de Ilya, así que tengo que dejar otra respuesta ... la variante para Powershell en lugar de cmd para Windows sería: `Get-ChildItem. -filtro * .flac | Para cada objeto {ffmpeg -i "$ _" -acodec alac "$ ($ _. Nombre base) .m4a"} `
#5
+2
Rory Alsop
2011-04-07 15:38:12 UTC
view on stackexchange narkive permalink

Existe una amplia gama de aplicaciones para Windows y para OSX -

puede probar Audio Transcoder

o Max

o una variedad de otros ( google encontrará muchos)

O puede convertir FLAC a WAV y luego dejar que iTunes haga el resto

#6
+2
Friend Of George
2011-04-07 18:02:38 UTC
view on stackexchange narkive permalink

XRECODE hace un gran trabajo de conversión por lotes. Estoy bastante seguro de que es solo una interfaz para ffmpeg. Mantiene sus etiquetas e imágenes insertadas (para la mayoría de los formatos; consulte esta respuesta para conocer las excepciones) durante la conversión.

La versión actual tiene una prueba completamente funcional que no caduca (completa con pantalla de advertencia), pero puede descargar la versión anterior de forma gratuita.

No he probado la conversión a ALAC, pero hace un gran trabajo en la conversión de FLAC, MP3, WMA y OGG.

#7
+2
Sun W Kim
2012-11-24 12:10:52 UTC
view on stackexchange narkive permalink

Fui al sitio de FFmpeg para descargar el último ffmpeg Win32 del 20/11/2012.

Es posible que necesite 7zip para extraer los EXE y colocarlos en una ruta reconocida.

Aún no puedo averiguar cómo ejecutar de forma recursiva el comando. Intenté usar un antiguo comando de DOS llamado sweep y también forfiles -s -c pero ninguno funciona correctamente.

Terminé generando una lista de archivos flac incluida su ruta usando este comando de DOS:

  m: \ flac> dir * .flac / b / s > flac_convert.bat  

Usé la función macro en NotePad ++ (freeware) para cambiar la línea

de:

  M: \ flac \ Art Of Noise \ Moments In Love .flac  

a:

  ffmpeg -i "M: \ flac \ Art Of Noise \ Moments In Love.flac" -acodec alac "M: \ flac \ Art Of Noise \ Moments In Love.m4a " 

Una vez que usé la macro para cambiar cada línea, guardé y ejecuté flac_convert.bat

La solución no es elegante, pero funciona utilizando solo herramientas gratuitas.

#8
+1
Sun
2014-11-19 23:29:59 UTC
view on stackexchange narkive permalink

Para los usuarios por lotes de Windows DOS, esto convertirá todos los FLAC del directorio actual y se repetirá para guardar la salida en el mismo directorio en el que está el FLAC. Puse el echo en la línea de comando puede probar la salida antes de comenzar a procesar. Elimine el echo si está satisfecho con los resultados.

para / r "." % x en (* .flac) hace echo ffmpeg -i "% ~ fx" -acodec alac "% ~ dpnx.m4a"

  • para / r recorrerá los archivos (subcarpetas recurrentes)
  • . es la ruta actual, pero puede especificar algo específico como c: \ flac
  • % x es su parámetro reemplazable. En archivos por lotes, agregue otro% para que sea %% x.
  • * .flac solo buscará archivos con la extensión flac en los subdirectorios actual y
  • lo que viene después de do es el comando real que se ejecutará
  • % ~ fx es una extensión de parámetro que expandirá el % x variable a un nombre de ruta completamente calificado (por ejemplo, c:\flac\song.flac)
  • % ~ dpnx es otro parámetro extensión que se combina con 1) muestra solo la letra de la unidad, muestra la ruta solo con barra invertida al final y, finalmente, un nombre de archivo sin extensión de archivo. En nuestro ejemplo, c: \ flac \ song.flac ahora se convierte en c:\flac\song
  • finalmente agregamos .m4a manualmente para indicar la extensión de salida que queremos.
  • El comando final construido se verá así: ffmpeg -i "c: \ flac \ song.flac" -acodec alac "c: \ flac \ song.m4a "

advertencia dado que hay un límite de 255 caracteres para las rutas de archivo, es posible que sus archivos no se procesen si la estructura del directorio es profundo.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 2.0 bajo la que se distribuye.
Loading...