Has anyone parsed a Smooth Video (Silverlight) Manifest file?
I can fetch it, I just need a little help understanding the format. I want my python script to download a chunk to test if a stream is working.
I take it the sections like :
<c d="62680000" />
are the chunk IDs?
How do i work out the path to get them, based on the URl field which is like:
Url="QualityLevels({bitrate})/Fragments(video={start time})/WowzaSessions(421420850).ismv">
Ive got the same test working for Apple HLS, though this has a simpler format.
Any help with this format? MS dont seem to have much docs on getting this, its all focused around using existing player controls in a browser.
The chunk definitions should contain the chunk number and duration, which you can use to calculate the start time to request. In the case of your example, the chunk number seems to be missing, though you can probably infer them by the order they appear in the manifest.
If you go to the Smooth Streaming Sample site and use fiddler to capture the requests, you'll be able to see the manifest it requests and the relationship between the manifest and the chunks that get downloaded.
In this case, the manifest url is http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/Manifest
which gives a video stream containing 8 tracks of different qualities and the chunk definitions with a number and duration attached to each. The player calculates the start time of each consecutive chunk based on the aggregate duration of the previous chunks and requests it by appending the Url
attribute from the stream definition with the quality and start time substituted to the end of the .ism url.
In the case of this request http://mediadl.microsoft.com/mediadl/iisnet/smoothmedia/Experience/BigBuckBunny_720p.ism/QualityLevels(2040000)/Fragments(video=360000000)
we can determine the specific chunk that was requested by dividing the start time by the chunk durations (360000000/20000000=18)