350 likes | 597 Views
Smooth Streaming Live in HD 2010 Olympic Winter Games. Scott Stanfield CEO Vertigo scott@vertigo.com. Bob Cowherd Olympics Project Lead Vertigo bob@vertigo.com. 2010 Vancouver Winter Olympic Games. Stats. Video 46 million total unique users 710 million page views
E N D
Smooth Streaming Live in HD2010 Olympic Winter Games Scott Stanfield CEO Vertigo scott@vertigo.com Bob Cowherd Olympics Project Lead Vertigo bob@vertigo.com
Stats Video • 46 million total unique users • 710 million page views • 45 million video streams serving more than 3.5 million hours of video Photo • NBC: 1,573 galleries and 41,560 photos • Universal Sports: 4,400 galleries and 75,663 photos Video Bitrates • 3.45 Mbps – 1280 x 720 @ 30 fps • 1.95 Mbps – 848 x 480 @ 30 fps • 1.25 Mbps – 640 x 360 @ 30 fps • 900 Kbps – 512 x 288 @ 30 fps • 600 Kbps – 400 x 224 @ 30 fps • 400 Kbps – 312 x176 @ 30 fps
NBCOlympics.com feature run down
HD-quality video using IIS Smooth Streaming Technology • No buffering • Supports HD for users with high-end machines/connections without compromising the experience for low-end machines
DVR "Trick Play" control • Allows users to direct their own experience • Jog dial to rewind and fast-forward allows smooth and quick viewing of interesting content • Slow motion allows sports fans to examine their favorite moments in detail
Play-by-play and Key Events • Quickly navigate interesting content via Key events on the timeline, menu • Get deeper detail when watching an event via the play by play menu
Embedded Player • Allow fans of the site to become evangelists by embedding short videos in their blogs
Advanced advertising integration • IAB-certified solution required – 3rd party (DART) DLL needs to actually schedule the ads • Special logic needed to preserve a good UX for user who DVR back in the timeline • Hot-swappable configuration changes allow ad templates (composition) to be changed on the fly • Ad settings can similarly be changed (ex. 2 minute grace period on DVR ad model) • Tier 1 Sponsor Integration allows custom sponsorships
Video Content Explorer • Recommendations, Most Popular Videos, Video by Athlete, by Sport, Schedules, Athletes Related to this Video • Provide as many possible ways to explore a huge amount of video content • Maintain immersion in the player, keep high dwell times • Allow “snacking” on video
Twitter • Allow users to keep their fingers on the pulse of the Olympics on Twitter without leaving the player experience • Maintain immersion in the player to keep high dwell times
Smooth Streaming File Types Fragmented MP4s: • MP4 files: Video and Audio (*.ismv/.isma) • Server Manifest File (*.ism) • Client Manifest File (*.ismc) • It’s all about the manifest
Features Driven by In-Stream Data • Key Events Display on Timeline • Advertising integration • Ads and PBP markers come across as “in-stream” data tracks - you stream data just like you stream video • Advertising insertion via a back-end tool • Let’s look at this on the manifest
Live to VOD Transitions • Instant VOD Replays, Instant Highlight creation – big win for NBC • Live feed ends, player automatically becomes a VOD player • On stream stop, manifest itself changes “IsLive” attribute to “false”. Player hides live mode • Live manifest (.ISML) now copied over to a “VOD” location (.ISM). • CDN (Akamai) issues HTTP 302 redirects to VOD manifest for live manifest requests • No video data needs to be copied – the existing ISMVs are just referenced from a VOD manifest
Highlight Creation and the RCE • Rough Cut Editor – “Instant” highlights (see Jason’s session) • Highlight clips can start to be edited before the events in the clip have finished occurring in real life! • Composite Manifest files (.CSM) • References other smooth streaming manifests – only makes head requests. • ClipBegin/ClipEnd specified, relevant chunk references copied into the .CSM file. • Editors can create highlight clips without creating an actual new video or modifying any existing video, so storage cost is fixed. • Highlights of several different videos can be set up in a composite manifest that references them all. • Let’s take a look at a .CSM file
Graceful Failure Handling • The SSME (an underlying component of the SMF) is resilient to errors codes (502s, 404s, etc.) on up to 50 consecutive chunks. • Beyond that, player must cleanly handle failures: • Auto-retry on Media Failure (built in to SMF) • Display Alt. recommendations on Stream Failure • Demo: Let’s see how this works using Fiddler…
CDN Configuration (Akamai) • TTL Values for Player Assets, Video Streams • Balance origin offload vs. stale content • Cache-busting • Bust the client and proxy-side caches without busting the CDN’s edge server cache (DOS attack). • Requires CDN configuration to ignore client/proxy cache-busting query string parameters. (Let’s look at an example in Fiddler) • Security/URL Protection • Issue 403s on manifest requests that lack the authentication cookie • Geo-blocking • Restrict content per IP such that only U.S. traffic is allowed for NBCOlympics.com, Canadian traffic is allowed for CTV.com, etc.
Logging, Real-time Health Monitoring • Conviva • Real time traffic numbers • Error tracking • Media Failures vs. Stream Failures • Trends analysis: we can see problems as they start to happen and proactively fix them • Can also restrict to a specific player ID • Akamai • Reports on 4xx/5xx, origin errors, high/low traffic errors • Basic traffic reporting - tonnage reports, manifest totals, egress numbers • Smooth Streaming Health Monitoring • Allows you to see actual SSME health statistics live in real time. • Other logging: • Advertising consumption logging to DART • Video consumption logging to Omniture, Nielsen • Install tracking logging to Microsoft
Design and Development Methodology • MVVM Pattern • Separation of concerns within the code • Designers can work on views as developers build ViewModels • Enforce “Blendability” • If a code change causes a View to not work in Blend, fix immediately. • Continuous Integration, Automated Deployments – Zero Friction • One-click deployments to any environment • Automate obfuscation, versioning of XAP and JS assets • Archive all builds deployed beyond build site • Expose build environment to all partners
Authentication and Security • Securing our video streams: • Strategy: Don’t allow unauthorized apps to play the Olympics streams. • Time server sync up • Beacon call – send out a hashed shared secret plus the time value. • Akamai (CDN) will return 403s on the video chunks if the auth cookie becomes invalid • Man in the middle defense: • Strategy: Don’t allow unauthorized apps to launch videos in our player. • Video key generated by the host domain and passed in to the DOM. • Key constructed by hashing a shared secret plus the Video URL and ID. • Player refuses to play video if the keys don’t match. • Entitlement • Verify MSO subscription for premium content.
Other Lessons Learned • 3rdparty cookies: - MSN.com (Video content) vs. NBCOlympics.com (player assets) • Corporate/University Proxies
2010 Vancouver Olympics - Video Delivery Mio Babic, CEO of iStreamPlanet • Live Ad Insertion Demo • Back End Video Workflow • Video Workflow Automation • Origins at SuperNAP
Building For Scalability & Reliability • 17 days • 4,483hrs of content • 834 live events • 25 concurrent live streams • 100% success • 5 people • iSP Video Workflow Automation • Scheduling • Content Acquisition • Video Routing • Encoding • Publishing Points Management • Live-to-VOD transitioning • API or Web Interface Controls
Photo Viewer • Slideshow mode allows easy one-by-one viewing of automatically advancing galleries. • Grid Mode allows free-form and quick navigation of larger galleries. • Scroll to zoom in and out of photos • Scope of the Olympics Photo experience: • NBC: 1,573 galleries and 41,560 photos • Universal Sports: 4,400 galleries and 75,663 photos • Smooth Streaming for Deep Zoom
Q&A Scott Stanfield scott@vertigo.com