Re: HLS, DASH, MPD and LMS future version
bpa <bpa.a10wxz-NUepA2SMhDQqspMVqqL2D+4xXEVPTSb/[email protected]>
| Newsgroups | gmane.music.equipment.slimdevices.devel |
|---|---|
| Organization | Logitech Squeezebox Forums |
| Message-ID | <[email protected]> |
On the general point should HLS & DASH be part of LMS ? I think HLS & DASH usage will increase and so HLS/DASH should become part of "standard" LMS. availability of HLS stream now appear often (e.g. radio France, iHeart, mixcloud) and can have advantages than usual MP3/AAC alternatives - better quality, metadata. Standard HLS also enables Tune-in search to return HLS streams as part of search. The followup questions are then: (i) How should it be implemented and (ii) when. HOW TO IMPLEMENT HLS and DASH could be implemented as plugins which are part of standard LMS like Extensions or InternetRadio but which are not in core LMS. Using standard APIs, the plugins will have own ProtocolHandler, ScanUrl and ScanStreaming etc. routines and provide metadata. If the HLS / DASH support was part of core LMS I expect there could be code sharing on the MPEG-4. Beyond that, I haven't thought about putting all of HLS into core LMS and what advantages/simplifications could arise (e.g. would mixcloud be simpler if PlayHLS is a plugin or core LMS ?). As chunked HTTP is different to current streaming: lots of small GETs - many requests/responses vs. one Get - one request & one response. I think the LMS core changes would need to evolve in the same way the 8.* changes for MPEG4 took a few iterations to get the "right" API but I don't have any feel for what is the right API. Current plugin implementation of MPEG2-ts is bad (first attempt - didn't really "get" MPEG2-ts). It needs to be rewritten - however it works and is adequate. WHY DELAY HLS AS PART OF LMS CORE HLS implementions are inconsistent - many are good but not all. Metadata have custom formats, Master playlist have errors in variants Bandwidth and Codecs so choice of variant to be used can be wrong. Audio channel (e.g 1, 2, 5.1) often not clear/defined. Many HLS players examine audio data from all variants and check the stream before deciding which variant to play. Some HLS services have MIME type for m3u and not m3u8 and vice versa There are HLS features which are starting to be used and the current plugin ignores them quietly - not sure if they have to implemented properly. Some HLS stream have indicated time stamps for live streams, discontinuity etc. - my plugin ignores these at the moment but may be important (e.g. resync a news feed with a time clock). There can be many Representation / Variants of the same streams (e.g. stereo/surround, language, quality, audio only) - should "best match" be chosen or present a playlist of all the options. With many new HLS/DASH "audio" services there is video content. No proper experience of playing just audio from these tracks so not sure of there are potential issues. SUMMARY Answering the questions asked in the first post. Being pragmatic I think PlayHLS V3 (after more testing and initially some small LMS changes such as playlist gzip support) could/should becomes a standard part of LMS. HLS included as standard plugin would simplify some users options (e.g radio France) and Tune-in returning HLS stations as part of the standard search. For problem streams (e..g. AC3), users could still override by a PlayHLS V1 with ffmpeg. I'm not sure of the shortcomings of an LMS standard PlayHLS plugin vs LMS core code. I worry that HLS has a lot of legacy streams which have proprietary tweaks (e.g iHeart). Supporting these tweaks as part of core LMS seems odd but support is necessary for good user experience. I feel a plugin would be easier to incrementally (or experimentally) add functionality without altering core LMS. I'd hope these legacy stream could become more standard over time. A similar PlayDASH plugin would also be relatively easy to develop although at the moment it hasn't the same urgency as HLS. The plugin approach buys time to consider whether & how best to add chunked HTTP support to LMS core. More users of HLS will show up what's needed / wrong with plugin implementation. ------------------------------------------------------------------------ bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806 View this thread: http://forums.slimdevices.com/showthread.php?t=114498