Keith Robertson
2007-Mar-22 10:05 UTC
[Flac] Flac encoding of 88.2kHz files -- not streamble?
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@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.
Josh Coalson
2007-Mar-22 16:18 UTC
[Flac] Flac encoding of 88.2kHz files -- not streamble?
someone asked something similar and I replied here http://forums.slimdevices.com/showpost.php?p=187979&postcount=30 the message about 'not streamable' instead of 'not subset' is confusing though, I should change that. Josh --- Keith Robertson <kjrobert@alumni.uwaterloo.ca> wrote:> 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@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.____________________________________________________________________________________ Food fight? Enjoy some healthy debate in the Yahoo! Answers Food & Drink Q&A. http://answers.yahoo.com/dir/?link=list&sid=396545367