Smooth Streaming Client Readme

by Dave Nelson

Last Updated: May 31, 2012

Applies To:



Smooth Streaming Client SDKs enable you to build rich on-demand and live Smooth Streaming experiences for Silverlight and Windows Phone applications that take full advantage of the capabilities of the Smooth Streaming extensions in IIS Media Services. The Smooth Streaming Client Application Programming Interfaces (APIs) provide an easy-to-use interface for developers and designers to create rich Smooth Streaming experiences on Silverlight and Windows Phone platforms. The APIs provide support for simple operations such as Play, Pause, and Stop and also more complex operations such as scheduling advertisements, selecting and tracking bitrates for Smooth Streaming playback, and many more. Smooth Streaming Client is used in the Microsoft Media Platform: Player Framework (MMPPF). This partnership facilitates faster player development.

Smooth Streaming Client includes SDK DLLs with APIs for both desktop Silverlight client development and for Windows Phone development. For more information, see Package contents.

Smooth Streaming Client SDKs support the following high-level features:

Available in Microsoft Smooth Streaming Client 2.0

  • Persistent advertisement ("linear ads")

  • Live-to-VOD

    • Client-controlled unlimited DVR window
  • Failed chunk download details (non-text chunks)

  • Key rotation

    • Prefetch root licenses for authorized channels to enable instant channel changes
    • Distribute license requests to avoid flooding the license server
  • Updated cache plug-in properties

    • Get or Set a web request that the media element downloader uses for downloading (CacheRequest2)
    • Get or Set the perceived bandwidth while downloading individual media chunks (CacheResponse2)
    • Get or Set the track the cache plug-in uses for downloading a media chunk (CacheResponse2)

Available in all versions

  • Basic playback controls

    • APIs such as Play, Pause, Stop
    • Events for playback and diagnostics
    • Properties to track position, and so on
  • Advanced playback support

    • DVR support for Live Smooth Streaming
    • Support for tracking live events while in DVR
    • Trickplay: slow motion/fast-forward/rewind (desktop Silverlight only, not available on Windows Phone)
    • Multiple Audio Language support
    • Textstream support for captions/subtitles (desktop Silverlight only, not available on Windows Phone)
  • Support for offline playback scenarios

  • H.264/AAC support

  • Monetization

    • Ad playback integration: scheduling capabilities, tracking ad progress (desktop Silverlight only, not available on Windows Phone)
    • Live ad insertion with IIS Live Smooth Streaming (desktop Silverlight only, not available on Windows Phone)
    • Rich analytics with IIS Advanced Logging.
    • Analytics APIs
    • Support for specifying markers/ad-ingestion points outside the main manifest (desktop Silverlight only, not available on Windows Phone)
  • Content protection – PlayReady integration for VC-1/H.264-encoded content

  • Composite manifest support for scenarios such as Microsoft Media Platform Video Editor (desktop Silverlight only, not available on Windows Phone)

  • Selecting tracks for playback (for example, restrict the available bitrates, support multiple camera angles in a single stream, and so on)

  • Support for progressive download ads/content (desktop Silverlight only, not available on Windows Phone)

Microsoft Smooth Streaming Client 2.0 and IIS Smooth Streaming Client 1.5 support IIS Media Services manifest compression (requires IIS Media Services 4). This is supported on desktop Silverlight only. It's not supported on Windows Phone.

Package contents

When the package is installed, directories are created by default under: %ProgramFiles%\Microsoft SDKs\Smooth Streaming Client*Version*\

The root directory contains the following folders and files:

  • Silverlight. Contains the SDK DLL with APIs for desktop Silverlight.
  • Windows Phone. Contains the SDK DLL with APIs for Windows Phone.
  • Smooth Streaming Client RTW.rtf. The End-User License Agreement (EULA).
  • Readme.htm. A link to this document.
  • REDIST.txt. This file specifies which files the redistribution rights in the EULA apply to. See the license terms that accompany the package for more information about redistribution rights.

System requirements

Smooth Streaming Client can be installed on the following operating systems: Windows Server 2008 R2, Windows Server 2008, Windows 7, Windows Vista, Windows XP

The following software must be installed to develop applications using Smooth Streaming Client:

Known issues

Microsoft Smooth Streaming Client 2.0

  • IIS Media Services low-latency live Smooth Streaming isn't supported.
  • Playback of encrypted streams isn't supported in Picture-in-Picture (PiP) mode.
  • Rewinding an encrypted stream back to the beginning will close the stream.
  • Non-sparse tracks in a stream should have the same fragment duration and lookahead values as audio and video tracks in the stream to enable synchronization.
  • For linear-ad insertion to work, the main content stream and ad stream must be encoded using identical codecs, resolutions, and encoding profiles.
  • When a media stream transitions from a linear clip to a linear ad (or vice-versa), the LinearClipChanged event might fire twice. The extra event can be ignored.
  • If a user pauses a linear ad that's inserted in front of a live stream (a linear "preroll ad"), playback might not transition to the current live playback point when the linear ad finishes. To work around this issue, you can configure your client application to not allow pausing playback of the linear ad or you can call the StartSeekToLive method after the ad finishes.
  • The first Seek operation after the MediaOpened event might be ignored.
  • The Stop method shouldn't be used during playback of live Smooth Streams.
  • Calling the SelectTracks method or the RestrictTracks method during the ManifestReady event doesn't update the SelectedTracks property until after the ManifestReady event handler exits.
  • You can call BufferingTime Set and Get anytime, but only the last Set before assignment of SmoothStreamingSource is used. If you call Set after setting SmoothStreamingSource, and then call Get, the updated value is returned even though SmoothStreamingMediaElement isn't using that value for BufferingTime. Also, re-buffering causes SmoothStreamingMediaElement to update the BufferingTime value internally, making it unavailable to a Get operation.
  • Clips from one or more client manifests that are combined into a composite manifest must have identical audio tracks.

IIS Smooth Streaming Client 1.5

  • Smooth Streaming Client 1.5 supports IIS Media Services low latency for live Smooth Streams. (This is supported on desktop Silverlight only. It's not supported on Windows Phone.) Low-latency live streaming scenarios require that the Smooth Streaming client connect to a publishing point on a web server that's running at least IIS Media Services 4.0. Earlier versions of IIS Media Services don't support low-latency live streaming. For more information about how to configure low-latency live Smooth Streaming, see BufferingTime.


    Audio-only streams aren't supported in low-latency live streaming scenarios.

IIS Smooth Streaming Client 1.1

  • Markers don't fire in trickplay modes. Use Microsoft Media Platform: Player Framework (MMPPF) markers if markers are required in fast-forward, rewind or slow-motion modes.
  • The Client treats URIs as case-insensitive, which can cause issues on some servers. Use lowercase manifest/stream URIs to avoid any issues.
  • Protected streams aren't supported in composite manifests.
  • Audio, video, and textstream fragments in a live Smooth Stream must have the same duration.
  • For live Smooth Streams, network requests for metadata might continue after calling the Stop method. To avoid this issue, set the Source property to Null.
  • To recover from a MediaFailed event, set the Source property to Null, and then wait for a period of time before resetting the source to reconnect.
  • The PlaybackRate property must be set to 1.0 before calling the ScheduleClip method. After the clip finishes, you can change the PlaybackRate property back to the desired value.

For more information

Smooth Streaming Client content for developers is available on MSDN.

For more information on the streaming formats, client SDKs, and player formats used to develop Media Services client applications, see Developing Windows Azure Media Services Client Applications.

For more information about Windows Phone development, see the Windows Phone App Hub.

Support information

You can obtain support for Smooth Streaming Client from fellow users by posting your questions on the IIS Media Forum.

To obtain support from Microsoft, go to Microsoft Support. Charges may apply.

Release history