[mythtv-users] Any desktop apps that take advantage of HLS yet?

Chris Pinkham cpinkham at bc2va.org
Thu Aug 30 18:27:49 UTC 2012


* On Thu Aug 30, 2012 at 08:58:38AM -0700, Thomas Mashos wrote:
> I've already got basic functionality (listing and playback) working in
> the scope, but for HLS I'll need a way to configure the different
> options that HLS offers. I appreciate the work you've done on the

You may be better off waiting until after 0.26 is out and then following
the new developments in master that will go into 0.27.  I already have
the basics of on-demand HLS encoding working in a branch on my dev system.
I can already point my iPhone at a URL like the following and the playlist and
.ts segments will automatically be generated on-demand as they are requested
by my phone:

http://BACKENDIP:6544/HLS/some_filename_in_some_StorageGroup.mpg.hlsd.m3u8

That triggers the meta playlist some_filename_in_some_StorageGroup.mpg.hlsd.m3u8
to be generated on the fly.  For now, that playlist contains a single link to
the following playlist:

some_filename_in_some_StorageGroup.mpg.hlsd.480w.500kv.96ka.m3u8

Eventually there will be a configuration screen to allow toggling of HLS
profiles or possibly creating new profiles.  The player fetches that playlist
and gets segment names like this:

some_filename_in_some_StorageGroup.mpg.hlsd.480w.500kv.96ka.00000001s.m3u8
some_filename_in_some_StorageGroup.mpg.hlsd.480w.500kv.96ka.00000002s.m3u8
some_filename_in_some_StorageGroup.mpg.hlsd.480w.500kv.96ka.00000003s.m3u8
some_filename_in_some_StorageGroup.mpg.hlsd.480w.500kv.96ka.00000004s.m3u8
some_filename_in_some_StorageGroup.mpg.hlsd.480w.500kv.96ka.00000005s.m3u8
...

And those are generated on-demand as the player plays through the stream.

There's no starting/stopping/etc. of streams, all of the above is on-demand.

Once I have this working fully, I'll update my local MythWeb patch to support
playing these via JW Player in MythWeb, but it will also make integration in
any other app as simple as passing a playlist name to the player and the
playlist itself is generated on demand on the backend.

There is also nothing that would prevent a player from going directly to
a playlist with a specified resolution, bitrates, etc..  So if you want the
client to determine the encoding profile, then you just need to pass a
playlist name similar to the following to the player:

http://BACKENDIP:6544/HLS/some_filename_in_some_StorageGroup.mpg.hlsd.640w.500kv.64ka.m3u8

There's no more need for ?BITRATE=640000&ABITRATE=64000&WIDTH=640, etc. anymore,
it's all encoded in the playlist or segment filename requested.

--
Chris


More information about the mythtv-users mailing list