Transcript
| RGB Company Confidential
1
RGB_footer
| RGB Networks
1
header_bubbles
backgnd_bubbles_2_blank_100pct
Comparing Adaptive HTTP Streaming Technologies
Yuval Fisher , CTO RGB Networks
COMMTECH
May 2011
| RGB Company Confidential
2
RGB_footer
| RGB Networks
2
header_bubbles
Overview
.Review of Adaptive HTTP Streaming
.Review of widely available technology
.Apple HLS, Adobe HDS, Microsoft SSS
.(Not to mention DASH, HAS, AHS)
.Comparing specific Features
.delivery of multiple audio channels
.encryption
.closed captions / subtitling
.ability to insert ads
.trick modes (fast forward / rewind)
.fast channel change
.failover due to upstream issues
.stream latency
.ability to send other data to the client, including manifest compression
| RGB Company Confidential
3
RGB_footer
| RGB Networks
3
header_bubbles
Traditional (Unicast) Streaming
Encoder
Streamer
PC-with-Video-Image-Icon.gif
TV-with-Video-Image-Icon.gif
iPhone-with-Video-Image-Icon.gif
Clients
.Client/Server share state
.(Typically) connectionless protocol
.Susceptible to losses
.Firewall / NAT unfriendly
.Difficult to adapt to network conditions
| RGB Company Confidential
4
RGB_footer
| RGB Networks
4
header_bubbles
Adaptive HTTP Streaming
Encoder
HTTP Server /CDN
PC-with-Video-Image-Icon.gif
TV-with-Video-Image-Icon.gif
iPhone-with-Video-Image-Icon.gif
Clients
.Stateless server
.Uses HTTP/TCP
.Recovers from packet drops
.Firewall / NAT friendly
.Adapts to network / client conditions
.Fast start-up / seek
.Inexpensive CDN
| RGB Company Confidential
5
RGB_footer
| RGB Networks
5
header_bubbles
Adaptive HTTP Streaming Consequences
.Live and VoDworkflow are almost identicalBut…
.Latency
.Up to 30 seconds is typical
.Special low-latency tricks can bring this down to 1-2 seconds
.TCP transmission works well at low packet drop rates but not at all at higher (3-5%) packet drop rates
| RGB Company Confidential
6
RGB_footer
| RGB Networks
6
header_bubbles
Workflow Architecture I
| RGB Company Confidential
7
RGB_footer
| RGB Networks
7
header_bubbles
Workflow Architecture II
| RGB Company Confidential
8
RGB_footer
| RGB Networks
8
header_bubbles
Workflow Components
InputFeeds
Encoder
H.264
MBR/TS
Packager
PC-icon.jpg
CDN
EncryptionKey Server
Client
Multi-stream output
Scaled, progressive H.264
AAC-LC audio
Same audio in all profiles
SCTE-35 aware
Inter-encoder IDR aligned
Encryption capable
Stream/File ingest
Separate or integrated
HTTP GET/POST/PUT
File TTL
Manage many(!) files
HLS on iOSAndroid > 3.0, STB
SSS on PCs, iOS, STB
HDS on PCs, Android > 2.3
Sadly proprietary API
(MPEG-IF workgroup )
| RGB Company Confidential
9
RGB_footer
| RGB Networks
9
header_bubbles
Chunked Streaming: How Does it Work
MCj03895060000[1]
MCj04347930000[1]
MCj04040950000[1]
Cylinder Gray.jpg
MCj04316020000[1]
PC
Mobile/ Wireless
Sony-TV
Digital Set Top
HTTP Server
CHANNEL 2
CHANNEL 3
CHANNEL 1
Live Manifest/Playlist file
Transcoder/Encoder
.
.
.
chunks
profile
| RGB Company Confidential
10
RGB_footer
| RGB Networks
10
header_bubbles
Adaptive Streaming: How Does it Work
Cylinder Gray.jpg
MCj04316020000[1]
PC
Mobile/ Wireless
Sony-TV
Digital Set Top
HTTP Server
CHANNEL 1
Live Playlist files
Transcoder/Encoder
RGB_footer
| RGB Networks
11
header_bubbles
Streaming Adaptively
.Client adapts to local conditions.
.Resolution
.CPU load
.As available bitrate drops the client fetches lower bitrate chunks. As the available bitrate increases, the client fetches higher bitrate chunks.
| RGB Company Confidential
12
RGB_footer
| RGB Networks
12
header_bubbles
Live and VoD Adaptive Streaming
.Live
.Client refreshes manifest repeatedly
.Manifest/Playlist contains latest few (3) chunks
.(But… latency is longer)
.VoD
.Client fetches manifest just once
.Manifest/Playlist contains all the chunks
.Chunks are the same as in the live case .nearly same work flow for live and VoD
| RGB Company Confidential
13
RGB_footer
| RGB Networks
13
header_bubbles
Overview of …
.Apple HTTL Live Streaming (HLS)
.Microsoft Silverlight Smooth Streaming (SSS)
.Adobe HTTP Dynamic Streaming (HDS)
.But not..
.Move Networks
.MPEG DASH, 3GPP AHS, and OIPF HAS
.DRM vendors’ offering
| RGB Company Confidential
14
RGB_footer
| RGB Networks
14
header_bubbles
Comparison
.HLS
.Text based m3u8 playlist file is repeatedly downloaded
.Stream profile information and metadata in playlist file
.Chunks are MPEG-2 TS, integrating audio, video, data
.URLs reference chunks by name
.SSS
.XML based manifest file is loaded once with stream profile information
.Chunks carry information for fetching subsequent chunks
.Chunks are fMP4 with separate audio, video, data
.RESTfulURLs specify profile level and chunk time
.HDS
.XML based f4m manifest file is loaded once with stream information
.Binary bootstrap file with subsequent chunk info is repeatedly loaded
.Chunks are fMP4, integrating audio, video, data
.RESTfulURLs specify profile level and chunk sequence
| RGB Company Confidential
15
RGB_footer
| RGB Networks
15
header_bubbles
Basics
Encoder
Source
Packager
CDN
Client
HLS
Playlist
TS
TS
TS
TS
TS
TS
TS
TS
TS
TS
SSS&HDS
Aggregate MP4
Manifest
fMP4
fMP4
fMP4
fMP4
fMP4
fMP4
fMP4
fMP4
.For VoD, aggregate formats can be put on CDN
.For live, chunks are distributed on the CDN
.SSS & HDS have aggregate formats for each bitrate
.SSS has a separate aggregate format for each audio track and data track
| RGB Company Confidential
16
RGB_footer
| RGB Networks
16
header_bubbles
Feature Comparison
.delivery of multiple audio channels
.encryption
.closed captions / subtitling
.ability to insert ads
.trick modes (fast forward / rewind)
.fast channel change
.failover due to upstream issues
.stream latency
.ability to send other data to the client, including manifest compression
| RGB Company Confidential
17
RGB_footer
| RGB Networks
17
header_bubbles
Multiple Audio Channels
.HLS
.TS files can carry multiple audio
.Need separate TS chunks for separate video/audio pairs
.No aggregate format means all chunks need to be stored
.Most packagers don’t demuxand remuxthe TS input stream
.SSS
.Manifest change will cause client to request any video/audio pair
.Aggregate format alleviates duplicate chunk storage
.HDS
.Aggregate format alleviates duplication. But..
.No clean way to handle multiple languages, as the audio and video are multiplexed in the chunks. Must either send all audio versions in chunks (as in TS case), or create multiple aggregate formats
| RGB Company Confidential
18
RGB_footer
| RGB Networks
18
header_bubbles
Encryption
.HLS
.Whole chunk is encrypted .can’t extract information from chunk
.Authentication for key distribution is not part of specification
.Can use https
.DRM vendors’ solution often has a twist
.SSS
.Widely available/accepted PlayReady
.Client authentication is per PlayReady
.KMS ..packager interface is proprietary and requires integration
.HDS
.Flash Access
.Simpler KMS ..packager interface
.Just coming out for live streams
| RGB Company Confidential
19
RGB_footer
| RGB Networks
19
header_bubbles
Closed Captions / Subtitles
.HLS
.Supports ATSC Digital Television Standard Part 4 .MPEG-2 Video System Characteristics -A/53, Part 4:2007 as of iOS4.3
.Supports insertions of ID3 tags which can carry timed text information
.DVB teletextneeds conversion into one of these formats (DVB bitmaps are a pain)
.SSS
.Separate data track using TTML subset
.Plans to support SMPTE TTML which supports inclusion of images (e.g. DVB bitmaps) in the overlays as well
.HDS
.No ‘native’ support, but..
.Supports client events via event cues and can pull in data using ActionScript, but client must be written
| RGB Company Confidential
20
RGB_footer
| RGB Networks
20
header_bubbles
Ad Insertion: pre-transcode
Live Feeds
Transcode
Multi-zone AdInserted Streams
TV-icon.jpg
PC-icon.jpg
Ad Server
(SCTE-30)
iPhone-icon-rotated.jpg
iPhone-icon-rotated.jpg
TV-icon.jpg
iPhone-icon-rotated.jpg
PC-icon.jpg
Ad Insert
Transcode
Zone 1PC Smooth Streaming
Zone 2
iPad/iPhone HLS
Zone N
Packager
| RGB Company Confidential
21
RGB_footer
| RGB Networks
21
header_bubbles
Ad insertion: post-transcode
Live
Feeds
Transcoder
Multi-zone Ad
Inserted Streams
TV-icon.jpg
PC-icon.jpg
Ad Server(SCTE-30)
iPhone-icon-rotated.jpg
iPhone-icon-rotated.jpg
TV-icon.jpg
iPhone-icon-rotated.jpg
PC-icon.jpg
Transcode
Ad Insert
Zone 1
PC Smooth Streaming
Zone 2iPad/iPhone HLS
Zone N
Packager
| RGB Company Confidential
22
RGB_footer
| RGB Networks
22
header_bubbles
PC 1
HTTP Server / Splicer / ADS/CIS
CHANNEL 1
Live Manifest/Playlist file
Transcode
chunks
profile
Live
Feeds
HTTP Ad Server
PC 2
SCTE-130
ADM / POIS
Chunk-based ad insertion
| RGB Company Confidential
23
RGB_footer
| RGB Networks
23
header_bubbles
Ad Insertion: chunk based
.HLS
.Simple/easy .just change playlist
.SSS
.Can do client-side insertion using ‘sparse tracks’ (client fetches ad and inserts it on cue)
.Network side insertion:
.Rquirescareful timing of chunks or re-stamping of data in fMP4
.Must use proxy to redirect requests
.HDS
.Has ability to trigger ActionScriptevents, but no ‘native’ support
.Network side insertion:
.Requires keeping track of chunk sequence number
.Requires binary manipulation of bootstrap files
RGB_footer
| RGB Networks
24
header_bubbles
Trick Modes and Fast Channel Change
.HLS -No native trick mode support
.SSS .No native support, but supports zoetropes(but spec isn’t public)
.HDS .Has support for fast forward and rewind
.Channel ‘tune in’ depends on chunk size and client implementation (and available low bandwidth profile)
.SSS & HDS recommend short (2-4sec) chunk size
.Can use small chunks with HLS too
| RGB Company Confidential
25
RGB_footer
| RGB Networks
25
header_bubbles
Failover
.HLS
.Built in client-side support for failover
.Simplifies network-managed failover
.SSS & HDS
.Specification doesn’t have a client-side built-in failover
.Run time can allow complex behavior
| RGB Company Confidential
26
RGB_footer
| RGB Networks
26
header_bubbles
Latency
.HLS
.Recommended 10 second chunk leads to long latency (30 seconds)
.Can be run with shorter chunks
.SSS
.Has special low-latency mode (<2sec)
.HDS
.Short chunks lead to lower latency (several seconds)
| RGB Company Confidential
27
RGB_footer
| RGB Networks
27
header_bubbles
Metadata and Manifest Compression
.Playlist / Manifest files can store metadata
.e.g. time associated with each chunk
.Ad chunks
.All three can trigger client events in the client run-time using a separate data track
.SSS can send compressed manifests
.Reduce startup latency
.Small portion of the overall data
| RGB Company Confidential
28
RGB_footer
| RGB Networks
28
header_bubbles
Feature
HLS
SSS
HDS
Multiple audio channels
.
Encryption
. .
Closed captions / subtitling
.
.
ability to insert ads
.
.
trick modes (fast forward / rewind)
.
fast channel change
.
.
Client failover
.
stream latency
.
.
Metadata
.
.
.
Feature Summary
| RGB Company Confidential
29
RGB_footer
| RGB Networks
29
header_bubbles
backgnd_bubbles_2_blank_100pct
Summary
| RGB Company Confidential
30
RGB_footer
| RGB Networks
30
header_bubbles
Apple HTTP Live Streaming
.Advantages:
.Simple protocol = easy to modify
.TS chunks .rich eco-system, carriage of metadata
.Native to iOS.monetizable
.Disadvantages:
.No native Windows support
.TS files muxthe audio, video and data together
.Longer chunk size .slower bitrate adaptation
.No standard aggregate format (A day’s worth of one channel with 8 profiles at 10 second chunk duration will consist of almost 70,000 files)
| RGB Company Confidential
31
RGB_footer
| RGB Networks
31
header_bubbles
Microsoft Silverlight Smooth Streaming
.Advantages:
.Microsoft IIS aggregate format
.IIS brings analysis and logging tools + HLS
.Small chunk size allows for rapid adaptation
.Segregated video / audio / data delivery .reduced storage and added flexibility
.Many advanced features
.Disadvantages:
.IIS server in the data flow adds an extra point of failure
.Silverlight client plug-in required (but over 67% penetration)
| RGB Company Confidential
32
RGB_footer
| RGB Networks
32
header_bubbles
Adobe HTTP Dynamic Streaming
.Advantages:
.Ubiquitous Flash client (>96% internet enabled desktops world wide )
.Flash run time environment ads interactive functionality
.Aggregate file format
.Short chunk duration
.Disadvantages:
.Late comer .stability / incomplete live workflow
.Binary bootstrap format not super friendly
| RGB Company Confidential
33
RGB_footer
| RGB Networks
33
header_bubbles
backgnd_bubbles_2_blank_100pct
Questions: yfisher@rgbnetworks.com
Thank You
Thank You
| RGB Company Confidential
34
RGB_footer
| RGB Networks
34
header_bubbles
References
[HLS] HTTP Live Streaming, R. Pantos, http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
[MP4] International Organization for Standardization (2003). \"MPEG-4 Part 14: MP4 file format; ISO/IEC 14496-14:2003\"
[SSBLOG] http://blog.johndeutscher.com/, http://blogs.iis.net/samzhang/ , http://alexzambelli.com/blog/, http://blogs.iis.net/jboch/
[SSTO] Smooth Streaming Technical Overview, http://learn.iis.net/page.aspx/626/smooth-streaming-technical-overview/
[ATCA] ATSC Digital Television Standard Part 4 .MPEG-2 Video System Characteristics (A/53, Part 4:2007), http://www.atsc.org/cms/standards/a53/a_53-Part-4-2009.pdf
[TTML] Timed Text Markup Language, W3C Recommendation 18 November 2010, http://www.w3.org/TR/ttaf1-dfxp/
[SSS] IIS Smooth Streaming Transport Protocol, http://www.iis.net/community/files/media/smoothspecs/%5BMS-SMTH%5D.pdf
[F4M] Flash Media Manifest File Format Specification, http://osmf.org/dev/osmf/specpdfs/FlashMediaManifestFileFormatSpecification.pdf
[HDS] HTTP Dynamic Streaming on the Adobe Flash Platform, http://www.adobe.com/products/httpdynamicstreaming/pdfs/httpdynamicstreaming_wp_ue.pdf
[AHS] 3GPP TS 26.234: \"Transparent end-to-end packet switched
streaming service (PSS); Protocols and codecs\".
[HAS] OIPF Release 2 Specification -HTTP Adaptive Streaming http://www.openiptvforum.org/docs/Release2/OIPF-T1-R2-Specification-Volume-2a-HTTP-Adaptive-Streaming-V2_0-2010-09-07.pdf