I've been working for a while to try to improve codecs support in LMS and recently @philchillbill asked for the possibility to have a /stream.flac instead of /stream.mp3 so that one can stream lossless to any HTTP-capable client. I've made a first version, not yet complete but I was wondering at that occasion about the direction of codecs support in LMS. I'm talking about where to put *focus* not about removing support for others. Focus means where we make thinks extra seamless, or for example we have rules to transforme *everything* into the focused codecs, no matter what is the source.
Please, if you want to discuss about CPU usage influence on SQ or that bits are not bits, refrain from answering that post, this would be wasting everybody's time Obviously, we can separate the question in two; lossless and lossy. Let's try with the easy one, lossless. FLAC has a good compression ratio, a free & open implementation, reasonable CPU requirements and can handle 24 bits at "any" sample rate. It can be streamed as each block is independent, it can be put inside an Ogg container to have in-band metadata and is widely supported, so flac is the winner, no debate. Things are bit more complex for lossy, although I have a strong preference there and this is Opus. Opus is very good quality, excellent compression ratio, fixed output sample rate at 48kHz which is perfect. It also has a free and open source implementation, reasonable CPU requirements and (big plus), can be streamed inside an Ogg container as flac. There is one thing I don't like about it is that (AFAIK) it is not streamable independently (in blocks), as mp3/flac are. It needs a header to be added at the beginning of every playback. Still, I think the future of lossy is opus, so that would be my preference. I did not mention that before, but mp3 is a dead dish, IMHO. Now, maybe here we need a second player and I was thinking of aac as a necessary evil. It has the benefit of being streamable in ADTS frames and seems to be adopted a lot (YT content is always a good indicator). Now, I don't like it; it is not free, it consumes a lot of CPU, there is no good open implementation. I know there is faad2, but it it so CPU & stack expensive that I gave up trying to port it on squeezelite-esp32. I also don't like aac for the other encapsulation method which is mp4 I personally dislike a lot mp4 as it is cumbersome, designed by a committee (a camel) where people doing the spec were obviously on the side of the source, not destination. As the result, they had fun with lot of permutations and combinations to do the a lot/the same things (it' s like dash/mpd IMHO) as the source can always decide what it likes where the poor destination, which is usually the most resource limited has to support every option! So, I'm a bit hesitant on lossy, is this opus only or opus + aac, aac being the unpleasant uncle at family dinners. It's all about choices, so thoughts? LMS 8.2 on Odroid-C4 - *SqueezeAMP!*, 5xRadio, 5xBoom, 2xDuet, 1xTouch, 1xSB3. Sonos PLAY:3, PLAY:5, Marantz NR1603, Foobar2000, ShairPortW, 2xChromecast Audio, Chromecast v1 and v2, Squeezelite on Pi, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5, RivaArena 1 & 3 ------------------------------------------------------------------------ philippe_44's Profile: http://forums.slimdevices.com/member.php?userid=17261 View this thread: http://forums.slimdevices.com/showthread.php?t=114590 _______________________________________________ discuss mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/discuss
