throbber
Microsoft smooth streaming
`
`https://bitmovin.com/microsoft-smooth-streaming-mss/
`
`Microsoft smooth streaming
`
`Christopher Mueller
`
`May 21st, 2015
`
`In 2008, Microsoft announced the release of the new Internet Information Server (IIS) 7.0 with a new adaptive HTTP streaming
`feature called Smooth Streaming, targeting the smooth delivery of HD content to the client. Their Silverlight based client continually
`detects the available bandwidth conditions as well as CPU utilization and playback window resolution to decide which representation
`of the content fits best to the specific situation. They demonstrated the capabilities of their new streaming system at several sports
`events such as the 2008 Beijing Summer Olympic Games, the 2009 Wimbledon Championship and the 2010 Winter Olympics in
`Vancouver. Taking the 2010 Winter Olympics as an example, the TV broadcaster NBC Sports used adaptive HTTP streaming (Smooth
`Streaming) to provide online streams for 15.8 million individual users who were watching 50.5 million streams in 720p resolution and
`producing 3.6 petabytes traffic in total. These success stories impressively show that adaptive HTTP streaming, not only Smooth
`Streaming also MPEG-DASH and Apple HLS work very well when it comes to huge live events with millions of viewers.
`
`1 of 4
`
`DivX Exhibit 2005
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2005 - 1
`
`

`

`Microsoft smooth streaming
`
`https://bitmovin.com/microsoft-smooth-streaming-mss/
`
`Considering CPU in Adaptation Decisions
`
`Interestingly, Microsoft also includes the CPU utilization as an indicator for the stream switching decision which is especially valuable
`for mobile devices such as smartphones and tablets. This means that if the CPU utilization is high, the client reduces the stream
`quality and resolution which furthermore reduces the CPU performance needs of the decoding process and guarantees a continuous
`decoding without stalls. For those devices, CPU adaptive streaming becomes useful in multiple ways. First and foremost, they have
`limited CPU as well as GPU capabilities and sometimes even restricted decoding features, e.g., only H.264 baseline profile support. In
`such cases, the client can choose the representation which fits best for their resources and provides the best capability and quality of
`experience to the user. Nevertheless, mobile devices become more and more powerful due to high-end mobile CPUs. However, the
`energy consumption of mobile video playback still remains high, which leads to the next use case considering the CPU of a device in
`the stream switching decision. Due to the restricted battery capacity of most mobile devices, it may also be necessary to switch to a
`lower complexity stream during playback to reduce energy consumption of the decoding process and therefore extend the remaining
`running time of the battery. Such lower complexity streams could be produced by reducing the bitrate and/or resolution on the one
`hand. But when going into more detail in video coding, there are further and more sophisticated possibilities. So in the case of
`H.264/AVC, it is conceivable to choose lower complexity entropy coding methods, e.g. the usage of CAVLC instead of CABAC, use a
`lower sub-pixel precision or to disable the deblocking filter. Due to such methods, the CPU utilization of the video decoding process
`may be reduced significantly and as a consequence of this, the battery of the device lasts longer.
`
`File Formats
`
`2 of 4
`
`DivX Exhibit 2005
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2005 - 2
`
`

`

`Microsoft smooth streaming
`
`https://bitmovin.com/microsoft-smooth-streaming-mss/
`
`Microsoft Smooth Streaming leverages three different file types for their streaming system which will be described in the following:
`
`Fragmented MP4 files for media content: *.ismv and *.isma
`Server manifest file: *.ism
`Client manifest file: *.ismc
`
`The media files of Microsoft Smooth Streaming are based on fragmented MP4. MP4, which is based on the ISO Base Media File
`Format (IBMFF), is basically organized using boxes as units for data as well as metadata and offers a wide range of arrangement
`possibilities of those boxes in a file. Especially for streaming scenarios, MP4 offers the possibility to split up the metadata and media-
`data of a continuous stream into several fragments, each consisting of a metadata and a media-data block, also labeled as fragmented
`MP4 (fMP4) in the context of Smooth Streaming. Therefore, it is possible to store separate media segments, which correspond to one
`or more Group of Pictures (GOP), by using a Movie Fragment Box (moof) and a Media Data Box (mdat).
`
`All chunks of the same representation are stored together in one MP4 file that allows random access. This file starts with a Movie
`Metadata Box (moov) containing metadata information for the whole file, followed by the different fragments. At the end of the file,
`there is a Move Fragment Random Acces (mfra) Box enabling fast random access to the different fragments.
`
`3 of 4
`
`DivX Exhibit 2005
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2005 - 3
`
`

`

`Microsoft smooth streaming
`
`https://bitmovin.com/microsoft-smooth-streaming-mss/
`
`Those chunks are requested via the IIS webserver which carries out an address translation of the incoming URL and responds with the
`appropriate Movie Fragment. These URLs of the segment requests are in the following form, where <bitrate> signals the
`representation and <segment time offset> signals which segment is requested. An example request could look like this:
`
`http://cdn.bitmovin.net/content.ism/QualityLevels(<bitrate>)/Fragments(video=<segment time offset>)
`
`At this point, an IIS webserver is necessary. Although HTTP 1.1 range requests would be an alternative, working without any address
`translation on the server side. Unfortunately, this address translation seems to be intended to limit the use of Smooth Streaming to
`CDNs using Microsoft products.
`
`In addition to the media files, Microsoft Smooth Streaming uses a client manifest file containing the metadata of the different
`representations and basic chunk descriptions of the video stream. This file is based on XML and basically contains the information
`about the used codec, bitrate, resolution, etc. of the different available quality versions of the content. Furthermore, there is a server
`manifest file used for the relationship of representations, segments and contained media tracks, which is not transferred to the client
`and only used by the IIS. It contains the information about the bitrates, the associated filenames/paths on the server, track ids and
`further metadata. This file is used for the URL translation of the HTTP requests to media files. It is necessary because the HTTP
`requests of Microsoft Smooth Streaming do not contain file names or byte ranges for the segments and so they have to be translated to
`a file read operation of the IIS using this server manifest file. As already mentioned, this mechanism could be omitted in general using
`HTTP/1.1 range requests.
`
`Follow Bitmovin on Twitter: @bitmovin
`
`Tags: Adaptive Streaming, microsoft smooth streaming
`
`4 of 4
`
`DivX Exhibit 2005
`Netflix & Hulu v. DivX, IPR2020-00648
`Page 2005 - 4
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket