[Flac] Flac encoding of 88.2kHz files -- not streamble?
Keith Robertson
kjrobert at alumni.uwaterloo.ca
Thu Mar 22 09:29:29 PDT 2007
Hi.
I'm trying to encode some high sample rate music (88.2kHz) into flac.
When trying this with flac 1.1.4 I get the following error:
#####
keithr at eng:~$ work/flac-1.1.4/src/flac/flac Serenissima02.wav
<snip copyright>
Serenissima02.wav: WARNING: legacy WAVE file has format type 1 but
bits-per-sample=24
Serenissima02.wav: WARNING: skipping unknown sub-chunk 'fact'
Serenissima02.wav: ERROR initializing encoder
init_status =
FLAC__STREAM_ENCODER_INIT_STATUS_NOT_STREAMABLE
The encoding parameters specified do not conform to the FLAC Subset and
may not be streamable or playable in hardware devices. If you really
understand the consequences, you can add --lax to the command-line
options to encode with these parameters anyway. See
http://flac.sourceforge.net/format.html#subset
#####
I fully comprehend that you can make this work with --lax. However, I'm
not just trying to make it work. I'm interested in ensuring that the
file plays on as wide a variety as players as possible. I'm
particularly concerned about the error and comment saying that the
resulting file is not streamable.
Based on my reading of the flac spec I'm not sure I follow this. I
understand that the resulting file will not be part of the Flac subset.
Further, I understand that some decoders that only implement the Flac
subset will not be able to play the resulting file. However, I'm
confused that it says that it will not be streamable. I would have
thought a file is streamable as long as all information needed for
decoding is contained in each frame header rather than just in the
METADATA_BLOCK_STREAMINFO at the beginning. When encoded with --lax,
I've checked that the resulting binary flac file does indeed place the
sample rate in each frame header. It does so via the extension to have
'unusual' sample rates at end of the header. In this case the sample
rate field is 0b1110 (0xE) and resulting end of frame header 16 bit
sample rate in 10's of Hz is 0x2274 (8820 --> 88.2kHz).
So... shouldn't this file be streamable? Is this error more correctly
articulated FLAC__STREAM_ENCODER_INIT_STATUS_NOT_SUBSET, rather than
NOT_STREAMABLE? Or have I missed the boat...?
Cheers.
Keith
P.S. There are quite a few reserved bits in the sample rate field (0001
-0011). What are the odds of getting 88.2kHz declared to be part of the
subset? This would be the most ideal solution from my perspective as a
lot of high quality recordings are archived in 88.2kHz.
More information about the Flac
mailing list