Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently building a script to maintain parallel music libraries, because I have devices that can't play FLAC, but prefer to store my music in that format. However, I'm having some trouble with the part that converts FLAC to ALAC. It currently just dispatches FFMPEG to do the job. However, FFMPEG (version 0.5.9) can't seem to preserve the tags! -map_meta_data infile:outfile doesn't work... neither does -map_meta_data outfile:infile, -map_meta_data 0:0, or -map_meta_data 0:0,s0 (or something like that), all of which I'd seen people suggest.

So... I'm now looking for a command-line program (or a Python library) that can convert FLAC to ALAC on Linux, while preserving the tag data. It'd even be acceptable if I have to copy the tags after converting - but I can't find a solution for that either. I've tried QLCLI, but it seems to fail when importing Quod Libet. I'm trying to make this all work under Ubuntu. Any suggestions?

share|improve this question
Can you try a more recent version of FFmpeg? You can compile it from source as documented on the homepage – slhck Sep 3 '12 at 19:09
In Ubuntu 12.04 LTS, it looks like the provided version of ffmpeg does preserve the tags. I just tried ffmpeg -i "in.flac" -acodec alac "out.m4a" and all the tags seem to have been converted. – mivk Oct 4 '12 at 0:02
up vote 0 down vote accepted

The current ffmpeg (version 2.0.2 as I write this) supports both decoding and encoding for ALAC. And it copies global metadata from the first input file by default.

Invoking it like this:

ffmpeg -i track01.flac -c:a alac track01.m4a

produced an ALAC file with the metadata copied.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .