avconv (o ffmpeg, del cual avconv es una bifurcación) puede hacer esto desde la línea de comando:
avconv -i input.flac -c:a alac output.m4a
Debe preservar los metadatos por sí mismo.
Para hacer cada flac en un directorio:
for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
Para hacer cada flac recursivamente (en el directorio actual y todos los subdirectorios):
shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
Si tienes los flacs en archivos ogg o algo, obviamente cambia ./*.flac
a ./*.ogg
.
Creo que esto debería funcionar con avconv / ffmpeg desde los repositorios (ya que ALAC se publica bajo la licencia de Apache y puede distribuirse legalmente), aunque tengo instalada la versión de medibuntu.
Si desea deshacerse de los archivos originales, puede poner rm
en el bucle. Esta versión usa el -n
indicador para avconv, por lo que no sobrescribirá ningún archivo ALAC ya existente, y usar en &&
lugar de;
significa que si avconv se detiene con un error, el archivo FLAC original no se eliminará:
for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done
Tenga en cuenta que eliminar archivos con rm es irreversible (fuera de la recuperación de datos forenses), así que tenga cuidado al usarlo.