Introduction
Smooth Streaming is Microsoft’s adaptive streaming protocol, introduced in 2008 with
IIS Media Services and the Silverlight player. Like HLS and MPEG-DASH it cuts video
into short fragments at several qualities. The client manifest, an .ismc
file, is what the player downloads first: it lists the tracks, the qualities of each
and the timing of every fragment.
The server usually sends the client manifest at an address ending
/Manifest, built from the server
manifest and the media files. The media is stored as fragmented MP4 in
.ismv (video) and .isma (audio) files.
Structure
The manifest is XML with the root element SmoothStreamingMedia, whose
attributes give the version and the total duration. Times are counted in units of 100
nanoseconds unless a different time scale is given.
Each StreamIndex element describes one track, such as the video or the
audio in one language. Its Url attribute is a template for fragment
addresses, like QualityLevels({bitrate})/Fragments(video={start time}).
Inside it, one QualityLevel element per encoding gives the bit rate,
codec and, for video, the picture size, and a run of c elements gives the
duration of each fragment.
<SmoothStreamingMedia MajorVersion="2" MinorVersion="0" Duration="1200000000">
<StreamIndex Type="video" Chunks="60" QualityLevels="2"
Url="QualityLevels({bitrate})/Fragments(video={start time})">
<QualityLevel Index="0" Bitrate="3000000" FourCC="H264" MaxWidth="1280" MaxHeight="720" CodecPrivateData="…"/>
<QualityLevel Index="1" Bitrate="1000000" FourCC="H264" MaxWidth="640" MaxHeight="360" CodecPrivateData="…"/>
<c d="20000000"/>
<c d="20000000"/>
…
</StreamIndex>
</SmoothStreamingMedia>
Links
Software
- VLC media player (Windows, macOS, Linux, mobile)
- Unified Streaming, a streaming server that serves Smooth Streaming
- IIS Media Services, Microsoft’s original Smooth Streaming server (Windows)
Developers
Reference
- [MS-SSTR] Smooth Streaming Protocol, Microsoft