HTTP Live Streaming Output

Discuss client development (or even MPD development if you feel so inclined), ask questions about the client libs, MPD feature requests from client developers, etc...
Post Reply
pzingg
Posts: 2
Joined: February 16th, 2013, 4:50 pm

HTTP Live Streaming Output

Post by pzingg » February 16th, 2013, 5:03 pm

I was wondering whether there was any thought to developing an HTTP Live Streaming output plugin for MPD. I've been looking for a crossfading player with a command API that has a simple architecture and finally found MPD.

If no one else is already doing it, I would give it a try, based on existing projects like this one:

https://github.com/iliya-gr/mediasegmenter

If someone else is actively pursuing this, I'd be glad to help or test. Actually, reading the mediasegmenter README, it seems that I could just hook Iliya's project to the MPD fifo output plugin.

The only improvement in rewriting an HLS segmenter as an MPD output plugin would be in configuration and setup. Iliya's project is also for video as well as audio, and uses libavformat. If I were going to write an MPD version I probably would be write it against libao and faac and would encode AAC only.

max
Forum team
Posts: 938
Joined: January 15th, 2013, 3:43 pm

Re: HTTP Live Streaming Output

Post by max » March 3rd, 2013, 6:45 pm

There are already two HTTP streaming output plugins. What else do you need?

pzingg
Posts: 2
Joined: February 16th, 2013, 4:50 pm

Re: HTTP Live Streaming Output

Post by pzingg » March 4th, 2013, 7:42 pm

I guess you mean the "shout" and "httpd" plugins that are in the MPD source tree? These are great, but there is an advantage to the HTTP Live Streaming system in that the delivery of the music is just done over HTTP by any web server (can take advantage of content delivery systems, etc.), so MPD does not have to manage the connections. All the MPD has to do is generate the segmented music files and update the m3u8 playlist file periodically. And HTTP Live Streaming is the default delivery system for iPhones and iPads.

I have a proof-of-concept working now (for mp3 encoded HTTP live streaming) in my fork of the MPD project on github. It seems to have a perceptible "drop" of some of the audio as the client (plain vanilla HTML5 as rendered by Safari on Mac OS X) switches between mp3 segments, but it does work.

https://github.com/pzingg/MPD

I am now trying to get HLS working with an AAC+ encoder using the aacplus library available here:

http://tipok.org.ua/ru/node/17

Unfortunately I think I have the aacplus encoder set up with wrong configuration to interface with MPD's output formats. If I can figure out the AAC+ and get the segment files to sound correctly, I will work on why some of the audio is being dropped during segment transitions, and then test on iOS clients as well.

max
Forum team
Posts: 938
Joined: January 15th, 2013, 3:43 pm

Re: HTTP Live Streaming Output

Post by max » March 5th, 2013, 7:57 am

Uh, your github repository is a mess.

Post Reply