[FFmpeg-devel] [PATCH] Add Apple HTTP Live Streaming protocol handler
Martin Storsjö
martin
Sun Jul 25 20:35:14 CEST 2010
Hi,
On Sun, 25 Jul 2010, Ronald S. Bultje wrote:
> On Sun, Jul 25, 2010 at 7:23 AM, Martin Storsj? <martin at martin.st> wrote:
> > Secondly, currently the implementation takes a full url to a playlist
> > after the applehttp:// part, such as
> > applehttp://http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8.
> > This allows using other underlying protocols, too, such as https:// (if
> > we'd ever implement that), or file:// for fetching the playlist locally -
> > mostly for testing. As another alternative, the urls could simply be
> > applehttp://devimages.apple.com/..., not allowing any other underlying
> > protocols than normal http, but making the urls look slightly less weird.
>
> Why is this not a demuxer? It seems it's a playlist.
Yes, it's a playlist, but with some minor details - each segment is
intended to follow straight on after the previous one, without resetting
demuxers/decoders inbetween, etc. Also, for live streams, the playlist is
a sliding window of current segments, so it has to reload the playlist
regularly in those cases.
> Playlist support in FFmpeg might be near-nonexistant and require some
> significant extensions to the demuxer layer, but implementing it as a
> protocol does not sound quite right...
I thought about doing it as a demuxer, too, but implementing it that way
would be way much more work, with setting up a chained demuxer and
whatnot.
The content in these cases are MPEG-2 transport streams or MPEG-2 audio
elementary streams - doing it this way, the protocol simply provides the
demuxer with a byte stream formed by the files concatenated, which I feel
is a quite proper abstraction here.
Protocol as name may feel incorrect, but as in the "opaque bytestream" as
URLProtocols in libavformat actually are, I think the choice feels quite
right.
// Martin
More information about the ffmpeg-devel
mailing list