Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Can Apple Lossless audio files (ALAC) be converted to FLAC audio files with no loss of fidelity?

share|improve this question
2  
short answer 'yes' (as slhck said) . question is, are you looking for a tool to do this with, or asking if you can convert a lossless format, losslessly to another lossless format? –  Journeyman Geek Aug 29 '11 at 15:58

2 Answers 2

up vote 25 down vote accepted

Yes, given that both are mathematically lossless, conversion is lossless too.

The reason for this is that the signal can always be reconstructed to its original form when a FLAC/ALAC file is decoded. Thus, they are equivalent and you should experience no loss when transcoding — even when transcoding multiple times.

The only error I could imagine would be an arithmetical one, e.g. through limited floating point precision in calculations. I don't think this applies to either FLAC or ALAC.

In case you only use a "psychoacoustically" lossless codec, this is not possible. Lossless in a psychoacoustic sense would mean that you can't distinguish the original and the compressed version, yet they are very different from each other. MP3 or MPEG-4 AAC use various psychoacoustic techniques to achieve this. Thus, when transcoding, the original version can't be reconstructed and you'd experience a loss of quality.


In case you want to convert ALAC to FLAC, ffmpeg would be a good option, as it's free and available for almost every platform.

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

FFmpeg will read ALAC without issues. For *nix systems, there's also a script called Convert to FLAC which makes the whole process easier. With Bash you could simply convert all files in a single directory as well:

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

Note: If you get a message about ffmpeg being deprecated, this is actually not the case – it's still an actively developed program. However, Ubuntu's package maintainers just decided to switch to the Libav fork of FFmpeg and thus supply you with avconv instead of ffmpeg. The version of ffmpeg available on Ubuntu is therefore outdated. You can get a recent one by downloading a static build instead, or compiling it yourself. Read on for more info: Who can tell me the difference and relation between ffmpeg, libav, and avconv

share|improve this answer
2  
Based on superuser.com/a/277358/45914, you can do the following to convert an entire directory: for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done This works on Linux, but also in a Git bash on Windows, for example. –  Ruud v A Mar 8 '12 at 13:12
1  
Converting using ffmpeg, as @RuudvA said, works but gives me a message that says: *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. In order to do this using aconv, do this instead: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done –  Duncan Lock May 8 '13 at 3:09

If you have a Mac (since you have ALAC files), you could also use the open source software Max as nice frontend to do the conversion from and to ALAC/FLAC or many other formats..

share|improve this answer
    
Another nice one is XLD. –  Nathaniel Mar 27 '13 at 17:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.