510 likes | 942 Views
Microsoft Silverlight Media End-to-End. Alex Zambelli Media Technology Evangelist Microsoft Corporation. Goals. Demonstrate different ways of delivering a rich end-to-end Silverlight media experience Create, Encode, Deliver Three examples Easy : Expression Encoder 2
E N D
Microsoft Silverlight MediaEnd-to-End Alex Zambelli Media Technology Evangelist Microsoft Corporation
Goals • Demonstrate different ways of delivering a rich end-to-end Silverlight media experience • Create, Encode, Deliver • Three examples • Easy: Expression Encoder 2 • Intermediate: CTV.ca HD • Advanced: Accenture Business TV • The Silverlight 3 media story
Silverlight Media Deep-Dives • Recommended deep-dive sessions • James Clarke (Microsoft): “Creating Media Content for Microsoft Silverlight Using Microsoft Expression Encoder” • Wednesday, 4:00 PM, Delfino 4105 • John Bocharov (Microsoft): “Delivering Media with Microsoft IIS Media Services and Microsoft Silverlight” • Thursday, 1:00 PM, Delfino 4105 • Nicholas Brookins (Akamai):“Delivering Ads to a Silverlight Media Player” • Friday, 9:00 AM, Lando 4201
demo Smooth StreamingUser Experience Simulator Alex Zambelli Media Technology Evangelist Developer & Platform Evangelism
demo CTV.ca HD Alex Zambelli Media Technology Evangelist Developer & Platform Evangelism
demo Accenture Business TV by Origin Digital Alex Zambelli Media Technology Evangelist Developer & Platform Evangelism
Silverlight Media Ecosystem Capture Create UX Encode Deliver Experience Expression Encoder 2
Create Capture Create UX Encode Deliver Experience Expression Encoder 2
Fastest Path to Silverlight • Microsoft Expression Encoder 2 • Supports encoding to Windows Media and Smooth Streaming formats • Includes Silverlight 2 player templates with Smooth Streaming support • Can publish directly to IIS7
Encoding for Silverlight • Expression Encoder 2 • On-demand and live encoding • Transcode from a variety of media formats (AVI, MPEG, MP4, QuickTime, etc.) into Windows Media format • SMPTE VC-1 video • WMA Standard and Professional audio • Simple cuts editing • Leader, trailer and dynamic ad insertion • Rich metadata, markers and captions • Direct WebDAV publishing to Web
Encoding for Smooth Streaming • Expression Encoder 2 Service Pack 1 • Adds support for encoding to Smooth Streaming on-demand file format • Encode video to multiple bitrates/resolutions • New Silverlight 2 player templates with Smooth Streaming support • Also available as an SDK for deep integration into automated workflows
EE2 Silverlight Templates • Expression Encoder can automatically generate a Silverlight player application
SL2 Template Features • Default Silverlight 2 template features • Transport, volume and seek controls • Full-screen mode with overlay controls • Closed caption (subtitle) support • Playlist support • Metadata and thumbnail display • Chapter (marker) access panel • IIS Smooth Streaming support
Jump Start Your Development • All SL2 templates come with source code • Free to use, modify, deploy – Ms-PL • Modular player design • Allows full integration into custom SL projects • Discrete Smooth Streaming component • Use as base player, build up
demo Content and Player Creation with Expression Encoder 2 Alex Zambelli Media Technology Evangelist Developer & Platform Evangelism
Deliver Capture Create UX Encode Deliver Experience Expression Encoder 2
Silverlight Media Delivery • Progressive download • Smooth Streaming • Silverlight media delivery methods • Traditional streaming with IIS Media Services
Media Delivery Methods Movie Traditional Streaming Play Seek Pause Progressive Download Movie
Windows Media Services 2008 • For streaming of Windows Media content • Free download for all editions of Windows Server 2008 • Double scalability compared to WMS9 (Server 2003 x86) • Reduced footprint – Server Core install • Includes WMS Cache/Proxy Plug-In • Reduces load on origin server and network
IIS Media Services • IIS7 extensions that enhance delivery of media over HTTP networks • http://iis.net/Media • Bit Rate Throttling • Cost-saving bandwidth control • Detects encoded bit rate of media files and throttles the download speed accordingly • Web Playlists • Hide the location of media assets from client by obfuscating the URLs in the returned playlist
Streaming or Progressive Download? • Traditional Streaming • Responsive User Experience • Bandwidth Use • User Tracking • Progressive Download • Works from a Web Server • World-wide scale w/HTTP Smooth Streaming: Best of both approaches
IIS Media ServicesSmooth Streaming • Smooth Streaming for on-demand and live • Beta available now • http://iis.net/extensions/SmoothStreaming • Available with Web Platform Installer
Smooth Streaming • Microsoft’s implementation of HTTP-based adaptive streaming • A hybrid media delivery method that acts like streaming but is in fact a series of short progressive downloads • Leverages existing HTTP caches • Client can seamlessly switch video quality and bit rate based on perceived network bandwidth and CPU resources
Smooth Streaming Basics Movie Smooth Streaming Video @ 01:04? Video @ 01:06? Video @ 01:08? Traditional Streaming Play Seek Pause Progressive Download Movie
Adapting Bit Rate in Real-Time 300K @ 00:00? 700K @ 00:02? 2.4M @ 00:04? 1.5M @ 00:06? 2.4M @ 00:08? 300K (start quickly) 00:00 00:02 00:04 00:06 00:08 700K (good network) 2.4M (great network) 2.4M 1.5M (glitch) 2.4M (play on…) … Bit Rate Heuristics 300K
Smooth Streaming Design • Smooth Streaming File Format based on MP4 (ISO Base Media File Format) • Video is encoded and stored on disk as one contiguous MP4 file • One file per bit rate • Each video Group of Pictures (GOP) is stored in a Movie Fragment box • This allows easy fragmentation at key frames • Contiguous file is virtually split up into chunks when responding to a client request
Content Provider Benefits • Cheaper to deploy • Can utilize any generic HTTP caches/proxies • Doesn’t require specialized servers at every node • Better scalability and reach • Reduces “last mile” issues because it can dynamically adapt to inferior network conditions • Audience can adapt to the content, rather than requiring the content providers to guess which bit rates are most likely to be accessible to their audience
End User Benefits • Fast start-up and seek times • Start-up/seeking can be initiated on the lowest bit rate before moving up to a higher bit rate • No buffering, no disconnects, no playback stutter • As long as the user meets the minimum bit rate requirement • Seamless bit rate switching based on network conditions and CPU capabilities. • A generally consistent, smoothplayback experience
Experience Capture Create UX Encode Deliver Experience Expression Encoder 2
Silverlight 2 Media Features • Windows Media • VC-1, WMV8, WMV7 video • WMA Standard, WMA Pro, MP3 audio • Stream from Windows Media Services • Progressive download from IIS • Smooth Streaming • VC-1 Advanced Profile • WMA Standard, WMA Pro • HTTP-based adaptive streaming from IIS7 • Silverlight DRM, Powered By PlayReady
Silverlight 3 Media Features • New media features: • H.264 / AAC / MP4 playback • Extensible media format support • GPU accelerated video scaling • Custom effects – Pixel shaders • Perspective 3D transforms • Also coming • Broad encoding support for Smooth Streaming
Silverlight MPEG-4 Support • File Format • ISO Base Media File (*.mp4, *.3gp, *.mov) • Progressive download from Web server • Video Codec • H.264 (MPEG-4 AVC) • Baseline, Main and High profiles • Audio Codec • Advanced Audio Coding (AAC) • Low Complexity (LC)
Silverlight Format Extensibility • Raw A/V support • Silverlight media engine can play back raw YUV video and PCM audio • Developers can write custom video and audio decoders, and custom format parsers in .NET code • Can include 3rd party codec support in Silverlight application • Transparent and safe • Also good for video/audio synthesis
Silverlight Player Design • UI mockups first designed in Photoshop • Silverlight XAML UI then built in Expression Blend 2 based on mockups
Silverlight Player Development • Media player engine built on Open Video Player framework • http://www.openvideoplayer.com • Akamai-lead open source community project
Encoding for Smooth Streaming • Used Expression Encoder 2 in command line mode • Batch job automation • Produced 6 bitrates for 720p video • 8-core encoding workstations • 4x real-time turnaround time
Publishing • Content uploaded to Akamai CDN • PIPE • Proprietary Content Management System • Developed in-house at CTV • Tag content for publishing • Delivers RSS feeds to Silverlight clients • Uses Media RSS (MRSS) extension format
Silverlight Media Ecosystem Capture Encode Deliver Experience Design Develop Expression Encoder 2 Expression Blend 2 Visual Studio 2008
Player Design and Development • Origin Digital worked with Schematic creative agency to create UI mockups • Schematic built the Silverlight player UI in Expression Blend 2 based on mockups • Media player functionality was built ground up in Visual Studio 2008 • C# programming language
Content Creation • Video transcoding • Origin Digital used their in-house Odaptor service to capture, encode, transcode and manage rich media content • Can ingest digital (file, fiber, satellite) and physical (tape, disc) sources • Time synchronization • Time stamps inserted into live streams as script commands • Time stamps stored in XML files for on-demand content
Content Creation • Slide synchronization • PowerPoint slides exported to bitmap images • Images converted to Deep Zoom presentations using Deep Zoom Composer • Download it from http://silverlight.net/GetStarted • Each page tagged in XML to achieve slide synchronization • XML-based tagging system allows any document type to be assigned to timeline
Publishing • Odaptor also handles content management • Edit metadata • Manage playlists • Publish to CDN (Akamai) via FTP
Call to Action - Summary • Learn more • James Clarke: Content and UX Creation • John Bocharov: Content Delivery • Nick Brookins: Ad Delivery • Try • Microsoft Silverlight http://silverlight.net • Expression Studio http://microsoft.com/expression • IIS Media Services http://iis.net/Media • Bookmark • http://alexzambelli.com/blog/
© 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.