IMHO flac has one technical weakness that will prevent it taking off as THE standard -- namely it only has Variable Bit Rate compression algorithms. Which means that one cannot predict in advance the length of ouput file that will be generated for any input stream.
Name a single compressed lossless format that isn't VBR in nature.
The Http protocol requires sending a Content Length (number of bytes) header
It is true: all current compressed lossless formats suck, as far as Http streaming is concerned.
So if the flac standard were extended to allow both the existing Variable Bit Rate compression algorithm plus a new Constant Bit Rate option, then it would become much better suited for online streaming.
By definition, lossless compressed formats can't be CBR.
Since when? I can’t speak for streaming media over HTTP, but regular data doesn’t require it. Also some radio stations provide flac streams.
First:Stream: a continuous (once received) set of data. Generally speaking, a set of data that is being transmitted from a source to a destination.When the set of data has a determined size, then, it rarely is called stream, but a download or upload.In other words, streams in internet tend to be of data for which the size is not determined. One such example is, obviously, a Live radio stream.
Second:The HTTP ContentLength header can have the value of 0, which tells the browser that the size of the stream is not known beforehand.In our job, we generate PDF files in realtime, and in some cases, start sending them before the file is fully generated (Like for files that can have several megabytes). In such cases, the file size is undetermined and, as such, the ContentLength that we send is zero.
FLAC can deliver CBR. (Signal won't be compressed, though.)
Quote from: 2Bdecided on 22 November, 2012, 06:26:05 AMBy definition, lossless compressed formats can't be CBR.I don't agree. What is it about the "definition" of lossless that says it can't be CBR. Please be specific.
Name a single compressed lossless format that isn't VBR in nature.Don't bother trying; one doesn't exist. Designing one would be futile since some signals must grow in size after being processed by a lossless compression algorithm in order for other signals to be compressible and satisfy the necessary requirement that they remain unique after being decompressed.
By definition, lossless compressed formats can't be CBR.You could "abuse" the lossyWAV algorithm to make a near-lossless CBR-ish (maybe ABR, or at least capped bitrate) encoder fairly easily.Cheers,David.
What about a ZIP format? IE All FLAC would be is a container for the WAV file. Is this possible without VBR?
Quote from: funkyblue on 23 November, 2012, 04:45:29 AMWhat about a ZIP format? IE All FLAC would be is a container for the WAV file. Is this possible without VBR?You mean, like when you store in a .zip without compressing? FLAC can do that. dBpoweramp also even supports conversion to uncompressed FLAC, likely to satisfy placebophiles who think it makes a difference.WAV is a container, by the way.
I am speaking of UPnP / DLNA audio renderers. If you don't provide a Content Length, then the player cannot support Seek.
(...) dBpoweramp also even supports conversion to uncompressed FLAC, likely to satisfy placebophiles who think it makes a difference.(...)
You can choose not to "agree" all you want, but information theory is solid math.
... now think about this. If the DLNA renderer allows the user to seek your realtime-generated stream, what will you do if the user seeks backwards?
Also, depending on the DLNA server/renderer, the content might be fully "downloaded" before it starts to play.
For curiosity sake, what are the commands for uncompressed FLAC files in dBpoweramp?
I also would be interested to know if there are any commands for uncompressed flac output in either flac.exe or sox.exe? (As far as I can tell, this is not possible in flac.exe or sox.exe and the only way to do it is to either use libflac.dll or to compile your own wrapper around the flac source code libraries. But I would be delighted if anyone can explain otherwise...)
If you want to submit some math to prove me wrong, please feel free to do so.
There we go a CBR Lossless format