1

I would like to know if there is any difference in the final output between the various command-line tools for encoding FLAC files, like ffmpeg, sox, the “official” flac etc. In some contexts, I have noticed that it's recommended to use flac over the others, but given that FLAC represents lossless encoding, am I correct in assuming that they should all produce identical output (given the same options)?

1 Answer 1

1

The FLAC encoder has a ton of parameters, so you'll need to consult with the source code of ffmpeg/sox to see how they use the codec but despite all of this does it really matter? FLAC is a lossless encoder, so even if flac, ffmpeg and sox produce different FLAC files, they will all decode bit perfectly.

FFmpeg will produce a different output (header) as it adds itself to tags unless instructed otherwise.

3
  • Since the decoding should be bit-perfect anyway, is there any reason why some programs suggest using flac as the backend? Performance considerations?
    – fnix
    Commented Jun 13, 2022 at 15:33
  • No idea. Maybe they think whatever you use is linked statically with an old version of libflac, so using flac directly could be beneficial as newer versions have a little bit better compression ratio. In terms of encoding speed, if the used library is the same there should be no difference. Commented Jun 13, 2022 at 17:12
  • @fnix Because flac offers more options. For example, if SEEKTABLE is encoded in the output FLAC file, the audio player can support seeking FLAC files easily (otherwise the audio player has to perform searching instead of seeking). And ffmpeg does not support encode SEEKTABLE with flac (ffmpeg issues: #6978).
    – weakish
    Commented Jan 21 at 13:24

You must log in to answer this question.

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