IIS Media Services 4.0 : Manifest Compression
IIS Media Service 4.0 was released and now you can use it as an integrated media platform . As you can read in Chris Knowlton blog post there are a lot of new features in IIS Media Services 4.0 not only connected to the integrated media platform that I described in my previous post on this. We have a lot additionals features for iOS support like:
•Live DVR – Pause, Rewind, Seek
•Archiving – saves the live content for DVR use or later on-demand playback
•Archive Segmentation – breaks a long broadcast archive into shorter clips for storage purposes
•AES Encryption – keeps your content safe while streaming
•B-frame support – provides better picture quality
•Compatibility mode for iOS3 devices
and about performance improvements like:
•Publishing point runtime status – provides real-time stats via APIs and the UI
•Manifest compression – reduces the size of the manifest sent to clients
•Metadata delivery support – delivers RDF format metadata from encoder to the client
•Reduced memory usage – handles even higher server loads
•Smarter disk access – provides higher consistency server performance
•Dedicated fragment caching – reduces disk access during live sessions
•Low latentcy in end to end streaming
One of the feature added in this version that you can leverage is about manifest compression in Live Streaming. We have some improvements that are active by default in IIS MS 4.0 that are compatible with previous player version and some additional improvement that can be activated on IIS MS 4.0 but that are compatible only with player based on Smooth Streaming Media Element (SSME) version >= 1.5 . These features can permit to have a to fast experience during parsing of manifest because permit to reduce the dimension of the manifest.
The typical format of manifest for the chunks rappresentation during a Live Streaming in the previous version of IIS MS during a live look like below sample:
<c t=”80000000”>
<c t=”100000000”>
<c t=”120000000”>
<c t=”140000000”>
<c t=”160000000”>
<c t=”180000000”>
in this manifest t rappresent the timestamp of the chunks. In the IIS MS 4.0 we have by default a new manifest format during a live based on the version 2.0 of manifest that is compatible with the previous version of Smooth Streaming Media Element (SSME) but that can permit to have a better compression ratio with gzip with good results :
<c t=”80000000” d=”20000000”>
<c d=”20000000”>
<c d=”20000000”>
<c d=”20000000”>
<c d=”20000000”>
<c d=”20000000”>
in this case we have a manifest that have the same information of the previous but we have the timestamp indicated only in the first chunk and with d a duration of every chunk that can permit to calculate the timestamp of every chunk . This format is a default in IIS MS 4.0 and is compatible with the current versio v1.1 of SSME
In addition to the previous improvement you can activate on the live pub point the 2.2 version of the manifest that can permit to use a new keyword to obtain more compression in the manifest. For example if we activate 2.2 manifest version the previous manifest client is:
<c t=”8000000” d=”20000000” r=”6”>
where r is the repeat tag that means in this case the number of times that the chunk with the same duration as repeated . This manifest is logical equivalent to the previous and means that we have 6 chunks with duration of d=”20000000” starting from timestamp of t=”80000000” . This format can permit to reduce the manifest dimension in same case to small fixed size, but it is compatible only with SSME >= v 1.5 .
You can enable Smooth Streaming Manifest Format version 2.2 on a live publishing point in IIS Media Services 4.0 adding the tag below in the <head> sections of .isml file created for a publishing point:
<meta name="clientManifestVersion" content="22" />
Pay attention to activate this feature because I mentioned before if you activate this version of manifest on IIS MS 4.0 only player based on SSME >= version 1.5 are able to read the manifest and put at work streaming. You can download Smooth Streaming Media Element Client SDK v1.5 that is compatible with this new version of manifest .