[gst-devel] gstreamer and HTTP - Progressive download r

Michael Smith msmith at xiph.org
Wed May 5 20:25:07 CEST 2010

On Wed, May 5, 2010 at 11:00 AM, declan harrison
<harrison.declan at googlemail.com> wrote:
>> Yes, GStreamer is capable of on-the-fly encoding - but GStreamer
>> doesn't include an HTTP server to actually stream it to a client.
>> There are some third-party applications that do that, or you could
>> write your own.
>  So my app will be a HTTP Proxy; that will encode all the video content
>  on-the-fly as a HTTP stream.  Transparent to the client.

You could certainly write that with GStreamer.

>> > Do I need to provide a plugin to use ffmpeg with gstreamer or does it
>> > have
>> > support for that out of the box?
>> There's a gst-ffmpeg plugin. It's not part of gstreamer core - the
>> core doesn't include most plugins; they're provided in separate
>> packages.
> I can grab these plugins from the gstreamer dowloads
> site http://gstreamer.freedesktop.org/download/ or do I need to source some
> plugins independently?

It depends. All the plugins I mentioned in my mail are available at
that URL, but you may need to license plugins separately if your
licensing requirements (particularly with respect to patent licenses)
are incompatible with those plugins. That's really something you or
your lawyers would need to determine (at least if this is for
commercial use. For "hobbyist" uses people generally ignore the patent
licensing, though of course you do so at your own risk).

>> > The containers formats I am most interested in encoding Flash Video(flv)
>> > and
>> > MP4 formats? Does gstreamer allow for on-the-fly encoding for MP4? Do I
>> > need
>> > to provide any extra plugins to allow me to acheive this?
>> What does "on-the-fly" encoding mean here? MP4 is a fundamentally
>> non-streamable format (though you can do playback from a
>> 'progressively downloaded' MP4 file if you want) - this is not a
>> limitation of GStreamer, but of the file format. GStreamer can encode
>> and mux MP4 files, though. You'll need the qtmux plugin which is found
>> in gst-plugins-bad.
> on-the-fly meaning; re-encode the video streams as they are passing through
> the proxy i.e. the source input is a network stream (not file based) and the
> output is network based also.
> Is it not possible to do this with MP4?  I thought we might be able do,
> somehow?

That's possible and reasonably straightforward with GStreamer if you
have a format where it's possible - MP4 is not such a format. You can
make a "streamable" MP4 file (and the qtmux plugin can do that) by
post-processing the MP4 after it's been entirely encoded, but the
format fundamentally cannot be live-streamed.


More information about the gstreamer-devel mailing list