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 Report

Transcript 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.