Gordon Harris wrote:
My SqueezeBox2 arrived today. Lot's 'o fun so far. I do have a question about the FLAC transport: no matter how I change the Server->File Types settings or comment out lines in convert.conf, Slimserver still seems to transcode my FLACs. Even with just FLAC (built-in) enabled, I'm seeing the following process created by Slimserver on playback:
cmd.exe /x/d/c ""C:\Program Files\SlimServer\server\Bin\MSWin32-x86-multi-
thread\flac.exe" -dcs --skip=0:00.00 --until=5:02.24 --
"D:\Recordings\Music_FLAC\c_Early_Baroque\Biber, H\Missa Bruxellensis - Savall.flac" | "C:\Program Files\SlimServer\server\Bin\MSWin32-x86-multi-
thread\flac.exe" -cs --totally-silent --compression-level-0 -"
To me, this looks as though the Slimserver requires flac.exe to stream to stdout at compression level 0 to get FLAC content to the SqueezeBox2. The above FLAC file was encoded at level 5. Even if I re-encode a FLAC at level 0 and play that, the "transcoding" FLAC | FLAC operation still takes place.
I know that when Slimserver streams MP3s to the SqueezeBox, nothing special needs to happen (i.e. LAME isnât required to be invoked.) Is this a case where Slimserver doesnât quite know how to parse and stream FLAC data directly yet? Should we expect truly "native" FLAC streaming from a future version of Slimserver?
This current arrangement for FLAC streaming works perfectly well. I just assume that the two invocations of flac.exe arenât doing anything that Slimserver couldnât do with a little more code tweaking. That would knock down the CPU utilization a bit, knock down the temperature inside my media server case, and maybe allow me to do with one less fan. But I can certainly live with the current arrangement.
PS: The larger memory buffer in the SqueezeBox 2 is great. Even with Slimserver scanning my music library, and with me browsing genre, I donât get any FLAC drop-outs. Also, FLAC play back seems to be perfectly gapless now.
Way to go, Slimdevices and Slimserver developers. You guys are awesome.
The FLAC->FLAC transcoding is only done when you use cuesheets. To get to a track start point within a FLAC file, we need to be able to seek to the exact point in the file (actually to the exact frame that starts before the cue point and then we may need to throw out some samples). Obviously the FLAC decoder on the device can't seek through the stream across a network for each song, so this seeking needs to be done on the server side. Rather than do the seek in Perl, we use the flac helper application with the --skip and --until parameters to provide us with the exact samples to play and then recode in FLAC. It requires a little CPU, but it's a lossless transcoding, of course.
The transcoding does not happen if you don't use cuesheets with FLAC (excuse the double negative).
--Vidur
_______________________________________________ Discuss mailing list [email protected] http://lists.slimdevices.com/lists/listinfo/discuss
