<<

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 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

/compression   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  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  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  Average 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

connection speeds (28.8/56 kbps)  Make the video fit   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 - 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 , 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 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 (the MPEG-4 codec)  Part 3 - MPEG-4 audio (AAC, etc)  Part 10 - (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  /cellular  TV - consumer electronics  Computer electronics  Only codec adopted by top three streaming providers (Apple, Adobe, ) 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 (e.g. no subscription or pay per view), free in perpetuity  Thank you (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 

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 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  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 )  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 , 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 (/16x16) – size of shape used for searching (smaller is more accurate  Sub- 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 ( > 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 ?  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  Calculates for you, mediainfo..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 (-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, , Chrome  Google announced plans to remove H.264 1/2011, hasn’t yet  WebM camp  Native – , Chrome,  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 9

Copyright © 2013 Jan Ozer, All Rights Reserved Scenario 2

 When you need:  Adaptive streaming  Live streaming  DRM 

Copyright © 2013 Jan Ozer, All Rights Reserved

Targeting Desktops

 Requirements may extend beyond just video  DRM, captions (public)  /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 – 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 /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 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