[FFmpeg-devel] Microsoft Smooth Streaming

Marcus Nascimento marcus.cps at gmail.com
Tue Oct 25 19:41:55 CEST 2011


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
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.

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 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).

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

Which one fits better in the FFMpeg structure?
If anyone can point me a starting point to dig into the code or give me some
tips or that, I'd be really thankful.

Thanks very much for your time.

Marcus Nascimento

More information about the ffmpeg-devel mailing list