Microsoft Silverlight Moving at 60fps MIX10-CL25 Eric Schmidt Sr. Director Microsoft Corporation March 2010 Key Messages for Today • The media stack in and for Silverlight rocks •
Download ReportTranscript Microsoft Silverlight Moving at 60fps MIX10-CL25 Eric Schmidt Sr. Director Microsoft Corporation March 2010 Key Messages for Today • The media stack in and for Silverlight rocks •
Microsoft Silverlight Moving at 60fps MIX10-CL25 Eric Schmidt Sr. Director Microsoft Corporation March 2010 Key Messages for Today • The media stack in and for Silverlight rocks • We are building frameworks to help you reduce cost, complexity and caffeine • The media stack in and for Silverlight rocks Mindmap of Session • • • • • • • Point of reference Fast, cheap, robust Please install my app Protecting your investment Beyond the browser I’m OK are you OK? A few more things… Delivering Video and Audio to Silverlight • • • • • • Progressive download Windows Media live streaming Windows Media on-demand streaming Smooth Streaming live streaming Smooth Streaming on-demand streaming MediaStreamSource 00 02 04 06 08 Efficient Player Development Microsoft Silverlight Media Framework • http://www.codeplex.com/smf • Open source media framework for Silverlight • Efficient and robust “out of the box” player creation • Optimized for Smooth Streaming • Iterative real-world engineering Microsoft Silverlight Media Framework • 1.0 (PDC) • Silverlight 3 • Smooth Streaming only • DVR • Inline and full screen • 1.1 (1/2010) • Silverlight 3 • Added progressive download • Slo-mo • Bit-rate meter • Off live detection • Logging • Chapter markers • Themeing • 2.0 (4/2010) • Silverlight 4 • Blend 4 design time integration • Improved API • Documentation (API and guidance) • Advertising scheduling • Plug in model • Closed captioning • Auto and raw development model • … Microsoft Silverlight Media Framework DEMO 1. A simple Progressive, WMS w/multi-cast, Smooth Streaming VC-1 and h.264 player • • Playlist support Styling 2. 3. 4. 5. Retry agent Chapter marker support Closed-captioning support Ad scheduling • Reference players • • http://livesmooth.istreamplanet.com/mix10ces/player.htm http://player.smooth.vertigo.com/ Instrumenting Effective Install Flow Microsoft Silverlight Install Logging Framework • http://mediaevangelism.com/silf/silf.html • Drop-in replacement for standard Silverlight.js • Uses simple JavaScript variables to automatically control Install and Upgrade experience • Optional integration with logging frameworks to track installs/upgrades • Exposes Silverlight version via JavaScript • Supports Windows (including Chrome), OSX and Linux (Moonlight) Microsoft Silverlight Install Logging Framework • Integrate the call to action Microsoft Silverlight Install Logging Framework • Notify progress Microsoft Silverlight Install Logging Framework • Inline refresh Microsoft Silverlight Install Logging Framework • Discreet, session based tracking for • • • • • • • • • install screen shown to user upgrade screen show to user unsupported platform shown to user "restart required" after upgrade shown to user user chose to install user chose to upgrade user selected a "no thanks" option user abandoned (navigate away / close browser) successful installation • Async HTTP logging • parms?u=0f741eb9-b36e-429d-bf7740b9768e333b&a=1&i=0&t=1268451113857&an=YourApp&av=10.0 Microsoft Silverlight Install Logging Framework DEMO • Instrumentation for live site • Entry flow • Slate flow Content Access and Protection Content Access and Proctection • Important background framing • Smooth Streaming Transport Protocol • Protected Interoperable File Format • PlayReady enables encrypted content • PlayReady enables Silverlight to provide the following scenarios • Purchase, subscription, pay per view, rental • PlayReady enabled Silverlight 4 capabilities • • • • • • On and offline support Persistent Licenses (multi use based on time) Non-persistent licenses (single use) Output protection Domain support Chained licenses Content Access and Proctection • PlayReady with Silverlight 101 • Implement PlayReady server • Build or “lease” • Encrypt content • Windows Media • Smooth Streaming (VC-1 and H.264) • Implement license issuing handler on PlayReady server • Configure Silverlight license request Content Access and Proctection DEMO • Smooth Streaming manifest with PIFF encrypted header • LicenseAquirer with CustomData (non-persistent license) • Output protection Extending to the Phone Extending to the Phone • Facts • Fragmented mp4 and H.264 is the future • IIS Media Services and Smooth Streaming provide a seamless mechanism for targeting multiple playback devices • Silverlight provides a cross platform application development environment • Windows Phone 7 supports • Live and on-demand Smooth Streaming playback for VC-1 and H.264 • Silverlight 3 feature including PlayReady • *No dynamic scaling • Nokia supports • Silverlight 2 feature set Extending to the Phone - DEMO • Smooth Streaming on Windows Phone 7 • Smooth Streaming and PlayReady on Windows Phone 7 Monitoring Quality and Telemetry Monitoring Quality and Telemetry • Facts • Humans do not like poor quality • Advertising impressions require human targets • Publishers lose money when humans abandon media experiences • HD delivery requires a consistent set of factors (encoding, delivery, playback) • HD is the new baseline for online media • Silverlight and Smooth Streaming provide a turn key solution to deliver the highest quality video on the web Monitoring Quality and Telemetry • Anatomy of Quality • Encoder • Quality of encode • Latency and reliability of encode to origin server • Origin Server • Efficient stream “packing” • Availability • CDN • Efficiency of cache filling • Efficiency of edge distribution • Client • Heuristics monitoring • “I/O” monitoring Monitoring Quality and Telemetry • What’s important? • • • • • • • • Stream start up time Time spent in buffering Consistent bit rate switching Dropped to targeted frames per second HTTP errors Transient media failures Catastrophic media failures CPU utilization • Five ways to get the data you need • • • • • Smooth Streaming Advanced Logging Low level traces from Smooth Streaming 3rd Party providers Microsoft Silverlight Media Framework (Diagnostics) Microsoft Silverlight Analytics Framework Monitoring Quality & Analytics Your Application Silverlight Media Framework Smooth Streaming Media Element Silverlight Analytics Framework Silverlight Media Framework (Diagnostics) Silverlight Media Framework (Diagnostics) Monitoring Quality and Telemetry - DEMO • Self service • • • • Smooth Streaming config & Tracing Silverlight Media Framework Diagnostics http://mediaevangelism.com/ssmonitor/ Filter, collect, remote, filter, persist, report • 3rd Party • Conviva • … A Few More Things Webcam and Microphone Support • Building a Webcam application • Check if user has “AllowedDeviceAccess” • If not “RequestDeviceAccess” (this must been done on user initiated action) • Start the CaptureSource • CaptureImage or set source of VideoBrush Demo • Steal the egg… 3D Made Easy • Pixel shaders + math = Fun • Implementing stereoscopic 3D with Silverlight 1. 2. 3. Create a stereoscopic video source (side by side of over/under) Use Pixel Shaders to transform your stereoscopic image into an anaglyph Wear funny glasses Red Cyan Converting to Anaglyph Start with stereoscopic source encoded side-by-side or over-under Take Start the with left Take stereoscopic half theofResize left thehalf image source ofcomposited the and encoded image keep only and side-by-side the green only orthe and over-under green blue and blue channels the halfkeep to its native full sizechannels Resize the composited half to its native full size Composite the twoTake halves thetogether right halfinto of the a single image image and keep only the red channel 3D Made Easy 1. 2. 3. 4. 5. 6. Set media element to no stretch Set media element size to native video source size Apply effect to media element Turn bitmap on media element’s parent (e.g. canvas) Apply transform to media element’s parent Effect order matters (set on media element) 1. 2. 3. 4. 5. 6. 7. 8. 9. _Rendering element CacheMode (use bitmap cache) OpacityMask Opacity Effect Clip Perspective Transform _Parent element Demo • Put on glasses Wrap Up • The media stack in and for Silverlight rocks • • • • • • • • VC-1, H.264, … Live, on-demand Multi-cam, Webcam Play Ready IIS Media Services 3.0 Smooth Streaming Client SDK Expression Encoder Windows Phone 7 • We are building frameworks to help you reduce cost, complexity and caffeine • Microsoft Silverlight Media Framework • Microsoft Silverlight Analytics Framework • Microsoft Silverlight Install Framework Thank You • [email protected] © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.