Workshop_SMEast_2013_final
Transcription
Workshop_SMEast_2013_final
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 DV - 720x480 720p - 1280x720 1080i/p - 1920x1080 Distribution DVD - 720x480 Streaming - 1080p or 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 Motion Moderate Motion High 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 Constrained VBR (usually 2X) for most streaming applications Broadband delivery can handle spikes Constrained VBR for virtually all progressive delivery Constrained VBR for most cellular, though not universal CBR CBR for live, particularly when limited outbound bandwidth CBR or constrained VBR for adaptive streaming (more later) 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 Simple plus: Support for "MPEG"-style quantization Support for B pictures (a.k.a. B-frames) Motion compensation Check specs on target devices Will refer to MPEG-4 encoding only in mobile segments Never use for computer playback Copyright © 2013 Jan Ozer, All Rights Reserved MPEG-4 Audio AAC-Low Complexity (AAC-LC) High Efficiency AAC (2003) The most basic and most broadly compatible In my tests, indistinguishable from HE AAC/HE AACv2 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 PreiPhone 4 Android 3.0 Software Android Hardware iPad 1 iPhone 45 iPad 2/3 Flash/ HTML5 Baseline Yes Yes Yes Yes Yes Yes Yes Main No No ? Yes Yes Yes Yes High No No ? No Yes Yes Yes Profile 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 (to-5g) iPhone 4 /iPod touch 4/ iPad 1&2 iPhone 4S IPhone 5/ New iPad Max video data rate H.264 Baseline to Level 1.3 768 kbps iPod nano/ classic/ iPod touch/iPhone to V4 H.264 Baseline to Level 3.0 2.5 Mbps H.264 Main to Level 3.1 14 Mbps H.264 High to Level 4.1 50 Mbps Max video resolution Frame rate Audio codec Max audio data rate Audio params 320x240 30 fps AAC-LC 160 kbps 48 kHz, stereo 640x480 30 fps AAC-LC 160 kbps 48 kHz, stereo 720p 30 fps AAC-LC 160 kbps 48 kHz, stereo 1080p 30 fps AAC-LC 160 kbps 48 kHz, stereo H.264 High to Level 4.1 62.5 mbps for level 108p 30 fps AAC-LC 160 kbps 48 kHz, stereo Video codec Profile/level 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 PreiPhone 4 Android 3.0 Software Android Hardwar e iPad 1 iPhone 4-5 Win 8 Phone iPad 2/3 PCs/ note books OTT 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 Profile 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 http://bit.ly/h264profile Copyright © 2013 Jan Ozer, All Rights Reserved Does Profile Matter? http://www.streaminglearningcenter.com/articles/h264-in-a-mobile-world-adios-tothe-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 Bframes 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 Reference B-pictures – Allows P-frames to reference B-frames Always enable 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 Tweaking Relevance As data rates increase, the impact of H.264related 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 videorelated 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, plus lots of other file details mediainfo.sourceforge.net/en 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 MP4/F4V files as encoded (no chunking) 2. Persistent connection between player and server 3. Player monitors: - Buffer - CPU utilization 4. Requests different stream when needed 5. Server sends different stream Copyright © 2013 Jan Ozer, All Rights Reserved Issues with RTMP Server required: RTMP packets can get blocked by Firewalls RTMP packets do not take advantage of HTTP caching mechanisms May increase cost (because servers cost $$) May limit scalability (if not enough servers for all viewers) 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: Chunked video files Index file (M3U8) Sends to HTTP Server Player Retrieves index Monitors buffer 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) MP4 .F4F Media file chunks .F4M Manifest files that tell player where to find file chunks Into Packager 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 subspec 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 In the past, that meant two separate encoding and delivery workflows Desktop - Flash (or Silverlight or DASH) AND Mobile - HLS for iOS/Android (maybe) OTT - HLS 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 Mobile Flash/HTML5/ 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 <Video> tag in HTML to call player Copyright © 2013 Jan Ozer, All Rights Reserved HTML5 Operation For video tag to work: 1. 2. Browser must be HTML5 compatible 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 Includes SDKs for iOS/Android Adds HLS (this summer) DASH (end of year) 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 Apple Tech Note TN2 Copyright © 2013 Jan Ozer, All Rights Reserved 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 Resolution should match playback window whenever possible Scaling upwards degrades quality 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