Monday, June 14, 2010

HTTP SMOOTH STREAMING AND FRAGMENTED MPEG-4































































































































  Microsoft
IIS Smooth Streaming
Adobe
Flash Dynamic Streaming
Apple
HTTP Adaptive Bitrate Streaming
Cost per Streaming Server Free download1 + $469 for OS2$45003 + OS cost4Cost of Web server5 + segmenter OS6
On-demand & Live Streaming
Live Streaming DVR7Pause & Seek
Streaming ProtocolHTTPRTMPHTTP
Scalability via HTTP Edge Caches 
Stateless Server Connection8 
Supported PlatformsSilverlight, Xbox 360, other Smooth Streaming-compatible players, and iPhone OS 3.09Flash Player 10, AIRiPhone OS 3.0, devices running QuickTime X
DRM Support for Live, VODPlayReadyNone10None
DRM ASP & Encoder ISV Support  
Interoperable DRM (DECE Approved)11  
Real-time Client and Server Logging12  
Programmable Client Side Switching Logic 
Live In-Stream Ad Integration   
Built-in Analytics Framework  
Delivery to Mobile Devices  
Native 64-bit Server Support  
Media ContainerMPEG 4 – Part 12 (Fragmented MP4)MPEG 4 – Part 12 (MP4), FLVMPEG-2 TS
Supported Video CodecsCodec Agnostic (currently supports VC-1 Advanced Profile & H.264 Baseline, Main, and High)H.264 Baseline, Main, and High; VP6H.264 Baseline Level 3.0
Supported Audio CodecsCodec Agnostic (currently supports WMA & AAC)AAC, MP3MP3, HE-AAC, AAC-LC
Maximum Bit RateNo limitNo limit1.6 Mbps
Default Fragment Length2 secondsn/a10 seconds
End-To-End LatencyAs low as 1.5 seconds (configurable)6 seconds30 seconds13
File Type on ServerContiguousContiguousFragmented
Client Programming PlatformMicrosoft .NET FrameworkAdobe ActionScriptObjective-C


Footnotes...
1 IIS Smooth Streaming is part of the free IIS Media Services download for Windows Server 2008 and Windows Server 2008 R2 .
2 Runs on any edition of Windows Server® 2008 or Windows Server 2008 R2 including Windows® Web Server, which has a list price of $469.
3 Assumes use of Adobe Flash Media Interactive Server to support Pause, Seek, Authentication, and higher scalability
4 Requires Windows Server 2003 SP2, Windows Server 2008, Red Hat® Enterprise Linux® 4, or Red Hat Enterprise Linux 5.2.
5 Runs on any Web server. Also requires the Apple streaming segmenter – see next note.
6 The Apple stream segmenter is a utility that receives encoded MPEG2-TS and breaks it into 10 second “chunks” for delivery. This free download requires an Intel-based Mac, with a Mac Pro or an XServe having two Ethernet network interfaces recommended.
7 Full DVR features include Pause, Seek, Fast Forward (e.g., 2x, 5x playback speeds), Fast Rewind, Go To Live, Instant Replay, and Slow Motion.
8 A stateless (non-persistent) connection between server and client increases scalability and allows seamless failover or rollover between load-balanced servers.
9 Support for adaptive streaming to the Apple iPhone from IIS Media Services 4 was announced on October 18th, 2009.
10 Future support was announced Sept. 10, 2009. Proposed availability is H1 CY10 for delivery to a future version of Adobe® Flash® Player and Adobe AIR™.
11 Digital Entertainment Content Ecosystem (DECE, LLC) is a consortium of major Hollywood studios, consumer electronics manufacturers and retailers, network hardware vendors, systems integrators and Digital Rights Management (DRM) vendors chartered to develop a set of standards for the digital distribution of premium Hollywood content.
12 Real-time logging for Silverlight applications using the IIS Advanced Logging extension.
13 Encoded live streams are processed by the Apple stream segmenter. This intermediate step results in increased latency for live delivery.

http://www.iis.net/download/SmoothStreaming
http://www.iis.net/download/SmoothFormatSDK



It's an adaptive streaming technology combining IIS and Silverlight. The core file format is fragmented MPEG-4, where each "chunk" of video is transmitted as a moof fragment starting with a Closed GOP, via a single HTTP request. A chunk will typically be 2-4 seconds long. Audio can be either muxed into the same chunk, or be provided in a parallel series of chunks to enable multilangauge audio or what have you.

The file format used is straight-up ISO fragmented MPEG-4, using XML and SMIL manifests to indicate what bitrates in the file set and where the fragments in those file are. We're not trying to make up a new file format here; just take advantage of existing technologies in a novel way.

Lots of other details to be had, including this roundup of links:
http://on10.net/blogs/benwagg/Beta-Release-of-Smooth-Streaming/

More importantly, zambelli had a great post showing how Microsoft is using the file format:
http://alexzambelli.com/blog/2009/02/10/smooth-streaming-architecture/

And we now have some sample files up that I encoded, including the media files and manifest files:
http://on10.net/blogs/benwagg/Big-Buck-Bunny-Smooth-Streaming-sample-for-download/

(if you're curious how it was encoded)
http://on10.net/blogs/benwagg/Behind-the-Scenes-at-SmoothHDcom-Encoding-Big-Buck-Bunny/

The current samples are VC-1 and WMA 10 Pro, but we'll be supporting H.264 and AAC-LC payloads with the next version of Silverlight later in 2009.

So, if you start seeing these *.ismv files out there, just know that they're
Fragmented MPEG-4
With VC-1 or H.264 for video
WMA 10 Pro or AAC-LC for audio


For apple http streaming, a tool called mediastreamsegmenter will take an MPEG2 transport stream and split it into smaller size chunk. Mediastreamsegmenter documentation is available here

No comments: