[FFmpeg-devel] Microsoft Smooth Streaming

Nicolas George nicolas.george at normalesup.org
Tue Oct 25 19:54:47 CEST 2011

Le quartidi 4 brumaire, an CCXX, Marcus Nascimento a écrit :
> I'd like to extend FFMpeg to support Microsoft Smooth Streaming (streaming
> playback), the same way it has been done by all the available Silverlight
> players.

Contributions are always welcome on principle.

> By now I do not intend to dump data to a file to be played locally or
> anything like that. And probably will never intend to do that. I just want
> to play it.

If it can play it, then it can also dump it to a file. I hope you were not
counting otherwise.

> I did some research in this mail list and find out some posts that talked
> about that before.
> However I couldn't find in depth information or anything beyond the point
> I'm stuck.
> I've done a lot of research on MS Smooth Streaming theory of operation,
> studied some ISOFF (and PIFF) and some more.
> It is pretty clear to me how MS Smooth Streaming works. Now it is time to
> focus on how to do that in the FFMpeg way.
> First things first, I'd like to know how a streaming should be processed in
> order to be played by FFMpeg.

I believe you would receive more relevant replies faster if you took a few
minutes to describe an overview of how the protocol works.

For the rest, I am just shooting in the dark, as I know nothing of the

> I see two possible scenarios:
> 1 - An external code make all HTTP requests to obtain the manifest XML file,
> use that to configure the decoder. Then makes further HTTP requests to
> obtain fragments that will be parsed by the demuxer (probably a custom one
> based on the ISOM already available).

This looks like the manifest XML file has a role similar to the SDP file
with RTP streams. You could look at how that works to see if that suits you.

> 2 - A very simple external code just request FFMpeg to play a smooth
> streaming media. FFMpeg will detect this is a HTTP based media and will
> request the manifest file for that (I believe I'd have to create a custom
> HTTP based solution for that). By the time the manifest is available, ffmpeg
> would configure the decoder. Then makes further HTTP requests same way as in
> 1.

There is already HTTP client code, as surely you know.


  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20111025/7c9f0c9f/attachment.asc>

More information about the ffmpeg-devel mailing list