Mingfei Yan (@mingfeiy) Program manager Windows Azure Media Services Challenges for providing good video experience How could Windows Azure media services help Overall Reach Story with SDKs and Player Frameworks Stream media on Windows 8/Windows 8.1 Flash Client IOS player framework 100 M OWN AT LEAST ONE Household WW CONNECTED TV TABLETS SMARTPHONES 50% MULTITASK 19% WHILE WATCHING TV *Source: Cisco, Gartner 80% 10 Billions MOBILE CONNECTED DEVICES by 2016 VIDEO WEB 99% MOBILE BROWSER on DESKTOPS and LAPTOPS PROGRESSIVE DOWNLOAD There is an app for it NO PLUGIN ADAPTIVE STREAMING APPLICATIONS Philosophy format agnostic Smooth Streaming mpeg-DASH Flash HTTP Dynamic Streaming Apple HTTP Live Streaming Progressive Download protocol agnostic HTTP RTMP DRM agnostic PlayReady Adobe Access Reach any end point with best possible format, protocol and DRM for it WEB APPS MOBILE Silverlight Smooth Streaming Player Framework Smooth Streaming Client SDK Windows 8 Smooth Streaming Player Framework Smooth Streaming Client SDK With MPEG-DASH support WinPhone Player Framework for WinPhone 8 Smooth Streaming Client SDK Flash OSMF plugin for smooth streaming MPEG-DASH support (Not released) XBox Smooth Streaming Player Framework Smooth Streaming Client SDK Android Partner SDKs and Frameworks OSMF plugin for smooth streaming HTML5 HTML5 Player Framework DASH.JS with IE11 TV/STBs Smooth Streaming Porting Kit Partner integrations iOS Player Framework for smooth streaming with PlayReady Player Framework for HLS More information please see here. Media Services Architecture Partner Technologies (Media Processors, Origin Servers, Live Encoders etc.) (Fabric, Storage, Compute, Database) Released Coming Soon Partners Azure CDN Partner CDNs “Build-On” Media Partners and Customers Origin Caching IE10 IE10 on the Desktop IE10 on the Desktop on Windows RT IE 11 starts to support adaptive streaming (MPEG-DASH) through HTML5 <video> with content protection Currently there are three major vendor-centric streaming formats (all takes H.264 as input) Smooth Streaming Http Live Streaming Http Dynamic Streaming Dynamic Adaptive Streaming over HTTP (DASH) also called MPEG-DASH international standard (ISO/IEC 23009-1) <Video> Media Source Extension (MSE) APIs : Encrypted Media Extension (EME) APIs : DASH.JS http://playerframework.codeplex.com/ Contributors: http://dashif.org/reference/players/javascript/index.html https://github.com/Dash-Industry-Forum/dash.js http://ie.microsoft.com/testdrive http://dashif.org/reference/players/javascript/0.2.4/index.html http://dashif.org/reference/players/javascript/0.2.4/index.html http://ie.microsoft.com/testdrive http://www.netflix.com/ MPEG DASH preview from Windows Azure Media Services Dynamic Packaging with MPEG-DASH live profile streaming support MS Open Tech early contributor to open source dash.js community MPEG-DASH: Making Tracks Toward Widespread Adoption Building Media Streaming Apps and Sites Without Plug-Ins Using MPEG-DASH Application Application with Smoothwith Streaming Source video source url : …/manifest url : …/a.mp4 Smooth Streaming Extension SDK Media foundation Interface PLAYBACK PIPELINE Shipped as Open source at playerframework.codeplex.com Builds on capabilities of Smooth Streaming Client Available for multiple platform Windows 8 Player • • HTML/JavaScript Modern style applications XAML/C# Modern style applications HTML5 player for browser Silverlight & Windows Phone player Well established player framework Plugin Architecture – import what you need Closed captioning Offline Trick Play Advertising Player styling Smooth Streaming (VOD and live) Progressive Video DVR controls Multiple Audio MPEG-DASH PlayReady DRM Analytics Logging Linear Ads: presented before, between or after video content. Linear Ad takes over the full view of video. Non-linear Ads: runs parallel to the video content so the user still has the option of viewing the content. It could be text, graphical banner/buttons or video overlays Companion Ad: Pairing with Linear Ad or Non-Linear Ad It offers sustained visibility of the sponsor throughout the video content After 5 sec when linear ad is over VAST (Video Ad Serving Template) 3.0 / 2.0 It tells video player what to play Recommended by IAB Based on XML Served by majority of ad servers Five Ads formats: Skippable Linear Ads Ad Pods (a sequenced group of ads) Linear Ads Non-linear Ads Linear Ads with Companions VAST (Video Ad Serving Template) 3.0 / 2.0 <VAST version=“3.0”> <Ad> <InLine> <AdSystem>My Ad Server</AdSystem> <AdTitle>Car Company</AdTitle> <Impression>...</Impression> <Creatives> <Creative> <Linear>...</Linear> </Creative> <Creative> <CompanionAds>...</CompanionAds> </Creative> </Creatives> </InLine> </Ad> </VAST> VAST (Video Ad Serving Template) 3.0 / 2.0 <Creative id="video" sequence="0" AdID=""> <Linear> <Duration>00:00:32</Duration> <TrackingEvents>...</TrackingEvents> <VideoClicks>...</VideoClicks> <MediaFiles> <MediaFile apiFramework="Windows Media" id="windows_progressive_200" maintainAspectRatio="true" scaleable="true" delivery="progressive" bitrate=“200” width="400" height="300" type="video/x-ms-wmv"> <![CDATA[ http://smf.blob.core.windows.net/samples/ads/media/XBOX_HD.wmv ]]> </MediaFile> </MediaFiles> </Linear> VMAP (Digital Video Multiple Ad Playlist) 1.0 Recommended by IAB It is very useful when content owner doesn’t have control over player Used by content owner to describe ad breaks Timing for each break How many breaks are available What types of ads How many are allowed in each break VMAP (Digital Video Multiple Ad Playlist) 1.0 <vmap:VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0"> <vmap:AdBreak breakType="linear" breakId="mypre" timeOffset="start"> <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">.. .</vmap:AdSource> <vmap:TrackingEvents>...</vmap:TrackingEvents> </vmap:AdBreak> <vmap:AdBreak breakType="linear" breakId="myrelative" timeOffset="5%"> <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="2">.. .</vmap:AdSource> <vmap:TrackingEvents>...</vmap:TrackingEvents> </vmap:AdBreak> <vmap:AdBreak breakType="linear" breakId="myabsolute" timeOffset="00:00:15.00 1"> <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="3">.. .</vmap:AdSource> <vmap:TrackingEvents>...</vmap:TrackingEvents> </vmap:AdBreak> …… </vmap:VMAP> http://playerframework.codeplex.com/releases/view/96091 http://visualstudiogallery.msdn.microsoft.com/04423d13-3b3e-4741-a01c-1ae29e84fea6?SRC=Home http://visualstudiogallery.msdn.microsoft.com/e02ccac7-f3eb-4b53-b11a-c657d5631483 http://visualstudiogallery.msdn.microsoft.com/0170c67c-c183-4fee-8dd4-c2b44d710d40 http://visualstudiogallery.msdn.microsoft.com/59be4d26-7f00-463e-9d61-2803c36b576b http://playerframework.codeplex.com/releases/view/92745 https://www.windowsazure.com/en-us/home/features/media-services/ OSMF Plugin Open source Media Framework: http://www.opensourcemediaframework.com/ Existing players can migrate by adding plugin for Smooth streaming, such as strobe media player Supports both video-on-demand and live streaming Monetization Support OSMF Ad / Analytics Plugins Additional support for more standards like VMAP VMAP integral part of WAMS Advertising Download link for flash client http://techedmedia.blob.core.windows.net/flash/setup.html Enable you to build a native iOS application to playback video with dynamic advertisement insertion Feature • • • • Pre, Mid, Post-roll and Ad-Pod Progressive download & HLS VOD and Live Streaming Standard Ad format (VAST, VMAP) Performance • Seamless transition from Ad to Main Content and between Ads* Above: Sample iOS player shipped on github Future • Key services for AES encryption WEB APPS MOBILE Silverlight Smooth Streaming Player Framework Smooth Streaming Client SDK Windows 8 Smooth Streaming Player Framework Smooth Streaming Client SDK With MPEG-DASH support WinPhone Player Framework for WinPhone 8 Smooth Streaming Client SDK Flash OSMF plugin for smooth streaming MPEG-DASH support (Not Released) XBox Smooth Streaming Player Framework Smooth Streaming Client SDK Android Partner SDKs and Frameworks OSMF plugin for smooth streaming HTML5 HTML5 Player Framework DASH.JS with IE11 TV/STBs Smooth Streaming Porting Kit Partner integrations iOS Player Framework for smooth streaming with PlayReady Player Framework for HLS More information please see here. Thank you! Q&A http://channel9.msdn.com/Events/TechEd/Australia/2013 http://www.microsoftvirtualacademy.com/ http://technet.microsoft.com/en-au/ http://msdn.microsoft.com/en-au/ • Sign up for a Free Azure Trial: http://www.windowsazure.com/en-us/pricing/free-trial/ • Activate your Azure MSDN Benefits: http://msdn.microsoft.com/dn369243