[mythtv-users] Speed up HLS

Chris Pinkham cpinkham at bc2va.org
Wed May 16 00:08:21 UTC 2012


* On Tue May 15, 2012 at 04:28:56PM -0400, Dave Badia wrote:
> As I understand it, the HLS transcode runs on whichever BE holds the
> recording.  Can we get a sneak peak as to the long term plan for HLS?  Will
> it move to the job queue where we can control which BEs run this work?

HLS transcodes run on the BE that you send the command to as long as it
has access to the recording.  Long-term, I'd like to get support
either integrated into the JobQueue or another queueing method.
Raymond Wagner has been working on a major upgrade to the JobQueue, so I
did not want to spend time trying to integrate HLS into the current
JobQueue code.  I believe the new JobQueue will support 'run now' jobs
which are more of what we need for encoding HLS segments.

I'll address the long term plans below.

> I ask as currently my MBE is the only box with real horsepower and is the
> only BE configured to run jobs.  My SBEs are diskless, low horsepower
> machines that aren't meant to do any "real" work.

If you tell the MBE to generate a HLS stream for a file that is on
another BE, the MBE shoulds stream it from the other BE in order to
create the HLS stream.

> Please know I'm not complaining about HLS, just want to understand the long
> term plan so I can understand if I need to beef up my SBEs to support HLS.

Yeah, the plan is to allow you to specify where the grunt work is done,
currently that's done inherently by whichever BE you send the API call
to.

> Also, is there any feasibility of VDPAU assisted transcode playing a part
> in HLS in the near or far future?  (couldn't resist)

The HLS encoder uses the ffmpeg libavcodec and libavformat libraries, so
it supports whatever encoding they support.  If there was a VDPAU
encoding library then it could probably be hooked in on our side even if
ffmpeg didn't support it natively.

As far as the HLS TODO list goes, I think this is a list of the major
things on my HLS TODO list:

- cutlist support (both internal and user-supplied)
- 'start at position X' support
- support multiple bitrate streams vs just the single video bitrate and
  audio-ony stream.
- add 'resume' support to restart a stopped transcode. 
- investigate encoding streams on-demand to allow seeking forward to a
  point in the video which has not been encoded yet.
- settings editor (# of encoding threads, http content directory, etc.)
- MythWeb integration via JW Player
- enhancements around tracking which files are being streamed (ie,
  track whether a file is a recording, video, etc. to allow the client
  to get access to metadata on HLS sessions easier)
- AAC audio support (not sure whether to allow user to specify or force)
- (better) autodetection of which profiles to use for encoding
- realtime transcoding support to allow mythtranscode to create HLS
  streams for recordings in progress or LiveTV.
- mythtranscode enhancements related to the ffmpeg libav* code:
  - WEBM support for pre-transcoding full files

--
Chris


More information about the mythtv-users mailing list