• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Smooth streaming presentation by Auro Tripathy
 

Smooth streaming presentation by Auro Tripathy

on

  • 681 views

Technical description of the Microsoft Smooth Streaming technology

Technical description of the Microsoft Smooth Streaming technology

Statistics

Views

Total Views
681
Views on SlideShare
675
Embed Views
6

Actions

Likes
0
Downloads
20
Comments
0

3 Embeds 6

http://www.linkedin.com 3
https://www.linkedin.com 2
http://www.slashdocs.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Smooth streaming presentation by Auro Tripathy Smooth streaming presentation by Auro Tripathy Presentation Transcript

    • Encoder 0:02 0:04 0:06 0:08 -:-- 0:12 0:143Mbps GoP GoP GoP GoP … GoP GoP2Mbps GoP GoP GoP GoP … GoP GoP Streaming1Mbps GoP GoP GoP GoP … GoP GoP Server500Kbps GoP GoP GoP GoP … GoP GoP300Kbps GoP GoP GoP GoP … GoP GoP April 12, 2010 AT 2
    • Encoder 0:02 0:04 0:06 0:08 -:-- 0:12 0:143Mbps GoP GoP GoP GoP … GoP GoP2Mbps GoP GoP GoP GoP … GoP GoP Streaming1Mbps GoP GoP GoP GoP … GoP GoP Server500Kbps GoP GoP GoP GoP … GoP GoP300Kbps GoP GoP GoP GoP … GoP GoP Get Fragment with quality level 300Kbps, at time 0:00 April 12, 2010 AT 3
    • Encoder 0:02 0:04 0:06 0:08 -:-- 0:12 0:143Mbps GoP GoP GoP GoP … GoP GoP2Mbps GoP GoP GoP GoP … GoP GoP Streaming1Mbps GoP GoP GoP GoP … GoP GoP Server500Kbps GoP GoP GoP GoP … GoP GoP300Kbps GoP GoP GoP GoP … GoP GoP Get Fragment with quality level 500Kbps, at time 0:04 April 12, 2010 AT 4
    • Encoder 0:02 0:04 0:06 0:08 -:-- 0:12 0:143Mbps GoP GoP GoP GoP … GoP GoP2Mbps GoP GoP GoP GoP … GoP GoP Streaming1Mbps GoP GoP GoP GoP … GoP GoP Server500Kbps GoP GoP GoP GoP … GoP GoP300Kbps GoP GoP GoP GoP … GoP GoP Get Fragment with quality level 3Mbps, at time 0:10 April 12, 2010 AT 5
    • 1.6Mbps 400KbpsApril 12, 2010 AT 6
    • April 12, 2010 AT 7
    • April 12, 2010 AT 8
    • April 12, 2010 AT 9
    •  One complete stream file per bit-rateApril 12, 2010 AT 10
    • Internet Server Set-topApril 12, 2010 AT 11
    •  To initiate a playback, client sends the server a manifest request using the HTTP GET method ManifestRequest = Presentation URI "/" "Manifest" PresentationURI = [ "/" VirtualPath ] "/" PublishingPointName "." FileExtension FileExtension = "ism" / VendorExtensionFileExtensionApril 12, 2010 AT 12
    • <?xml version="1.0" encoding="utf-16"?><!--Created with Expression Encoder version 3.0.1332.0--><SmoothStreamingMedia MajorVersion="2" MinorVersion="0" Duration="300930000"> <StreamIndex Type="video" Chunks="16" QualityLevels="8" MaxWidth="848" MaxHeight="476" DisplayWidth="848" DisplayHeight="476" Url="QualityLevels({bitrate})/Fragments(video={start time})"> <QualityLevel Index="0" Bitrate="1644000" FourCC="H264" MaxWidth="848" MaxHeight="476" CodecPrivateData="000000016742C01F965406A1EBDA0000000168CE3C80" /> <QualityLevel Index="1" Bitrate="1241000" FourCC="H264" MaxWidth="848" MaxHeight="476" CodecPrivateData="000000016742C01F965406A1EBDA0000000168CE3C80" /> ... <QualityLevel Index="7" Bitrate="230000" FourCC="H264" MaxWidth="480" MaxHeight="272" CodecPrivateData="000000016742C01596540F04620000000168CE3C80" /> <c n="0" d="20020000" /> <c n="1" d="20020000" /> <c n="2" d="20020000" /> ... <c n="15" d="1" /> </StreamIndex> ...similar structure for audio...</SmoothStreamingMedia> April 12, 2010 AT 13
    • <QualityLevel Index="0" Bitrate="1644000" FourCC="H264" MaxWidth="848" MaxHeight="476" CodecPrivateData="000000016742C01F965406A1EBDA0000000168CE3C80" /><QualityLevel Index="1" Bitrate="1241000" FourCC="H264" MaxWidth="848" MaxHeight="476" CodecPrivateData="000000016742C01F965406A1EBDA0000000168CE3C80" /> ...<QualityLevel Index="7" Bitrate="230000" FourCC="H264" MaxWidth="480" MaxHeight="272" CodecPrivateData="000000016742C01596540F04620000000168CE3C80" />  Server indicates support for QualityLevels = “8”  CodecPrivateData  parameters specific to the codec  common to all samples on the track April 12, 2010 AT 14
    • <c n="0" d="20020000" /> <c n="1" d="20020000" /> <c n="2" d="20020000" /> ... <c n="15" d="1" />  For each chunk (n), the client receives duration (d)  <c …/> contains data for a set of related fragments  Contains either or both FragmentDuration, FragmentTimeApril 12, 2010 AT 15
    •  FragmentRequest and related fields contain data required to request a Fragment from the Server Example Set-top fragment request (HTTP GET)http://video.foo.com/NBA.ism/QualityLevels(400000)/Fragments(video=610275114)http://video.foo.com/NBA.ism/QualityLevels(64000)/Fragments(audio=631931065) QualityLevels carries Audio/Video bitrate and maps to a file Fragments carries the  stream name (audio/video)  Start offset in time unitsApril 12, 2010 AT 16
    •  File Format used by the smooth streaming server  ISO/IEC 14496-12 (MP4 file specification)  Coding of audio-visual objects -- Part 12: ISO base media file format  MP4 was designed to natively support payload fragmentation within the file Server seeks to the appropriate starting point in the fileApril 12, 2010 AT 17
    • Movie Fragment Header Box (MfhdBox)April 12, 2010 Track Fragment Header Box (TfhdBox) Track Fragment Run Box (TrunBox) Sample Encryption Box Movie Fragment (moof box) Track Fragment (traf)AT Fragment Media Data (mdat box)18
    •  Microsoft Expression Encoder http://alexzambelli.com/blog/2009/02/10/smooth-streaming-architecture/ http://blog.nddllc.com/tag/smooth-streaming/ http://blog.cmstream.net/ April 12, 2010 AT 19
    • April 12, 2010 AT 20
    • April 12, 2010 AT 21
    •  Two types of adaptive streaming files.  IIS Smooth Streaming file or  an IIS Smooth Streaming Single File.  Both require that you stream them from Microsoft Windows Server 2008 with IIS 7 and the Smooth Streaming extension for IIS7April 12, 2010 AT 22
    • ismv File  This is an MP4 file that contains both video and audio content. If you chose to encode an IIS Smooth Streaming file, Expression Encoder creates one .ismv per bit rate. For example, if you specified that you wanted your video encoded using four different bit rates, Expression Encoder creates four .ismv files. However, if you chose to encode an IIS Smooth Streaming Single File, Expression Encoder only creates one file that contains streams of each bit rate. isma File  This is an MP4 file that contains only audio content. If you had encoded an audio-only file, this is the format that results. As with .ismv files, depending on your output choice, Expression Encoder creates several .isma files or just one. ism File  This is an XML file called a "server manifest file." It describes the relationships between media tracks, bit rates, and the files on disk. Only the IIS Smooth Streaming server uses this file. ismc File  This is an XML file called a "client manifest file." It includes important information about the encoded file, such as the encoded bit rates, the codecs used, and other information. Only the Silverlight playback client uses this file.April 12, 2010 AT 23
    •  There are 5 levels of headers in H..264 video bitstream syntax – Sequence parameter set, Picture parameter set, Slice level, MB, and Block. Sequence parameter set contains basic parameters such as profile and level data, seq_parameter_set_id (identifies sequence parameter set that is referred to), MaxFrameNum, display order related parameters, num_ref_frames (maximum total number of short-term and long-term reference frames), frame_mbs_only_flag, direct_8×8_inference_flag (specifies the method used in the derivation process of luma MVs for B_Skip, B_Direct_16×16, B_Direct_8×8), etc.  Picture parameter set contains information about pic_paramter_set_id (identifies the picture parameter set that is referred to in the Slice header), seq_parameter_set_id, entropy_coding_mode_flag (either CA-BAC or CA-VLC), slice definition related parameters, maximum reference index data for reference list0 or list1, weighted_pred_flag (whether weighted prediction is applied to P and SP Slices), weighted_bipred_idc (weighted bi-prediction mode applied to B Slices), Qp related data, deblocking_filter_control_present_flag (syntax element controlling the characteristics of the deblocking filter is present in the Slice header), etc.April 12, 2010 AT 24