Encoding for Multiple Screen Delivery
Jan Ozer www.streaminglearningcenter.com @janozer [email protected]/ 276-238-9135
Questions
Most information derived from 0For more information, check out the book http://bit.ly/Ozer_multi Published, April 2013
Copyright © 2013 Jan Ozer, All Rights Reserved Agenda
Terms and terminology Producing H.264 Finding the optimal video configuration Introduction to adaptive streaming Choosing a delivery technology Producing for adaptive streaming If you see red, pay attention
Copyright © 2013 Jan Ozer, All Rights Reserved
Terms and Terminology
Codec/compression Bandwidth Resolution Data rate Bitrate control Container formats, program and transport streams
Copyright © 2013 Jan Ozer, All Rights Reserved Compression/Codec
Compression Used to shrink the size of video/audio still images Common codecs Video - H.264/AVC, H.265/HEVC, WebM, MPEG-2 Audio - MP3, AAC, WMV Still image - JPG, PNG, GIF Codecs - all of the above
Any technology that COmpresses in the studio, then DECompresses in the field
Copyright © 2013 Jan Ozer, All Rights Reserved
Why is Compression Important?
To achieve the target data rate, you have to compress Compression is “lossy,” the more you compress, the more you lose This is immutable
Copyright © 2013 Jan Ozer, All Rights Reserved About Bandwidth
What is bandwidth? Viewer’s connection speed Why is it important? Controls your viewer’s ability to retrieve and play video smoothly Higher delivery bandwidths mean higher data rates, which means better quality
Copyright © 2013 Jan Ozer, All Rights Reserved
Bandwidth - Where Are We?
Viewer’s connection speed to the Internet Average download speeds per Akamai State of the Internet: US - 7,611 kbps Canada - 6,607 kbps Mexico - 2,941 kbps UK - 6,470 kbps France - 4,804 kbps So why does CNN max out at 1,200 kbps?
Copyright © 2013 Jan Ozer, All Rights Reserved Paradigm Shift
Modem connection speeds (28.8/56 kbps) Make the video fit Broadband Make it good enough Make it affordable CNN is at 1,200 kbps; not to fit pipes, but because it’s “good enough” and affordable Cellular Make it fit
Copyright © 2013 Jan Ozer, All Rights Reserved
About Resolution
What is it? Actual pixels in the file
Copyright © 2013 Jan Ozer, All Rights Reserved Resolutions That We Know and Love
Acquisition Distribution DV - 720x480 DVD - 720x480 720p - 1280x720 Streaming - 1080p or 1080i/p - 1920x1080 smaller iPod/iPhone/iPad - 320x240 - 1080p
Copyright © 2013 Jan Ozer, All Rights Reserved
Why is Resolution Important
Most video starts life at 720p or higher Streamed at 320x180 to 1080p Resolution is key quality factor At a set bit rate, increasing resolution degrades quality because you must compress more pixels Can’t say that 1,200 kbps is “adequate” without knowing resolution For 640x360x25, it’s adequate For 1080p, it’s not
Copyright © 2013 Jan Ozer, All Rights Reserved What is Data Rate?
Amount of data per second of video Largely determines video quality At static resolution and frame rate, increasing bit rate increases quality Largely determines bandwidth costs
Copyright © 2013 Jan Ozer, All Rights Reserved
Constant vs Variable Bit Rate 800 kbps VBR
500 kbps CBR
300 kbps
Low Motion Moderate Motion Low Moderate High Motion Motion Motion
Copyright © 2013 Jan Ozer, All Rights Reserved VBR vs. CBR
Copyright © 2013 Jan Ozer, All Rights Reserved
Constant vs Variable Bit Rate
Constant Bit Rate (CBR) One bit rate applied to entire video, irrespective of content Pros: Computationally easy Fast - one pass will do it Cons: Doesn't optimize quality
Copyright © 2013 Jan Ozer, All Rights Reserved Constant vs Variable Bit Rate
Variable Bit Rate (VBR) Dynamic bit rate matches motion in video Pros: Best quality Cons: Need two or more passes Can produce stream with significant variability
Copyright © 2013 Jan Ozer, All Rights Reserved
How do I Produce the Best Quality CBR?
Use 2-pass CBR when available Scans file (like VBR), but packs data into a consistent stream Best of both worlds when available 1-pass of live or draft work
Copyright © 2013 Jan Ozer, All Rights Reserved How Do I Produce the Optimal VBR File? 2 passes or more Use “Constrained” Constrains to data rate to specified max Set Target and Max/Min Overall target – 500 kbps Max/Peak bit rate – how high rate can go when varying Rule of thumb is 1.5 - 2X of target If minimum setting, use .5x
Copyright © 2013 Jan Ozer, All Rights Reserved
When Should I Use VBR/CBR?
VBR CBR Constrained VBR (usually CBR for live, particularly 2X) for most streaming when limited outbound applications bandwidth Broadband delivery can CBR or constrained VBR handle spikes for adaptive streaming Constrained VBR for (more later) virtually all progressive delivery Constrained VBR for most cellular, though not universal
Copyright © 2013 Jan Ozer, All Rights Reserved Container Formats, Transport Streams, Program Streams
Container format: A meta-file format whose specification describes how data and metadata are stored Examples: MPG, MP4, MOV, F4V, WMV, FLV Transport stream: Transport stream specifies a container format encapsulating packetized elementary streams, with error correction and stream synchronization features for maintaining transmission integrity when the signal is degraded (e.g. - broadcast) Examples: .ts,
Copyright © 2013 Jan Ozer, All Rights Reserved
Why Do We Care?
When producing for single file or adaptive delivery, you must choose the right container format/transport stream for your application Streaming Flash - MP4, FLV, F4V, MOV - H.264 HTML5 - MP4 - H.264, WebM - VP8 iDevices - MP4, MOV - H.264 Adaptive - HTTP Live Streaming - .ts
Copyright © 2013 Jan Ozer, All Rights Reserved Questions on Terms and Terminology?
Should be 9:25
Download presentation handouts At www.streaminglearningcenter.com
Copyright © 2013 Jan Ozer, All Rights Reserved
Producing H.264
Introduction to H.264 H.264 encoding parameters
Copyright © 2013 Jan Ozer, All Rights Reserved Introduction to H.264
The MPEG-4 specification The MPEG-4 codec MPEG-4 spec audio options The H.264 codec H.264 Basics
Preload http://www.doceo.com/rethink2/Main.html
Copyright © 2013 Jan Ozer, All Rights Reserved
MPEG-4 Specification
Introduced in 1998 by ISO/IEC Moving Picture Experts Group 28 “Parts” within specification Part 2 - MPEG video codec (the MPEG-4 codec) Part 3 - MPEG-4 audio (AAC, etc) Part 10 - Advanced Video Coding (AVC/H.264) Part 14 - container format (MP4)
Copyright © 2013 Jan Ozer, All Rights Reserved The MPEG-4 Video Codec
Used only for low power devices: Two profiles: Simple Profile - very low power, low bandwidth applications Advanced Simple Profile - Check specs on target devices Simple plus: Will refer to MPEG-4 encoding Support for "MPEG"-style only in mobile segments quantization Never use for computer Support for B pictures (a.k.a. B-frames) playback Motion compensation
Copyright © 2013 Jan Ozer, All Rights Reserved
MPEG-4 Audio
AAC-Low Complexity (AAC-LC) The most basic and most broadly compatible In my tests, indistinguishable from HE AAC/HE AACv2 High Efficiency AAC (2003) Also called AAC+ and aacPlus High Efficiency AACv2 (2006) Also called enhanced AAC+, aacPlus v2 and eAAC+
Copyright © 2013 Jan Ozer, All Rights Reserved MPEG-4 Audio Summary
Recommendations Usage dictated by specs of target device When producing for multiple devices, use lowest common denominator When in doubt, choose AAC-LC Most compatible on the playback side Universally available on MPEG-4/H.264 encoders
Copyright © 2013 Jan Ozer, All Rights Reserved
What is H.264?
Adapted by ISO and ITU Telephony/cellular TV - consumer electronics Computer electronics Only codec adopted by top three streaming providers (Apple, Adobe, Microsoft) Streamcrest Associates http://www.streamcrest.com/SDF%20Final1.pdf
Copyright © 2013 Jan Ozer, All Rights Reserved What's MPEG-4/H.264 Cost?
For free Internet video (e.g. no subscription or pay per view), free in perpetuity Thank you Google (WebM) Still technically an obligation to sign a license, but there are no teeth and no motivation to enforce For subscription or PPV, there may be a royalty obligation Check www.mpeg-la.com
Copyright © 2013 Jan Ozer, All Rights Reserved
The Many Wrappers of H.264
.MP4 - official MPEG-4 wrapper .M4V - Apple’s variant for iTunes and devices .MOV - H.264 file for editing or QuickTime delivery .F4V - H.264 for Flash .3GP - (not shown) - phone .MPG - H.264 in MPEG-2 transport stream
Copyright © 2013 Jan Ozer, All Rights Reserved H.264 Encoding Parameters
The basics I, B and P-frames Search-related options Miscellaneous options
Copyright © 2013 Jan Ozer, All Rights Reserved
H.264 Encoding - Basics
Profiles and Levels Entropy encoding
Copyright © 2013 Jan Ozer, All Rights Reserved What are H.264 Profiles?
“Define a set of coding tools or algorithms that can be used in generating a bitstream”
Copyright © 2013 Jan Ozer, All Rights Reserved
Profiles and Playback Compatibility
Profile Pre- Android Android iPad 1 iPhone 4- iPad 2/3 Flash/ iPhone 4 3.0 Hardware 5 HTML5 Software Baseline Yes Yes Yes Yes Yes Yes Yes Main No No ? Yes Yes Yes Yes High No No ? No Yes Yes Yes
Using the wrong profile results in a file incompatible with your target Need to know profile of target device and choose appropriate profile Some interesting decisions to make when encoding for multiple device delivery
Copyright © 2013 Jan Ozer, All Rights Reserved Quality-Related Expectations
Baseline profile - fewest advanced algorithms: Lowest quality stream Easiest to encode and particularly decode High profile – most advanced algorithms Highest quality stream Hardest to encode/decode
Copyright © 2013 Jan Ozer, All Rights Reserved
Why Do Profiles Exist?
Meeting point for hardware vendor and video producer Example: Original video capable iPod is baseline only: why? Lower power (cheaper) CPU Less power consumption Video producer: to produce that will play on iPod, use Baseline profile
Copyright © 2013 Jan Ozer, All Rights Reserved Rule Number 1
Don’t exceed profile of target device Exclusively a concern with mobile Computers and OTT devices can play High profile (any level)
Copyright © 2013 Jan Ozer, All Rights Reserved
Required Profiles for iDevices
Original iPod iPod nano/ iPhone 4 iPhone 4S IPhone 5/ (to-5g) classic/ iPod /iPod touch 4/ New iPad touch/iPhone iPad 1&2 to V4 Video codec H.264 H.264 H.264 H.264 H.264 Profile/level Baseline to Baseline to Main to Level High to Level High to Level Level 1.3 Level 3.0 3.1 4.1 4.1 Max video data rate 768 kbps 2.5 Mbps 14 Mbps 50 Mbps 62.5 mbps for level Max video resolution 320x240 640x480 720p 1080p 108p Frame rate 30 fps 30 fps 30 fps 30 fps 30 fps Audio codec AAC-LC AAC-LC AAC-LC AAC-LC AAC-LC Max audio data rate 160 kbps 160 kbps 160 kbps 160 kbps 160 kbps Audio params 48 kHz, stereo 48 kHz, stereo 48 kHz, stereo 48 kHz, stereo 48 kHz, stereo Four playback classes Must configure video appropriately to play on target
Copyright © 2013 Jan Ozer, All Rights Reserved Required Profiles for Android http://developer.android.com/guide/appendix/media-formats.html
These recommendations are least common denominator software-only playback Most devices probably more capable (no table because too many manufacturers) For 100% compatibility, use these
Copyright © 2013 Jan Ozer, All Rights Reserved
Required Profiles for Windows 8 Phones
H.264-encoded video in MP4 container Files s/not exceed params for 7x27a CPU.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff462087%28v=vs.105%29.aspx
Copyright © 2013 Jan Ozer, All Rights Reserved Profiles and Playback Compatibility
Profile Pre- Android Android iPad 1 iPhone Win 8 iPad PCs/ OTT iPhone 3.0 Hardwar 4-5 Phone 2/3 note 4 Software e books Baseline Yes Yes Yes Yes Yes Yes Yes Yes Yes Main No No ? Yes Yes Yes Yes Yes Yes High No No ? No Yes Yes Yes Yes Yes
Using the wrong profile produces a file incompatible with your target Need to know profile of target device and choose appropriate profile
Copyright © 2013 Jan Ozer, All Rights Reserved
Big Decision #1
One set of files – all Baseline – that plays everywhere? Cheapest, easiest Separate files: Baseline – Very old iOS and Android Main – Old iOS and Android High – new iOS, computers and OTT Optimal quality, but more encoding, storage and administrative
Copyright © 2013 Jan Ozer, All Rights Reserved What is the Quality Difference?
Consulting project – questions “Is it worth creating two sets of files, one for mobile (with Baseline and Main), the other for Desktop (High)? “How much difference quality? Ran comparisons at aggressive data rates: 720p@800 kbps (Burberry is at 3 mbps) 640x480 @ 500 kbps (CNN is at 1200 kbps) 640x360 @ 240 kbps
Copyright ©http://bit.ly/h264profil 2013 Jan Ozer, All Rights Reserved e
Does Profile Matter?
http://www.streaminglearningcenter.com/articles/h264-in-a-mobile-world-adios-to- the-main-and-high-profiles.html http://www.doceo.com/rethink/Main.html http://www.doceo.com/rethink2/Main.html
Copyright © 2013 Jan Ozer, All Rights Reserved Does Profile Matter?
http://bit.ly/h264profiles
Copyright © 2013 Jan Ozer, All Rights Reserved
The Bottom Line
At 640x360@240 kbps: Some noticeable differences appear at these extreme encoding parameters
http://bit.ly/h264profiles Copyright © 2013 Jan Ozer, All Rights Reserved The Bottom Line
Key takeaway: The quality difference may be less than you would expect Two sets of files, one for mobile, one for desktop/OTT? Test quality difference at most extreme rates and see if the quality difference warrants it This client used all Baseline
http://bit.ly/h264profiles Copyright © 2013 Jan Ozer, All Rights Reserved
What are H.264 Levels?
“Constrains key parameters in the bitstream”
Copyright © 2013 Jan Ozer, All Rights Reserved H.264 Levels-Devices
Critical not to exceed level of target device Devices won’t load file encoded beyond max supported level So, make sure encoding parameters don’t exceed level (most templates do this)
Copyright © 2013 Jan Ozer, All Rights Reserved
H.264 Levels – Desktops
Flash/HTML5 players will load and attempt to play all profiles/all levels Exceeding a certain level won’t kick the file out like devices If resolution too large, file won’t play smoothly Up to 848x480 will play smoothly on most computers 720p may not play on some older/slower computers . Don’t use 720p and higher unless you’re offering adaptive (or otherwise multiple) streams
Copyright © 2013 Jan Ozer, All Rights Reserved Entropy Encoding
CABAC (Context-adaptive binary arithmetic coding) More efficient (e.g. better quality), but harder to decode Main/High profile only CAVLC (Context-adaptive variable-length coding) Less efficient, easier to decode
Copyright © 2013 Jan Ozer, All Rights Reserved
What Would YouTube Do?
High Profile CABAC
Copyright © 2013 Jan Ozer, All Rights Reserved I-, B- and P-frames
Caveats: Presented differently by each encoding tool Will only cover most important and most common parameters
Copyright © 2013 Jan Ozer, All Rights Reserved
What are I, B and P Frames?
I-Frame - encoded without reference to other frames (also called Key Frames) P - looks backward to I and P frames (predictive)
B - looks forward and backward to previous I and P frames (Bi-directional interpolated) No frames refer to B-Frame (most of the time)
Copyright © 2013 Jan Ozer, All Rights Reserved Configuring Key Frames
Least efficient – so largest (which is bad) But, key frames enhance interactivity All playback starts on a key frame When seeking to random frame, must start playback at key frame Maximum interval should be 5-10 seconds Key frames "reset" quality: Useful at scene changes Enable natural key frames or key frames at scene changes
Copyright © 2013 Jan Ozer, All Rights Reserved
Configuring Key Frames
Rules change completely when encoding a group of files for adaptive streaming Shorter key frame interval Disable scene change detection
Copyright © 2013 Jan Ozer, All Rights Reserved Configuring B Frames?
Main/High profiles only The most “efficient” frame So improves quality (comparisons to come) Hardest to decode Decoder has to have all referenced frames in memory to decode B-frame Frame usually delivered out of order, which also complicates playback
Copyright © 2013 Jan Ozer, All Rights Reserved
Typical B-Frame Encoding Parameters
Number is number of B frames between I and P-Frames; (IBBBPBBBPBBBPBBBP) 3 is recommended Reference frames (both P and B-frames) Number of frames searched for redundancies 5 is recommended setting
Copyright © 2013 Jan Ozer, All Rights Reserved Do B-Frames Matter?
YouTube does NOT use B- frames with many H.264 files it produces Though they are used with some encodes My tests in Episode with 0, 1, 3 and 5 B-frames 640x480@468 kbps 1280x720@800 kbps Showed very, very little difference (and then only in HD clip)
Copyright © 2013 Jan Ozer, All Rights Reserved
HD Comparisons
Copyright © 2013 Jan Ozer, All Rights Reserved Do B-Frames Matter?
Copyright © 2013 Jan Ozer, All Rights Reserved
Do B-Frames Matter?
Copyright © 2013 Jan Ozer, All Rights Reserved B-Frame Bottom Line
3 B-frames/5 reference frames is a good general purpose recommendation Don’t spend a lot of time worrying about “optimal” B-frame settings, because for most videos, it probably wouldn’t make that much of a difference
Copyright © 2013 Jan Ozer, All Rights Reserved
Advanced Frame Options
IDR frames Two kinds of key frames IDR key frame – no frame can reference frame before key frame Non-IDR key frames – B- and P-frames can reference frames before key frame All key frames should be IDR key frames in streaming files
Copyright © 2013 Jan Ozer, All Rights Reserved Advanced Frame Options
Adaptive B-frames – adapt frame type to improve quality Always enable Reference B-pictures – Allows P-frames to reference B-frames Enable for optimal quality Pyramid B-frame – allows B-frames to reference other B-frames Enable for optimal quality
Copyright © 2013 Jan Ozer, All Rights Reserved
Search Related Options
Searching for redundancies; multiple factors Search shape (8x8/16x16) – size of shape used for searching (smaller is more accurate Sub-pixel mode – (full/half/quarter pixel) – smaller is more accurate Fast - trades encoding speed for quality
Copyright © 2013 Jan Ozer, All Rights Reserved Slices
Divides frame into segments to speed encoding Assign a CPU to each slice But: Search for redundancies occurs within each slice If lots of inter-slice motion, encoder won’t find these redundancies Using slices can reduce quality Set to lowest value (either 0 or 1)
Copyright © 2013 Jan Ozer, All Rights Reserved
Reflections on the Utility of H.264 Tweaking
Less is more Many high-end hardware encoders offer minimal H.264 config options Elemental (right) Envivio Make most configuration decisions for you
Copyright © 2013 Jan Ozer, All Rights Reserved As We’ve Seen
Profile matters very little B-frames matters very little
Copyright © 2013 Jan Ozer, All Rights Reserved
Where to Focus Your Attention?
Get the config right Rez/data rate/key frames Choose the right H.264 codec (x264 > MC > Apple) You’ve captured 98% of potential quality
Copyright © 2013 Jan Ozer, All Rights Reserved Does it all Matter
As data rates Tweaking Relevance increase, the impact of H.264- related tweaking goes down
Low Data Rate High
Copyright © 2013 Jan Ozer, All Rights Reserved
Synthesis
Focus heavily on finding the optimal configuration for your video Don’t mess up anything else De-interlacing Aspect ratio Bitrate control Then, if you have the time, worry about tweaking to get the last 1-5%
Copyright © 2013 Jan Ozer, All Rights Reserved Questions on H.264
Should be 10:20
Download presentation handouts At www.streaminglearningcenter.com
Copyright © 2013 Jan Ozer, All Rights Reserved
Finding the Optimal Configuration
Understanding bits/pixel Applying bits/per pixel
Copyright © 2013 Jan Ozer, All Rights Reserved Why Bits/Pixel is Relevant
Which of these firms would you take video- related configuration advice from? Kind of tough to compare, isn’t it?
Copyright © 2013 Jan Ozer, All Rights Reserved
Why Bits/Pixel is Relevant
This adds some data, but how do they really compare compression-wise?
Copyright © 2013 Jan Ozer, All Rights Reserved Why Bits/Pixel is Relevant
How about now? Accenture’s bits/pixel is almost 7 times higher
Copyright © 2013 Jan Ozer, All Rights Reserved
Bits Per Pixel How much data applied to each pixel in video file To calculate: Data rate/(fps*pixels) Or, get MediaInfo Calculates for you, mediainfo.sourceforge.net/en plus lots of other file details
Copyright © 2013 Jan Ozer, All Rights Reserved Bits Per Pixel
In general At 640x360 or smaller, values above .2 almost clearly a waste CNN is about .121 for low motion ESPN maxes at .201, but that’s for sports Values drop as videos get larger (codecs work more efficiently at higher resolutions)
Copyright © 2013 Jan Ozer, All Rights Reserved
What’s the Magic Number?
Copyright © 2013 Jan Ozer, All Rights Reserved Corporate – Ultra Conservative
Copyright © 2013 Jan Ozer, All Rights Reserved
Corporate - Conservative
Copyright © 2013 Jan Ozer, All Rights Reserved Corporate - SD
Copyright © 2013 Jan Ozer, All Rights Reserved
Corporate – Aggressive
Copyright © 2013 Jan Ozer, All Rights Reserved Corporate Summary
Copyright © 2013 Jan Ozer, All Rights Reserved
Bottom Line
You should know the bits/pixel for each video that you produce If too low – quality suffers If too high, may not stream smoothly and bandwidth costs (if a factor) may be unnecessarily high
Copyright © 2013 Jan Ozer, All Rights Reserved Bottom Line
You should know the bits/pixel for each video that you produce If too low – quality suffers If too high, may not stream smoothly and bandwidth costs (if a factor) may be unnecessarily high
Copyright © 2013 Jan Ozer, All Rights Reserved
Questions on Bits Per Pixel
Should be 10:35
Download presentation handouts At www.streaminglearningcenter.com
Copyright © 2013 Jan Ozer, All Rights Reserved Introduction to Adaptive Streaming
What it is How the various alternatives work RTMP (server-based) HTTP (no server) ID existing technologies Transmuxing
Copyright © 2013 Jan Ozer, All Rights Reserved
What is Adaptive Streaming?
One stream in, multiple streams out Streams switched transparently to adapt to factors like: Changing delivery bandwidths (avoid hard stops) CPU utilization at client (avoid frame drops)
Copyright © 2013 Jan Ozer, All Rights Reserved Key Benefits
Match stream quality to connection and playback platform used by viewer
Mobile
Desktop
OTT
Copyright © 2013 Jan Ozer, All Rights Reserved
Technology Overview
Two types of systems Server-based (Flash, RTMP) HTTP HTTP Live Streaming (HLS) Smooth Streaming HTTP-based Dynamic Streaming (HDS) Dynamic Adaptive Streaming over HTTP (DASH)
Copyright © 2013 Jan Ozer, All Rights Reserved RTMP Flash - Overview
1. Uses standard 3. Player monitors: MP4/F4V files - Buffer as encoded (no - CPU utilization chunking) 4. Requests 2. Persistent different stream connection when needed between player 5. Server sends and server different stream
Copyright © 2013 Jan Ozer, All Rights Reserved
Issues with RTMP
Server required: May increase cost (because servers cost $$) May limit scalability (if not enough servers for all viewers) RTMP packets can get blocked by Firewalls RTMP packets do not take advantage of HTTP caching mechanisms Less efficient for popular videos Some CDNs are dropping support for RTMP
Copyright © 2013 Jan Ozer, All Rights Reserved In Contrast, HTTP Technologies
Don’t require a streaming server Better scalability Lower cost Ubiquitous CDN support Use HTTP protocol so: No firewall issues Will leverage standard HTTP caching structures More efficient for popular videos
Copyright © 2013 Jan Ozer, All Rights Reserved
Bottom Line
RTMP-based Dynamic Streaming has been most popular technology Market is moving towards HTTP
Copyright © 2013 Jan Ozer, All Rights Reserved Apple HTTP Live Streaming (HLS)
Encoder creates: Player Chunked video files Retrieves index Index file (M3U8) Monitors buffer Sends to HTTP Server Changes streams as necessary
Copyright © 2013 Jan Ozer, All Rights Reserved
The Manifest File Structure
Copyright © 2013 Jan Ozer, All Rights Reserved Perspective
All HTTP Technologies work the same way Create chunked data files (or segments within longer file) Create index files (also called manifest) Placed on HTTP server Player side Monitors playback buffer and (sometimes) CPU use Changes streams as necessary Uses index files to find the right files
Copyright © 2013 Jan Ozer, All Rights Reserved
Adobe HTTP Dynamic Streaming (HDS)
.F4F Media file chunks Into MP4 Packager .F4M Manifest files that tell player where to find file chunks
Player driven system Player monitors heuristics Retrieves different stream as necessary
Copyright © 2013 Jan Ozer, All Rights Reserved Smooth Streaming – How It Works Manifest file (.ism)
Chunked content file (ismv)
Copyright © 2013 Jan Ozer, All Rights Reserved
Dynamic Adaptive Streaming over HTTP (DASH)
Like all HTTP-based technologies, it has Fragmented video chunks (or single file with segments) Manifest files Supports multiple codecs, container formats and manifest file formats
Copyright © 2013 Jan Ozer, All Rights Reserved Where is DASH?
Lots of smoke, but no real fire No native support on any platform Plug-ins available on most platforms Microsoft/Google working on browser support
Copyright © 2013 Jan Ozer, All Rights Reserved
Where is DASH?
DASH committee working on H.264-only sub- spec that Adobe/MS will endorse Apple/Google (Android) have not announced support Royalty picture not cleared DASH for computers/mobile is very much a work in process Likely will find native support in OTT platforms first (because closed system), but HLS is very entrenched
Copyright © 2013 Jan Ozer, All Rights Reserved DASH Alternative? HLS
Several pre-fab video players (JW Player) are adding HLS support (As you’ll see) this makes HLS available on computers, mobile and OTT If these become pervasive, HLS could become the dominant format over DASH
Copyright © 2013 Jan Ozer, All Rights Reserved
Transmuxing Technologies
Perspective: most producers serve multiple clients Desktop - Flash (or Silverlight or DASH) AND Mobile - HLS for iOS/Android (maybe) OTT - HLS In the past, that meant two separate encoding and delivery workflows Separate encoder for each target Now, multiple streaming that: Input one set of streams, and “Transmux” to create second set for different target
Copyright © 2013 Jan Ozer, All Rights Reserved Transmuxing Technologies
Options Technology providers - Wowza, Real, Microsoft, Adobe
Copyright © 2013 Jan Ozer, All Rights Reserved
Transmuxing
Not re-encoding “re-wrapping” file into a different container format Creating necessary manifest files Delivering files to HTTP server All in real time
Copyright © 2013 Jan Ozer, All Rights Reserved Perspective
Key point: If serving multiple targets, you must produce using lowest common denominator H.264 encoding parameters Must be all baseline for streams targeted for mobile If so, can use one set of files to deliver to all three groups Bottom line: If serving multiple targets, must consider transmuxing
Copyright © 2013 Jan Ozer, All Rights Reserved
Questions on ABR?
Should be 11:10
Download presentation handouts at www.streaminglearningcenter.com
Copyright © 2013 Jan Ozer, All Rights Reserved Choosing a Delivery Technology – Two Scenarios
Single video file, no DRM, live or captioning HTML5 with Flash fallback should work for browser-based playback and OTT If you need adaptive, live, DRM or captions, choosing a path is much more challenging
Copyright © 2013 Jan Ozer, All Rights Reserved
Distributing Single Files
Desktop Flash/HTML5/ Mobile 100% playback of HTML5/H.264 OTT Each service has own delivery structure, typically MP4 files are recommended
Copyright © 2013 Jan Ozer, All Rights Reserved When Producing for Flash
Flash Player Playback Specifications
Video codec H.264 ONLY, not MPEG-4 Profiles Baseline, Main, High Audio codec AAC, AAC-LC, HE-AAC Container formats MP4 (preferred), F4V, M4V, M4A, MOV, 3GP
Copyright © 2013 Jan Ozer, All Rights Reserved
Understanding the HTML5 Playback Environment
HTML5 introduction HTML5 penetration - desktop HTML5 codec support
Copyright © 2013 Jan Ozer, All Rights Reserved HTML5 Overview
HTML5’s key benefit Death to plug-ins everywhere (Particularly Flash) How it works Instead of obtaining decoders for H.264 and other codecs in plug-ins Browsers supply players and decoders Use
Copyright © 2013 Jan Ozer, All Rights Reserved
HTML5 Operation
For video tag to work: 1. Browser must be HTML5 compatible 2. Browser must supply appropriate decoder Two key markets Desktop Mobile
Copyright © 2013 Jan Ozer, All Rights Reserved Penetration of HTML5-compatible Browsers on Desktops
Not HTML5 Comp+
So, at best, HTML5 is 69% of the market on desktops
http://www.netmarketshare.com/browser-market-share.aspx?qprid=2&qpcustomd=0
Copyright © 2013 Jan Ozer, All Rights Reserved
HTML5 Codec Support
H.264 Camp – IE, Safari, Chrome Google announced plans to remove H.264 1/2011, hasn’t yet WebM camp Native – Firefox, Chrome, Opera Via plug-ins – IE 9/Safari http://diveintohtml5.info/video.html
Copyright © 2013 Jan Ozer, All Rights Reserved HTML5 and H.264
Flash Player Playback Specifications
Video codec H.264 ONLY, not MPEG-4 Profiles Baseline, Main, High Audio codec AAC, AAC-LC, HE-AAC, HE-AACv2 Container formats MP4 (otherwise, may call a different player)
Copyright © 2013 Jan Ozer, All Rights Reserved
Desktop Analysis
HTML5 can access 69% of desktops (maximum) To access, you must produce two file versions H.264 – Chrome, Safari, IE9 Chrome leaving? In 1/2011, Google said Chrome would drop H.264; it hasn’t yet Firefox coming? Mozilla adding support for Android Firefox 17, so H.264 may be coming to Firefox soon (at least of OSs with H.264 support, which doesn’t include Windows XP) Web M – Firefox post 3.6, Opera post 10.6, Chrome
Copyright © 2013 Jan Ozer, All Rights Reserved Distributing to Mobile
HTML5 - 100% support in iOS, Android, Windows 8 phones and tablets H.264 - 100% support, though, as seen, profiles and levels differ
Copyright © 2013 Jan Ozer, All Rights Reserved
Distributing to OTT
Channel schema varies by device (HTML5 isn’t relevant) All devices play H.264 video up to (at least) 1080p, High Profile Any video configured for mobile/computers should play on OTT
Copyright © 2013 Jan Ozer, All Rights Reserved Optimal Single File Strategy
HTML5 with Flash Fallback HTML5 to all mobile devices HTML5 to all computers running HTML5 compatible browsers Fallback to Flash for non-HTML5 compatible browsers Can encode WebM & H.264 for optimal support Encode H.264 only and have Mozilla/Opera play Flash
Copyright © 2013 Jan Ozer, All Rights Reserved
What is Flash Fallback?
Video tag
MP4 WebM
If all else fails, play Flash
From Sorenson Squeeze 9
Copyright © 2013 Jan Ozer, All Rights Reserved Scenario 2
When you need: Adaptive streaming Live streaming DRM Closed captioning
Copyright © 2013 Jan Ozer, All Rights Reserved
Targeting Desktops
Requirements may extend beyond just video DRM, captions (public) Multicast/P2P (intranets)
Copyright © 2013 Jan Ozer, All Rights Reserved Bottom Line?
Flash or HLS Use JW Player in website So long as Flash is installed, will play HLS streams One set of streams for desktop, iOS, OTT
http://bit.ly/Wijering
Copyright © 2013 Jan Ozer, All Rights Reserved
Targeting Mobile
*
* Android has issues playing back HLS - bit.ly/Rayburn_android
Copyright © 2013 Jan Ozer, All Rights Reserved Realistically? It’s Just Not Easy
iOS – HLS Android Universal coverage – AIR application HLS – 56% penetration and aspect ratio issues Windows Phone 8 Smooth
Copyright © 2013 Jan Ozer, All Rights Reserved
Targeting OTT
Flash is non-existent HLS is ubiquitous and generally the preferred technology Can implement smooth in most platforms if preferred
Copyright © 2013 Jan Ozer, All Rights Reserved Adobe Primetime
Library that sits above Flash Player Adds HLS (this summer) DASH (end of year) Includes SDKs for iOS/Android iOS SDK will not include DASH Android SDK includes HLS stack that avoids HLS playback issues on that platform OTT support for both DASH/HLS by end of year Even with Primetime (licensing fees apply), DASH will not be available on all platforms
Copyright © 2013 Jan Ozer, All Rights Reserved
Summary
HLS is the only technology available on every target platform Today, DASH is not available on any platform Even though DASH is technically superior to HLS, it’s hampered by: The lack of player support The potential for royalties Seeming lack of interest from Apple and Google (for Android, not Chrome)
Copyright © 2013 Jan Ozer, All Rights Reserved Choosing a Delivery Technology
Should be 11:35
Download presentation handouts at www.streaminglearningcenter.com
Copyright © 2013 Jan Ozer, All Rights Reserved
Producing Adaptive Streams
Basic configuration options Number of streams Resolutions/data rates H.264 parameters Encoding adaptive streams Key frame settings Bitrate control Audio settings
Copyright © 2013 Jan Ozer, All Rights Reserved The Big Question
One set of streams for all devices? Customize streams for each class
Copyright © 2013 Jan Ozer, All Rights Reserved
What We Know Most producers customize Turner Broadcasting – NBA League Pass
Copyright © 2013 Jan Ozer, All Rights Reserved My Consulting Experience
Big sites tend to customize Large network in the US Separate streams for web, mobile, OTT Movie site in US Ditto, though some crossover Smaller sites Tend to use one set of files; all baseline
Copyright © 2013 Jan Ozer, All Rights Reserved
Why the Same Set of Streams?
Simplifies encoding (encode fewer streams) Can transmux Create one set for Mobile Transmux to Flash/OTT
Copyright © 2013 Jan Ozer, All Rights Reserved Synthesis
There is no right or wrong way I recommend: Attempt to find one set of streams that satisfies all using Baseline profile Test to see if Main or High delivers noticeably higher quality If so, customize for different targets If not, go with one set of streams
Copyright © 2013 Jan Ozer, All Rights Reserved
Mobile First
Slowest connection, lowest quality Configure for best service to mobile Try to configure at same resolutions as low end computer targets
AppleCopyright ©Tech 2013 Jan Ozer, Note All Rights Reserved TN2 Desktop (browser-based) Next
At least one stream for each window size in web site (HBO) Try to use same configuration as mobile
Copyright © 2013 Jan Ozer, All Rights Reserved
Then High End Mobile, Desktop and OTT
Full screen viewing on all devices Highest quality streams that you can afford
Apple Tech Note TN2224 Copyright © 2013 Jan Ozer, All Rights Reserved Stream Count – Bottom Line
At least one stream for each playback window More streams required for HD than SD SD – usually 3, 4 maximum HD – up to 11 More for entertainment than education/business Entertainment – about the experience Business – it’s about making sure the viewer can watch the stream More for subscription than general entertainment Provide more options when viewer is paying
Copyright © 2013 Jan Ozer, All Rights Reserved
What Resolution?
Never encode at larger than source Scaling upwards degrades quality Resolution should match playback window whenever possible Optimal quality and playback efficiency If you can’t match playback window, it’s better to scale up to larger resolutions than to scale down to smaller More efficient playback (GPU assisted) More efficient bandwidth consumption
Copyright © 2013 Jan Ozer, All Rights Reserved What Data Rates?
Considerations Must be sufficiently far apart to: Avoid constant switching Make a meaningful quality difference Will vary with stream size Smaller gaps at lower bandwidths Larger gaps at higher bandwidths
Copyright © 2013 Jan Ozer, All Rights Reserved
What Data Rates?
MTV Schema
Copyright © 2013 Jan Ozer, All Rights Reserved How do encoding parameters change?
Now we know stream count, resolution and data rate How do we customize encoding for adaptive? Key frame settings Bit rate control Audio parameters
Copyright © 2013 Jan Ozer, All Rights Reserved
Key Frame Interval
Why important - RTMP Flash – stream switches occur at key frame Key frame location must be identical in all streams Use same interval Disable scene change detection Typically shorter (2-5 seconds) to enable more responsive switching
Copyright © 2013 Jan Ozer, All Rights Reserved Key Frame Interval
Why important – HTTP technologies - key frame must be first frame of every chunk Key frame interval must divide evenly into chunk duration If 9-sec. chunks, use key frame interval of 3 sec As with RTMP, key frame location must be identical in all streams, so: Use same interval Disable scene change detection
Copyright © 2013 Jan Ozer, All Rights Reserved
VBR vs. CBR
Most conservative - CBR Or constrained VBR Max data rate 125-150% of target
Copyright © 2013 Jan Ozer, All Rights Reserved In General - Audio Parameters
Most conservative-same parameters for all files Popping can occur if audio parameters change But, does’t optimize experience at higher bit rates
Copyright © 2013 Jan Ozer, All Rights Reserved
In General - Audio Parameters
If you do switch audio parameters Switch from stereo to mono at same per channel sampling rate and bit rate From 64 kbps/44 kHz/16-bit/mono To 128 kbps/44 kHz/16-bit/stereo Test to ensure no artifacts when switching streams
Copyright © 2013 Jan Ozer, All Rights Reserved RTMP Flash Sources
Abhinav Kapoor, “Live dynamic streaming with Flash Media Server 3.5,” (adobe.ly/kapoorlivefms) Maxim Levkov, “Video encoding and transcoding recommendations for HTTP Dynamic Streaming on the Flash Platform,” (adobe.ly/Levkovhttp) Larry Bouthillier, “How to do Dynamic Streaming with Flash Media Server,” website (bit.ly/fmsdynamic) “Tutorial: On-demand HTTP Dynamic Streaming,” Adobe website (bit.ly/ondemanddynamic) “Encoding Guidelines Dynamic Streaming for Flash over HTTP,” Akamai website (bit.ly/akamaiwhitepaper) .
Copyright © 2013 Jan Ozer, All Rights Reserved
HTTP Flash Resources
Best sources: Maxim Levkov - Adobe - very detailed recommendations adobe.ly/Levkovhttp Akamai - White paper:”Encoding Guidelines for Dynamic Streaming for Flash over HTTP” bit.ly/akamaiwhitepaper
Copyright © 2013 Jan Ozer, All Rights Reserved Configuring your ABR streams
Questions? Should be 11:55
Download presentation handouts at www.streaminglearningcenter.com
Copyright © 2013 Jan Ozer, All Rights Reserved