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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.