3 ms·
FLAC allows embedding a seektable but encoders rarely emit one in practice. Since FLAC boils down to a mix of verbatim subframes and linear predictive coding (
by koito17 2y ago
FLAC allows embedding a seektable but encoders rarely emit one in practice.
Since FLAC boils down to a mix of verbatim subframes and linear predictive coding (specifically, polynomials with warmup samples or Rice coding), non-verbatim subframes are variable-length, and the samples for a given interval of time may even span between two blocks. It's a tricky problem, but doable, and FLAC implementations IME (libflac, libavcodec, etc.) have varying levels of accuracy when seeking without a seektable.
I assume the choking described depends largely on the medium of transport (e.g. HTTP servers without support for Range headers makes streaming practically impossible), followed by some delay to "guess" the correct block to jump to then figure out which frames contain samples closest to the requested timestamp.
- progmetaldev 2y agoI appreciate this look into FLAC! I think MP3 is just such an industry standard at this point, which means nobody is really putting work into making streaming music better. There isn't enough of an audience to push for ever higher quality, especially since most people have moved away from stereos to computer speakers, and mostly listening through their awful cell phone speaker!
- corysama 2y agoNot that long ago I got in a lovely HN argument over Why bother with the complexity of FLAC for 2X compression at best vs. the absolute stupid triviality of RIFF containing PCM? The only swaying feature was standardized metadata :P