SlideShare une entreprise Scribd logo
1  sur  80
Choosing an HTML5 player
An overview of how media engines work & benchmark
of open-source frameworks
Streaming Media West – Track D
Tuesday, May 10, 2016
1:45 to 2:30 pm
● Pioneers in hybrid video delivery systems to accompany exponential growth in OTT
traffic
● Experts in HTML5 and consultants in the transition from Flash
Infinite scale, limitless delivery.
Streamroot: Who are we?
And who are you?
Infinite scale, limitless delivery.
I. HTML5 basics
A. Why make the transition
B. Formats, APIs, standardization
II. Delving in to the migration
A. Formats & Encoding
B. Players
C. DRMs, ads and business features
D. HTTPs
III. Choosing a player
A. Modern player architecture
B. Considerations & what to look for
C. Benchmark of open-source and proprietary options
What we’ll be talking about today.
Infinite scale, limitless delivery.
IV. Examples: hls.js & dash.js
Debugging, subtitles, encryption, ads, analytics, Streamroot, ABR
V. Going from POC to production
A. What could go wrong
B. What happens after I do a POC? Workflow, fallbacks, etc.
C. Smoothly transitioning into production: QoS metrics, AB testing
D. Useful tools & links
What we’ll be talking about today.
Infinite scale, limitless delivery.
Infinite scale, limitless delivery.
I. It’s time to switch to HTML5.
Infinite scale, limitless delivery.
I. HTML5 Basics
APIs
1. Media Source Extensions
• Makes HTTP adaptive streaming
possible in HMTL5
• Use JavaScript to build streams and
inject data into the video tag’s buffer
Source: W3C specs
Infinite scale, limitless delivery.
I. HTML5 Basics
APIs
2. Encrypted Media Extensions
• Allows for DRMs in HMTL5
• Provides a way to interact with
content protection systems
• Plugin-free
• Common Encryption (CENC):
standardized key and encryption
methods - multiple DRMs for same
file
Source: W3C specs
Infinite scale, limitless delivery.
I. HTML5 Basics
APIs
Source: Bitmovin
Infinite scale, limitless delivery.
I. HTML5 Basics
Formats available
HDS
Infinite scale, limitless delivery.
I. HTML5 Basics
Formats available
Source: Encoding.com
Infinite scale, limitless delivery.
I. HTML5 Basics
Standardization
CMAF…!
Infinite scale, limitless delivery.
II. Delving into the migration
What are you using
today?
Infinite scale, limitless delivery.
II. Delving into the migration
Formats & Encoding
Significant changes to the encoding side that can take some time
Encode to MP4 and then repackage as necessary for target platforms
Lots of packaging solutions out there: Wowza, Unified Streaming Platform, etc.
Infinite scale, limitless delivery.
II. Delving into the migration
Players
More flexible architecture, with separation between UX and media engine logic
When choosing: look at use case and feature requirements
 Section III.
Infinite scale, limitless delivery.
II. Delving into the migration
Business features
DRMs: switch from token authorization to HMTL5 DRM
Ads: rewrite the ad logic in HTML5
Business logic: make sure 3rd party plugins are also compatible with HTML5
Infinite scale, limitless delivery.
II. Delving into the migration
HTTPS
Beware!
Playing HTTP streams even in an HTTPS environment is not an option in HTML5.
Changing to HTTPs can be expensive and long, depending on your CDN.
Infinite scale, limitless delivery.
It’s like...
III. Player architecture
Modern player architecture
… your favorite burger.
Infinite scale, limitless delivery.
It’s like...
III. Player architecture
Modern player architecture
Infinite scale, limitless delivery.
UI
III. Player architecture
Infinite scale, limitless delivery.
Skin
UI
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Authentication
UI
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Playlists
Authentication
UI
Social sharing
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Playlists
Authentication
UI
Media Engine(s)
Social sharing
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Playlists
Authentication
Media Engine(s)
UI
Media Engine(s)
Social sharing
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Playlists
Authentication
Social sharing
Media Engine(s)
UI
Media Engine(s)
Playback
& DRM
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Playlists
Authentication
Content decryption
module
Media Engine(s)
DRM
Manager
UI
Media Engine(s)
Playback
& DRM
Social sharing
III. Player architecture
Infinite scale, limitless delivery.
Skin
Ads
Playlists
DRM
Manager
Decoder /
Renderer
Authentication
Content decryption
module
Media Engine(s)
UI
Media Engine(s)
Playback
& DRM
Social sharing
III. Player architecture
Infinite scale, limitless delivery.
1. Skin - the graphic design
of your player
III. Player architecture
User Interface
Infinite scale, limitless delivery.
1. Skin - the graphic design
of your player
2. UI logic - features defining
all interaction with the user
on top of video playback
Lots of plugins available, video.js for
example
III. Player architecture
User Interface
Infinite scale, limitless delivery.
3. Business logic
Authentication
Payment
Ads
*Configuration / device detection logic!
III. Player architecture
User Interface
Infinite scale, limitless delivery.
Sample UI workflow with authentication, channels and pre-roll advertisement
III. Player architecture
User Interface
Infinite scale, limitless delivery.
Easily customizable, with many plugins available for use or inspiration.
Add features as plugins/modules to the core UI base.
Create a unified user experience across browsers, even if the media engine behind it
may vary from device to device.
Check out tools such as React native, Haxe
III. Player architecture
User Interface
Infinite scale, limitless delivery.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
Extremely important yet too often neglected.
Most often necessary to have several media engines to reach your audience.
III. Player architecture
Media Engine
Infinite scale, limitless delivery.
III. Player architecture
Decoder & DRM manager
1. General criteria
- device, format and codec dependencies
Infinite scale, limitless delivery.
III. What to look for
2. Custom features
- DRMs
- DVR subtitles
- QoS, etc.
3. Perfs & Quality
- startup time
- ABR
- error strategies
4. Street cred, robustness, ease of use
Light-touch dev:
- Simplicity and stablity of the media engine
- Assess extensibility & ease of incorporating special features
- Media engine customization
- Events exposed
- Debugging
Infinite scale, limitless delivery.
Digging deeper:
- Robust yet flexible core design
- Tests and testing coverage
- community & support
III. What to look for
Infinite scale, limitless delivery.
III. What’s out there?
Disclaimer!
- What follows are all GOOD options - probably the best out there.
- We’ve tried to be solely objective based on our research and experience.
- Features, support and upkeep are always changing.
Infinite scale, limitless delivery.
PROs
Supported by DASH-IF
Pushed & maintained by Akamai + tier-1s (BBC)
Highest visibility, big community
Lots of features and use-cases handled
Widely used in production
Huge test suite + online test page
CONs
A little bit of technical debt and complexity
Non-trivial API and customization config
H264/AAC support only
III. What’s out there?
Infinite scale, limitless delivery.
PROs
Built by an entire at Google: solid & smart
Performances and robustness, quick to improve
Simple to get started, good tutorials
Only one supporting WebM, VP8, VP9, open audio codecs
Good support on github and Google groups
CONs
Google-centric
Today lacks some features for large broadcasters
Stricter PR & features policy
No ES6 support
Fewer OVP and open-source all-in-one integrations
III. What’s out there?
Infinite scale, limitless delivery.
PROs
Lead by Dailymotion, built from scratch by author of Flashls
Enormous traction and visibility
Clear architecture design, easily extendable
Good robustness and debug demo, responsive support
Widely used in prod by all-in-one players + tier-1s
CONs
Not all HLS features supported yet
Some restrictions from the transmuxing & HLS: no DRMs today,
only AES128
III. What’s out there?
Infinite scale, limitless delivery.
PROs
Seamless Flash fallback with a MediaSource polyfill
De facto solution for HLS with VideoJS
Large community of users (Brightcove + Videojs)
In production with Brightcove with a wide range of customers
CONs
Videojs plugin: not usable without videojs
Lack of public debug tools or pages
Learning curve on providers & tech behind it
III. What’s out there?
But there are also a lot of off-the-shelf options.
Infinite scale, limitless delivery.
III. What’s out there?
All available online on github:
https://github.com/streamroot/benchmarking-player
Contains:
- Media engines code
- Examples
Infinite scale, limitless delivery.
IV. Examples
MSE example
https://github.com/streamroot/benchmarking-player/blob/master/samples/mse.html
Infinite scale, limitless delivery.
IV. Examples
https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-AES.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-subtitles.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-ads.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-streamroot.html
Online debug demo: debug http://dailymotion.github.io/hls.js/demo/
Videojs Ads plugin: https://github.com/videojs/videojs-contrib-ads
Ads state diagram: https://raw.githubusercontent.com/videojs/videojs-contrib-ads/master/ad-states.png
Hls.js Events: https://github.com/dailymotion/hls.js/blob/master/API.md#runtime-events
Video Events simulator: http://docs.youbora.com/video-event-simulator/
Streamroot Clappr integration: https://github.com/streamroot/clappr-p2phls-plugin
Strearmoot Videojs integration: https://github.com/streamroot/videojs5-hlsjs-p2p-source-handler
Infinite scale, limitless delivery.
IV. Examples
https://github.com/dailymotion/hls.js/blob/master/src/controller/cap-level-controller.js#L68
Checks the max CapLevel
corresponding to current
player size
Frequency: every 1000 ms
IV. Examples: hls.js CapLevel
Infinite scale, limitless delivery.
https://github.com/dailymotion/hls.js/blob/master/src/controller/fps-controller.js#L33
Calculates the dropped frames
per second ratio.
If > 0.2, bans the level forever 
goes into restricted capping levels
fpsDroppedMonitoringThreshold
fpsDroppedMonitoringPeriod
IV. Examples: hls.js dropped frames
Infinite scale, limitless delivery.
https://github.com/dailymotion/hls.js/blob/master/src/controller/stream-controller.js#L131
First segment is loaded from
the first level in the playlist, then
continues with normal ABR
rule.
IV. Examples: hls.js startup strat
Infinite scale, limitless delivery.
https://github.com/dailymotion/hls.js/blob/master/src/controller/abr-controller.js
Before: Simple algorithm,
inspired by Android’s AVController’s ABR algo
Now: EWMA smoothing
Infinite scale, limitless delivery.
IV. Examples: hls.js bandwidth est.
https://github.com/dailymotion/hls.js/blob/master/src/controller/abr-controller.js#L51
Infinite scale, limitless delivery.
IV. Examples: hls.js abort rule
STRONG POINTS COULD BE IMPROVED
Very simple and understandable
Startup time constraint could be improved to get
the lowest level first
Handles CPU & player size constraints
Conservative BW adjustment to avoid oscillation,
with EWMA smoothing
Sound emergency abort mechanism
Infinite scale, limitless delivery.
IV. Examples: hls.js sumup
1. Tweak the parameters
https://github.com/dailymotion/hls.js/blob/master/API.md#fine-tuning
Dropped FPS:
capLevelOnFPSDrop: false,
fpsDroppedMonitoringPeriod: 5000,
fpsDroppedMonitoringThreshold: 0.2
PlayerSize:
capLevelToPlayerSize: false,
2. Write your own rules!
AbrController: AbrController
capLevelController: CapLevelController,
fpsController: fpsController
Bandwidth estimation:
abrEwmaFastLive: 5.0,
abrEwmaSlowLive: 9.0,
abrEwmaFastVoD: 4.0,
abrEwmaSlowVoD: 15.0,
abrEwmaDefaultEstimate: 500000,
abrBandWidthFactor: 0.8,
abrBandWidthUpFactor: 0.7,
Infinite scale, limitless delivery.
IV. Examples: hls.js how to improve
https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-widewine.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-subtitles.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-ads.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-streamroot.html
Online debug page: http://dashif.org/reference/players/javascript/v2.3.0/samples/dash-if-reference-
player/index.html
Dash.js metrics & events: http://cdn.dashjs.org/latest/jsdoc/module-DashMetrics.html
Dash.js ABR logic: https://github.com/Dash-Industry-Forum/dash.js/wiki/ABR-Logic
Streamroot Videojs integration: https://github.com/streamroot/videojs5-dashjs-p2p-source-handler
Infinite scale, limitless delivery.
IV. Examples: Dash.js
Source: DASH-IF, Maxdome
Infinite scale, limitless delivery.
IV. Examples: Dash.js
STRONG POINTS COULD BE IMPROVED
Smoothes bandwidth No quantization of bitrates
Segment abort mechanism to avoid buffering during
network drops
Doesn’t handle CPU & Player size constraints
Rich buffer threshold to avoid BW oscillations
Infinite scale, limitless delivery.
IV. Examples: Dash.js sumup
1. Tweak the Parameters
ThroughputRule:
AVERAGE_THROUGHPUT_SAMPLE_AMOUNT_LIVE = 2;
AVERAGE_THROUGHPUT_SAMPLE_AMOUNT_VOD = 3;
AbandonRequestRule:
GRACE_TIME_THRESHOLD = 500;
ABANDON_MULTIPLIER = 1.5;
2. Write your own rules
https://github.com/Dash-Industry-Forum/dash.js/wiki/Migration-2.0#extending-dashjs
https://github.com/Dash-Industry-Forum/dash.js/blob/development/src/streaming/rules/abr/ABRRulesCollection.js
BufferOccupancyRule:
RICH_BUFFER_THRESHOLD = 20
Infinite scale, limitless delivery.
IV. Examples: Dash.js how to improve
Other media engines
https://github.com/streamroot/benchmarking-player/blob/master/samples/shaka.html
https://github.com/streamroot/benchmarking-player/blob/master/samples/videojs.hls.html
Infinite scale, limitless delivery.
IV. Examples
What could go wrong?
- - Encoding
- - DRMs
- - HTTPS
Infinite scale, limitless delivery.
V. The Path to Production!
I did a POC. Now what?
- - Do you need a Flash Fallback?
- - Moving the UX to HTML5
- - Build the media engine extendable architecture (providers)
- - Fallback alternatives
https://github.com/streamroot/videojs5-hlsjs-source-handler/blob/master/lib/videojs5-hlsjs-source-handler.js
https://github.com/videojs/video.js/blob/66922a818e588b8954989c439e1be790777966ae/docs/guides/tech.md
https://github.com/faisalman/ua-parser-js
Infinite scale, limitless delivery.
V. The Path to Production!
Making a smooth transition.
- - HTML5 player rollout
- - Playback & QoS Metrics
- - AB Testing!
Infinite scale, limitless delivery.
V. The Path to Production!
Infinite scale, limitless delivery.
Streamroot
workflow
V. The Path to Production!
AB testing pipeline: General workflow
Many options based on your requirements: open-source, proprietary, Cloud...
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: What to chose from
Message broker /
stream processor
Storage + possible
query/visualization
BI/viz tools Advanced analytics
Kafka (Kinesis) Druid Caravel R
RabbitMQ InfluxDB Grafana Matlab
ActiveMQ Cassandra (DynamoDB) Tableau
PostGresSQL QlikView
ElasticSearch Kibana
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: General setup
Client AB testing methods:
1) Dynamic Config Injection
2) Different builds with a reverse proxy
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: General setup
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: Config injection
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: Config injection
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: Dynamic config injection
PROs
Simple & easy splits
Separate - fast to deploy & rollback
Scalable
CONs
Limited scope
Complications in code
Need to handle scaling & high availability
WARNING
Async implementation!
Infinite scale, limitless delivery.
V. The Path to Production!
AB testing pipeline: Different builds with reverse proxy
Infinite scale, limitless delivery.
PROs
Serve very different (major) versions of player
Perfect for rolling out new features smoothly
(10% then 30% then...)
CONs
Good CI/CD necessary to roll out new
versions quickly
Heavy stack to maintain and scale
WARNING
Make sure the file request is not slower!
Single point of failure!
V. The Path to Production!
AB testing pipeline: Different builds with reverse proxy
How much time does it take?
The build vs. buy tradeoff.
- Do I have the internal resources to develop,
integrate, customize and maintain?
- Are the features I need already available in
off-the-shelf and/or open-source solutions?
Consider time to market.
Infinite scale, limitless delivery.
V. The Path to Production!
Questions?
Infinite scale, limitless delivery.
Nikolay Rodionov, Co-Founder and CPO, nikolay@streamroot.io
Erica Beavers, Head of Partnerships, erica@streamroot.io
Infinite scale, limitless delivery.
Get in touch!
We’d like to send out a huge thanks to Ludovic Bostral and Benjamin Pott from
Afrostream for letting us borrow their burger analogy. Without them this talk would not
have been half as juicy.
(Also their platform rocks!)
Infinite scale, limitless delivery.
Credits

Contenu connexe

Tendances

The Perfect Storm MPEG DASH with H.265 (HEVC) with HTML5
The Perfect Storm  MPEG DASH with H.265 (HEVC) with HTML5The Perfect Storm  MPEG DASH with H.265 (HEVC) with HTML5
The Perfect Storm MPEG DASH with H.265 (HEVC) with HTML5IMTC
 
NAB Show 2018 Notes
NAB Show 2018 NotesNAB Show 2018 Notes
NAB Show 2018 NotesYusuke Goto
 
HTM5/CENC par Romain Bouqueau de Gpac Licensing
HTM5/CENC par Romain Bouqueau de Gpac LicensingHTM5/CENC par Romain Bouqueau de Gpac Licensing
HTM5/CENC par Romain Bouqueau de Gpac LicensingJustindwah
 
DVB-I masterclass introductions-packaging-encoding-v2
DVB-I masterclass introductions-packaging-encoding-v2DVB-I masterclass introductions-packaging-encoding-v2
DVB-I masterclass introductions-packaging-encoding-v2Rufael Mekuria
 
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...Yusuke Goto
 
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...Tanya Vernitsky
 
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...Yusuke Goto
 
Choosing the Segment Length for Adaptive Bitrate Streaming
Choosing the Segment Length for Adaptive Bitrate StreamingChoosing the Segment Length for Adaptive Bitrate Streaming
Choosing the Segment Length for Adaptive Bitrate StreamingBitmovin Inc
 
September 27 Roundtable: Advanced Encoding
September 27 Roundtable: Advanced EncodingSeptember 27 Roundtable: Advanced Encoding
September 27 Roundtable: Advanced EncodingBitmovin Inc
 
LMSE - Ebplus Streaming Solution
LMSE - Ebplus Streaming SolutionLMSE - Ebplus Streaming Solution
LMSE - Ebplus Streaming Solutionsilverfox2580
 
DRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and BitmovinDRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and BitmovinBitmovin Inc
 
Managing Transition to HEVC/VP9/AV1 with Multi-Codec Streaming
Managing Transition to HEVC/VP9/AV1 with Multi-Codec StreamingManaging Transition to HEVC/VP9/AV1 with Multi-Codec Streaming
Managing Transition to HEVC/VP9/AV1 with Multi-Codec StreamingBitmovin Inc
 
EARLY DAYS OF VIDEO CODING STANDARDIZATION
EARLY DAYS OF VIDEO CODING STANDARDIZATIONEARLY DAYS OF VIDEO CODING STANDARDIZATION
EARLY DAYS OF VIDEO CODING STANDARDIZATIONIMTC
 
Rebaca's Video Delivery Expertise Overview
Rebaca's Video Delivery Expertise OverviewRebaca's Video Delivery Expertise Overview
Rebaca's Video Delivery Expertise OverviewArshad Mahmood
 
Converging CAS and DRM, David Bouteruche from Nagra
Converging CAS and DRM, David Bouteruche from NagraConverging CAS and DRM, David Bouteruche from Nagra
Converging CAS and DRM, David Bouteruche from NagraJustindwah
 
Streaming Reliability Engineering
Streaming Reliability EngineeringStreaming Reliability Engineering
Streaming Reliability EngineeringYusuke Goto
 
DCC Labs Company Presentation
DCC Labs Company PresentationDCC Labs Company Presentation
DCC Labs Company PresentationDCC Labs
 

Tendances (20)

The Perfect Storm MPEG DASH with H.265 (HEVC) with HTML5
The Perfect Storm  MPEG DASH with H.265 (HEVC) with HTML5The Perfect Storm  MPEG DASH with H.265 (HEVC) with HTML5
The Perfect Storm MPEG DASH with H.265 (HEVC) with HTML5
 
Multimedia Streaming Architecture
Multimedia Streaming ArchitectureMultimedia Streaming Architecture
Multimedia Streaming Architecture
 
NAB Show 2018 Notes
NAB Show 2018 NotesNAB Show 2018 Notes
NAB Show 2018 Notes
 
HTM5/CENC par Romain Bouqueau de Gpac Licensing
HTM5/CENC par Romain Bouqueau de Gpac LicensingHTM5/CENC par Romain Bouqueau de Gpac Licensing
HTM5/CENC par Romain Bouqueau de Gpac Licensing
 
DVB-I masterclass introductions-packaging-encoding-v2
DVB-I masterclass introductions-packaging-encoding-v2DVB-I masterclass introductions-packaging-encoding-v2
DVB-I masterclass introductions-packaging-encoding-v2
 
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
 
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
 
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
 
Choosing the Segment Length for Adaptive Bitrate Streaming
Choosing the Segment Length for Adaptive Bitrate StreamingChoosing the Segment Length for Adaptive Bitrate Streaming
Choosing the Segment Length for Adaptive Bitrate Streaming
 
September 27 Roundtable: Advanced Encoding
September 27 Roundtable: Advanced EncodingSeptember 27 Roundtable: Advanced Encoding
September 27 Roundtable: Advanced Encoding
 
OTT Video DRM
OTT Video DRMOTT Video DRM
OTT Video DRM
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
LMSE - Ebplus Streaming Solution
LMSE - Ebplus Streaming SolutionLMSE - Ebplus Streaming Solution
LMSE - Ebplus Streaming Solution
 
DRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and BitmovinDRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and Bitmovin
 
Managing Transition to HEVC/VP9/AV1 with Multi-Codec Streaming
Managing Transition to HEVC/VP9/AV1 with Multi-Codec StreamingManaging Transition to HEVC/VP9/AV1 with Multi-Codec Streaming
Managing Transition to HEVC/VP9/AV1 with Multi-Codec Streaming
 
EARLY DAYS OF VIDEO CODING STANDARDIZATION
EARLY DAYS OF VIDEO CODING STANDARDIZATIONEARLY DAYS OF VIDEO CODING STANDARDIZATION
EARLY DAYS OF VIDEO CODING STANDARDIZATION
 
Rebaca's Video Delivery Expertise Overview
Rebaca's Video Delivery Expertise OverviewRebaca's Video Delivery Expertise Overview
Rebaca's Video Delivery Expertise Overview
 
Converging CAS and DRM, David Bouteruche from Nagra
Converging CAS and DRM, David Bouteruche from NagraConverging CAS and DRM, David Bouteruche from Nagra
Converging CAS and DRM, David Bouteruche from Nagra
 
Streaming Reliability Engineering
Streaming Reliability EngineeringStreaming Reliability Engineering
Streaming Reliability Engineering
 
DCC Labs Company Presentation
DCC Labs Company PresentationDCC Labs Company Presentation
DCC Labs Company Presentation
 

En vedette

EasyFaces - Framework de Componentes JSF
EasyFaces - Framework de Componentes JSFEasyFaces - Framework de Componentes JSF
EasyFaces - Framework de Componentes JSFRafael da Cunha
 
Video Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesVideo Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesMatteo Bonifazi
 
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...Erica Beavers
 
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...Erica Beavers
 
Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...
Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...
Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...Erica Beavers
 
[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈NAVER D2
 
レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方Hayato Mizuno
 

En vedette (9)

Youbora presentation
Youbora presentationYoubora presentation
Youbora presentation
 
EasyFaces - Framework de Componentes JSF
EasyFaces - Framework de Componentes JSFEasyFaces - Framework de Componentes JSF
EasyFaces - Framework de Componentes JSF
 
Video Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesVideo Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devices
 
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
 
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
 
Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...
Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...
Paris Video Tech - 1st Edition: Dailymotion Améliorer l'expérience utilisateu...
 
[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈
 
レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
 
2017 Digital Yearbook
2017 Digital Yearbook2017 Digital Yearbook
2017 Digital Yearbook
 

Similaire à 2016 Streaming Media West: Transitioning from Flash to HTML5

Flash and HTML5 Video
Flash and HTML5 VideoFlash and HTML5 Video
Flash and HTML5 VideoYoss Cohen
 
CommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) servicesCommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) servicesAntonio Capone
 
5 Best OTT Services With Free Trials
5 Best OTT Services With Free Trials 5 Best OTT Services With Free Trials
5 Best OTT Services With Free Trials Suganya Mathivanan
 
High Definition Video Conferencing and the Ohio K-12 Network ...
High Definition Video Conferencing and the Ohio K-12 Network ...High Definition Video Conferencing and the Ohio K-12 Network ...
High Definition Video Conferencing and the Ohio K-12 Network ...Videoguy
 
How to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdf
How to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdfHow to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdf
How to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdfvideocryptsoft
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Quobis
 
6 Key Features to Look for in an OTT Streaming Video Platform.pptx
6 Key Features to Look for in an OTT Streaming Video Platform.pptx6 Key Features to Look for in an OTT Streaming Video Platform.pptx
6 Key Features to Look for in an OTT Streaming Video Platform.pptxMultiTVSolutions
 
Long Live the Legacy of HBO Max- Insights You Need to Know.
Long Live the Legacy of HBO Max- Insights You Need to Know.Long Live the Legacy of HBO Max- Insights You Need to Know.
Long Live the Legacy of HBO Max- Insights You Need to Know.Techugo
 
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...TrueConf
 
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...Gina Montgomery, V-TSP
 
Streaming Video in the Fortune 500
Streaming Video in the Fortune 500 Streaming Video in the Fortune 500
Streaming Video in the Fortune 500 MediaPlatform
 
Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5KaneJordy1
 
Platform as Art: A Developer’s Perspective
Platform as Art: A Developer’s PerspectivePlatform as Art: A Developer’s Perspective
Platform as Art: A Developer’s PerspectiveBrian Deitte
 
There's a fix for that: Top 5 OTT challenges & how to resolve them
There's a fix for that: Top 5 OTT challenges & how to resolve themThere's a fix for that: Top 5 OTT challenges & how to resolve them
There's a fix for that: Top 5 OTT challenges & how to resolve themBitmovin Inc
 
OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...
OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...
OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...Brendan Quinn
 
IBM - Video Communications - An Enterprise Perspective
IBM - Video Communications - An Enterprise PerspectiveIBM - Video Communications - An Enterprise Perspective
IBM - Video Communications - An Enterprise PerspectiveIMTC
 
The Importance of Video in Today's Digital Landscape.pdf
The Importance of Video in Today's Digital Landscape.pdfThe Importance of Video in Today's Digital Landscape.pdf
The Importance of Video in Today's Digital Landscape.pdfCyrana Video
 
IBM MQ Light @ Capitalware's MQTC 2.0.1.4 conference
IBM MQ Light @ Capitalware's MQTC 2.0.1.4 conferenceIBM MQ Light @ Capitalware's MQTC 2.0.1.4 conference
IBM MQ Light @ Capitalware's MQTC 2.0.1.4 conferencematthew1001
 

Similaire à 2016 Streaming Media West: Transitioning from Flash to HTML5 (20)

Flash and HTML5 Video
Flash and HTML5 VideoFlash and HTML5 Video
Flash and HTML5 Video
 
CommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) servicesCommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) services
 
5 Best OTT Services With Free Trials
5 Best OTT Services With Free Trials 5 Best OTT Services With Free Trials
5 Best OTT Services With Free Trials
 
High Definition Video Conferencing and the Ohio K-12 Network ...
High Definition Video Conferencing and the Ohio K-12 Network ...High Definition Video Conferencing and the Ohio K-12 Network ...
High Definition Video Conferencing and the Ohio K-12 Network ...
 
How to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdf
How to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdfHow to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdf
How to Build Your OTT Platform in 2023_ A Step-By-Step Guide.pdf
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)
 
6 Key Features to Look for in an OTT Streaming Video Platform.pptx
6 Key Features to Look for in an OTT Streaming Video Platform.pptx6 Key Features to Look for in an OTT Streaming Video Platform.pptx
6 Key Features to Look for in an OTT Streaming Video Platform.pptx
 
Long Live the Legacy of HBO Max- Insights You Need to Know.
Long Live the Legacy of HBO Max- Insights You Need to Know.Long Live the Legacy of HBO Max- Insights You Need to Know.
Long Live the Legacy of HBO Max- Insights You Need to Know.
 
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
 
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
 
Streaming Video in the Fortune 500
Streaming Video in the Fortune 500 Streaming Video in the Fortune 500
Streaming Video in the Fortune 500
 
Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5
 
Platform as Art: A Developer’s Perspective
Platform as Art: A Developer’s PerspectivePlatform as Art: A Developer’s Perspective
Platform as Art: A Developer’s Perspective
 
There's a fix for that: Top 5 OTT challenges & how to resolve them
There's a fix for that: Top 5 OTT challenges & how to resolve themThere's a fix for that: Top 5 OTT challenges & how to resolve them
There's a fix for that: Top 5 OTT challenges & how to resolve them
 
OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...
OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...
OSCON 2010 Brendan Quinn - Ingex:bringing open source to the broadcast indust...
 
Top 5 OTT Platforms in 2023
Top 5 OTT Platforms in 2023Top 5 OTT Platforms in 2023
Top 5 OTT Platforms in 2023
 
Java fx ap is
Java fx ap isJava fx ap is
Java fx ap is
 
IBM - Video Communications - An Enterprise Perspective
IBM - Video Communications - An Enterprise PerspectiveIBM - Video Communications - An Enterprise Perspective
IBM - Video Communications - An Enterprise Perspective
 
The Importance of Video in Today's Digital Landscape.pdf
The Importance of Video in Today's Digital Landscape.pdfThe Importance of Video in Today's Digital Landscape.pdf
The Importance of Video in Today's Digital Landscape.pdf
 
IBM MQ Light @ Capitalware's MQTC 2.0.1.4 conference
IBM MQ Light @ Capitalware's MQTC 2.0.1.4 conferenceIBM MQ Light @ Capitalware's MQTC 2.0.1.4 conference
IBM MQ Light @ Capitalware's MQTC 2.0.1.4 conference
 

Dernier

(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 

Dernier (20)

(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 

2016 Streaming Media West: Transitioning from Flash to HTML5

  • 1. Choosing an HTML5 player An overview of how media engines work & benchmark of open-source frameworks Streaming Media West – Track D Tuesday, May 10, 2016 1:45 to 2:30 pm
  • 2. ● Pioneers in hybrid video delivery systems to accompany exponential growth in OTT traffic ● Experts in HTML5 and consultants in the transition from Flash Infinite scale, limitless delivery. Streamroot: Who are we?
  • 3. And who are you? Infinite scale, limitless delivery.
  • 4. I. HTML5 basics A. Why make the transition B. Formats, APIs, standardization II. Delving in to the migration A. Formats & Encoding B. Players C. DRMs, ads and business features D. HTTPs III. Choosing a player A. Modern player architecture B. Considerations & what to look for C. Benchmark of open-source and proprietary options What we’ll be talking about today. Infinite scale, limitless delivery.
  • 5. IV. Examples: hls.js & dash.js Debugging, subtitles, encryption, ads, analytics, Streamroot, ABR V. Going from POC to production A. What could go wrong B. What happens after I do a POC? Workflow, fallbacks, etc. C. Smoothly transitioning into production: QoS metrics, AB testing D. Useful tools & links What we’ll be talking about today. Infinite scale, limitless delivery.
  • 6. Infinite scale, limitless delivery. I. It’s time to switch to HTML5.
  • 7. Infinite scale, limitless delivery. I. HTML5 Basics APIs 1. Media Source Extensions • Makes HTTP adaptive streaming possible in HMTL5 • Use JavaScript to build streams and inject data into the video tag’s buffer Source: W3C specs
  • 8. Infinite scale, limitless delivery. I. HTML5 Basics APIs 2. Encrypted Media Extensions • Allows for DRMs in HMTL5 • Provides a way to interact with content protection systems • Plugin-free • Common Encryption (CENC): standardized key and encryption methods - multiple DRMs for same file Source: W3C specs
  • 9. Infinite scale, limitless delivery. I. HTML5 Basics APIs Source: Bitmovin
  • 10. Infinite scale, limitless delivery. I. HTML5 Basics Formats available HDS
  • 11. Infinite scale, limitless delivery. I. HTML5 Basics Formats available Source: Encoding.com
  • 12. Infinite scale, limitless delivery. I. HTML5 Basics Standardization CMAF…!
  • 13. Infinite scale, limitless delivery. II. Delving into the migration What are you using today?
  • 14. Infinite scale, limitless delivery. II. Delving into the migration Formats & Encoding Significant changes to the encoding side that can take some time Encode to MP4 and then repackage as necessary for target platforms Lots of packaging solutions out there: Wowza, Unified Streaming Platform, etc.
  • 15. Infinite scale, limitless delivery. II. Delving into the migration Players More flexible architecture, with separation between UX and media engine logic When choosing: look at use case and feature requirements  Section III.
  • 16. Infinite scale, limitless delivery. II. Delving into the migration Business features DRMs: switch from token authorization to HMTL5 DRM Ads: rewrite the ad logic in HTML5 Business logic: make sure 3rd party plugins are also compatible with HTML5
  • 17. Infinite scale, limitless delivery. II. Delving into the migration HTTPS Beware! Playing HTTP streams even in an HTTPS environment is not an option in HTML5. Changing to HTTPs can be expensive and long, depending on your CDN.
  • 18. Infinite scale, limitless delivery. It’s like... III. Player architecture Modern player architecture
  • 19. … your favorite burger. Infinite scale, limitless delivery. It’s like... III. Player architecture Modern player architecture
  • 20. Infinite scale, limitless delivery. UI III. Player architecture
  • 21. Infinite scale, limitless delivery. Skin UI III. Player architecture
  • 22. Infinite scale, limitless delivery. Skin Ads Authentication UI III. Player architecture
  • 23. Infinite scale, limitless delivery. Skin Ads Playlists Authentication UI Social sharing III. Player architecture
  • 24. Infinite scale, limitless delivery. Skin Ads Playlists Authentication UI Media Engine(s) Social sharing III. Player architecture
  • 25. Infinite scale, limitless delivery. Skin Ads Playlists Authentication Media Engine(s) UI Media Engine(s) Social sharing III. Player architecture
  • 26. Infinite scale, limitless delivery. Skin Ads Playlists Authentication Social sharing Media Engine(s) UI Media Engine(s) Playback & DRM III. Player architecture
  • 27. Infinite scale, limitless delivery. Skin Ads Playlists Authentication Content decryption module Media Engine(s) DRM Manager UI Media Engine(s) Playback & DRM Social sharing III. Player architecture
  • 28. Infinite scale, limitless delivery. Skin Ads Playlists DRM Manager Decoder / Renderer Authentication Content decryption module Media Engine(s) UI Media Engine(s) Playback & DRM Social sharing III. Player architecture
  • 29. Infinite scale, limitless delivery. 1. Skin - the graphic design of your player III. Player architecture User Interface
  • 30. Infinite scale, limitless delivery. 1. Skin - the graphic design of your player 2. UI logic - features defining all interaction with the user on top of video playback Lots of plugins available, video.js for example III. Player architecture User Interface
  • 31. Infinite scale, limitless delivery. 3. Business logic Authentication Payment Ads *Configuration / device detection logic! III. Player architecture User Interface
  • 32. Infinite scale, limitless delivery. Sample UI workflow with authentication, channels and pre-roll advertisement III. Player architecture User Interface
  • 33. Infinite scale, limitless delivery. Easily customizable, with many plugins available for use or inspiration. Add features as plugins/modules to the core UI base. Create a unified user experience across browsers, even if the media engine behind it may vary from device to device. Check out tools such as React native, Haxe III. Player architecture User Interface
  • 34. Infinite scale, limitless delivery. III. Player architecture Media Engine
  • 35. Infinite scale, limitless delivery. III. Player architecture Media Engine
  • 36. Infinite scale, limitless delivery. III. Player architecture Media Engine
  • 37. Infinite scale, limitless delivery. III. Player architecture Media Engine
  • 38. Infinite scale, limitless delivery. III. Player architecture Media Engine
  • 39. Infinite scale, limitless delivery. III. Player architecture Media Engine
  • 40. Infinite scale, limitless delivery. Extremely important yet too often neglected. Most often necessary to have several media engines to reach your audience. III. Player architecture Media Engine
  • 41. Infinite scale, limitless delivery. III. Player architecture Decoder & DRM manager
  • 42. 1. General criteria - device, format and codec dependencies Infinite scale, limitless delivery. III. What to look for 2. Custom features - DRMs - DVR subtitles - QoS, etc. 3. Perfs & Quality - startup time - ABR - error strategies 4. Street cred, robustness, ease of use
  • 43. Light-touch dev: - Simplicity and stablity of the media engine - Assess extensibility & ease of incorporating special features - Media engine customization - Events exposed - Debugging Infinite scale, limitless delivery. Digging deeper: - Robust yet flexible core design - Tests and testing coverage - community & support III. What to look for
  • 44. Infinite scale, limitless delivery. III. What’s out there? Disclaimer! - What follows are all GOOD options - probably the best out there. - We’ve tried to be solely objective based on our research and experience. - Features, support and upkeep are always changing.
  • 45. Infinite scale, limitless delivery. PROs Supported by DASH-IF Pushed & maintained by Akamai + tier-1s (BBC) Highest visibility, big community Lots of features and use-cases handled Widely used in production Huge test suite + online test page CONs A little bit of technical debt and complexity Non-trivial API and customization config H264/AAC support only III. What’s out there?
  • 46. Infinite scale, limitless delivery. PROs Built by an entire at Google: solid & smart Performances and robustness, quick to improve Simple to get started, good tutorials Only one supporting WebM, VP8, VP9, open audio codecs Good support on github and Google groups CONs Google-centric Today lacks some features for large broadcasters Stricter PR & features policy No ES6 support Fewer OVP and open-source all-in-one integrations III. What’s out there?
  • 47. Infinite scale, limitless delivery. PROs Lead by Dailymotion, built from scratch by author of Flashls Enormous traction and visibility Clear architecture design, easily extendable Good robustness and debug demo, responsive support Widely used in prod by all-in-one players + tier-1s CONs Not all HLS features supported yet Some restrictions from the transmuxing & HLS: no DRMs today, only AES128 III. What’s out there?
  • 48. Infinite scale, limitless delivery. PROs Seamless Flash fallback with a MediaSource polyfill De facto solution for HLS with VideoJS Large community of users (Brightcove + Videojs) In production with Brightcove with a wide range of customers CONs Videojs plugin: not usable without videojs Lack of public debug tools or pages Learning curve on providers & tech behind it III. What’s out there?
  • 49. But there are also a lot of off-the-shelf options. Infinite scale, limitless delivery. III. What’s out there?
  • 50. All available online on github: https://github.com/streamroot/benchmarking-player Contains: - Media engines code - Examples Infinite scale, limitless delivery. IV. Examples
  • 52. https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs.html https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-AES.html https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-subtitles.html https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-ads.html https://github.com/streamroot/benchmarking-player/blob/master/samples/hls.js/hlsjs-streamroot.html Online debug demo: debug http://dailymotion.github.io/hls.js/demo/ Videojs Ads plugin: https://github.com/videojs/videojs-contrib-ads Ads state diagram: https://raw.githubusercontent.com/videojs/videojs-contrib-ads/master/ad-states.png Hls.js Events: https://github.com/dailymotion/hls.js/blob/master/API.md#runtime-events Video Events simulator: http://docs.youbora.com/video-event-simulator/ Streamroot Clappr integration: https://github.com/streamroot/clappr-p2phls-plugin Strearmoot Videojs integration: https://github.com/streamroot/videojs5-hlsjs-p2p-source-handler Infinite scale, limitless delivery. IV. Examples
  • 53. https://github.com/dailymotion/hls.js/blob/master/src/controller/cap-level-controller.js#L68 Checks the max CapLevel corresponding to current player size Frequency: every 1000 ms IV. Examples: hls.js CapLevel Infinite scale, limitless delivery.
  • 54. https://github.com/dailymotion/hls.js/blob/master/src/controller/fps-controller.js#L33 Calculates the dropped frames per second ratio. If > 0.2, bans the level forever  goes into restricted capping levels fpsDroppedMonitoringThreshold fpsDroppedMonitoringPeriod IV. Examples: hls.js dropped frames Infinite scale, limitless delivery.
  • 55. https://github.com/dailymotion/hls.js/blob/master/src/controller/stream-controller.js#L131 First segment is loaded from the first level in the playlist, then continues with normal ABR rule. IV. Examples: hls.js startup strat Infinite scale, limitless delivery.
  • 56. https://github.com/dailymotion/hls.js/blob/master/src/controller/abr-controller.js Before: Simple algorithm, inspired by Android’s AVController’s ABR algo Now: EWMA smoothing Infinite scale, limitless delivery. IV. Examples: hls.js bandwidth est.
  • 58. STRONG POINTS COULD BE IMPROVED Very simple and understandable Startup time constraint could be improved to get the lowest level first Handles CPU & player size constraints Conservative BW adjustment to avoid oscillation, with EWMA smoothing Sound emergency abort mechanism Infinite scale, limitless delivery. IV. Examples: hls.js sumup
  • 59. 1. Tweak the parameters https://github.com/dailymotion/hls.js/blob/master/API.md#fine-tuning Dropped FPS: capLevelOnFPSDrop: false, fpsDroppedMonitoringPeriod: 5000, fpsDroppedMonitoringThreshold: 0.2 PlayerSize: capLevelToPlayerSize: false, 2. Write your own rules! AbrController: AbrController capLevelController: CapLevelController, fpsController: fpsController Bandwidth estimation: abrEwmaFastLive: 5.0, abrEwmaSlowLive: 9.0, abrEwmaFastVoD: 4.0, abrEwmaSlowVoD: 15.0, abrEwmaDefaultEstimate: 500000, abrBandWidthFactor: 0.8, abrBandWidthUpFactor: 0.7, Infinite scale, limitless delivery. IV. Examples: hls.js how to improve
  • 60. https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs.html https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-widewine.html https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-subtitles.html https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-ads.html https://github.com/streamroot/benchmarking-player/blob/master/samples/dash.js/dashjs-streamroot.html Online debug page: http://dashif.org/reference/players/javascript/v2.3.0/samples/dash-if-reference- player/index.html Dash.js metrics & events: http://cdn.dashjs.org/latest/jsdoc/module-DashMetrics.html Dash.js ABR logic: https://github.com/Dash-Industry-Forum/dash.js/wiki/ABR-Logic Streamroot Videojs integration: https://github.com/streamroot/videojs5-dashjs-p2p-source-handler Infinite scale, limitless delivery. IV. Examples: Dash.js
  • 61. Source: DASH-IF, Maxdome Infinite scale, limitless delivery. IV. Examples: Dash.js
  • 62. STRONG POINTS COULD BE IMPROVED Smoothes bandwidth No quantization of bitrates Segment abort mechanism to avoid buffering during network drops Doesn’t handle CPU & Player size constraints Rich buffer threshold to avoid BW oscillations Infinite scale, limitless delivery. IV. Examples: Dash.js sumup
  • 63. 1. Tweak the Parameters ThroughputRule: AVERAGE_THROUGHPUT_SAMPLE_AMOUNT_LIVE = 2; AVERAGE_THROUGHPUT_SAMPLE_AMOUNT_VOD = 3; AbandonRequestRule: GRACE_TIME_THRESHOLD = 500; ABANDON_MULTIPLIER = 1.5; 2. Write your own rules https://github.com/Dash-Industry-Forum/dash.js/wiki/Migration-2.0#extending-dashjs https://github.com/Dash-Industry-Forum/dash.js/blob/development/src/streaming/rules/abr/ABRRulesCollection.js BufferOccupancyRule: RICH_BUFFER_THRESHOLD = 20 Infinite scale, limitless delivery. IV. Examples: Dash.js how to improve
  • 65. What could go wrong? - - Encoding - - DRMs - - HTTPS Infinite scale, limitless delivery. V. The Path to Production!
  • 66. I did a POC. Now what? - - Do you need a Flash Fallback? - - Moving the UX to HTML5 - - Build the media engine extendable architecture (providers) - - Fallback alternatives https://github.com/streamroot/videojs5-hlsjs-source-handler/blob/master/lib/videojs5-hlsjs-source-handler.js https://github.com/videojs/video.js/blob/66922a818e588b8954989c439e1be790777966ae/docs/guides/tech.md https://github.com/faisalman/ua-parser-js Infinite scale, limitless delivery. V. The Path to Production!
  • 67. Making a smooth transition. - - HTML5 player rollout - - Playback & QoS Metrics - - AB Testing! Infinite scale, limitless delivery. V. The Path to Production!
  • 68. Infinite scale, limitless delivery. Streamroot workflow V. The Path to Production! AB testing pipeline: General workflow
  • 69. Many options based on your requirements: open-source, proprietary, Cloud... Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: What to chose from Message broker / stream processor Storage + possible query/visualization BI/viz tools Advanced analytics Kafka (Kinesis) Druid Caravel R RabbitMQ InfluxDB Grafana Matlab ActiveMQ Cassandra (DynamoDB) Tableau PostGresSQL QlikView ElasticSearch Kibana
  • 70. Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: General setup
  • 71. Client AB testing methods: 1) Dynamic Config Injection 2) Different builds with a reverse proxy Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: General setup
  • 72. Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: Config injection
  • 73. Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: Config injection
  • 74. Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: Dynamic config injection PROs Simple & easy splits Separate - fast to deploy & rollback Scalable CONs Limited scope Complications in code Need to handle scaling & high availability WARNING Async implementation!
  • 75. Infinite scale, limitless delivery. V. The Path to Production! AB testing pipeline: Different builds with reverse proxy
  • 76. Infinite scale, limitless delivery. PROs Serve very different (major) versions of player Perfect for rolling out new features smoothly (10% then 30% then...) CONs Good CI/CD necessary to roll out new versions quickly Heavy stack to maintain and scale WARNING Make sure the file request is not slower! Single point of failure! V. The Path to Production! AB testing pipeline: Different builds with reverse proxy
  • 77. How much time does it take? The build vs. buy tradeoff. - Do I have the internal resources to develop, integrate, customize and maintain? - Are the features I need already available in off-the-shelf and/or open-source solutions? Consider time to market. Infinite scale, limitless delivery. V. The Path to Production!
  • 79. Nikolay Rodionov, Co-Founder and CPO, nikolay@streamroot.io Erica Beavers, Head of Partnerships, erica@streamroot.io Infinite scale, limitless delivery. Get in touch!
  • 80. We’d like to send out a huge thanks to Ludovic Bostral and Benjamin Pott from Afrostream for letting us borrow their burger analogy. Without them this talk would not have been half as juicy. (Also their platform rocks!) Infinite scale, limitless delivery. Credits

Notes de l'éditeur

  1. @charlo - Eurosport video player example that we used in blog
  2. @charlo - Eurosport video player example that we used in blog
  3. @charlo - Eurosport video player example that we used in blog
  4. Authentication Payment Channels / Playlists Configuration logic / device detection A/B testing logic Ads
  5. Manifest parser & interpreter Downloader Streaming engine Quality metrics estimators ABR controller DRM manager (optional) Transmuxer (optional)
  6. Manifest parser & interpreter Downloader Streaming engine Quality metrics estimators ABR controller DRM manager (optional) Transmuxer (optional)
  7. Manifest parser & interpreter Downloader Streaming engine Quality metrics estimators ABR controller DRM manager (optional) Transmuxer (optional)
  8. Manifest parser & interpreter Downloader Streaming engine Quality metrics estimators ABR controller DRM manager (optional) Transmuxer (optional)
  9. Manifest parser & interpreter Downloader Streaming engine Quality metrics estimators ABR controller DRM manager (optional) Transmuxer (optional)
  10. Manifest parser & interpreter Downloader Streaming engine Quality metrics estimators ABR controller DRM manager (optional) Transmuxer (optional)
  11. @charlo shéma. (i’ll have to find it…)
  12. Checks the max CapLevel corresponding to current player size Every 1000ms. You can also add up manual level caps on initialization. If the cap level is bigger that the last one (which means the player size has grown, like in Fullscreen for exemple), then you flush the current buffer and ask for a new quality right away (force the buffer)
  13. Calculates the dropped frames per second ratio. If it is > 0.2, bans the level for ever => goes into restricated levels Not activated in production! fpsDroppedMonitoringThreshold fpsDroppedMonitoringPeriod
  14. First segment always from the lowest quality, then it continues with normal rule (very simple simple rule in practice!) Another optimization is just to load this level (and playlist), and don’t wait for the other levels to have been loaded
  15. Simple algorithm,
  16. One of the most important ones here What happens if you started a request and then BW drops ? Especially important when you ahve long fragments, this can very easily lead to a buffer underrun! After Half of the needed time, compare the estimate time of arrival to time of buffer underrun. And then see if there is another level that could solve the issue?
  17. Pros: Simple implementation, taking into account a lot of different params Works as good as the other implementation at Dailymotion! (alshls, android, iPhone… etc) Cons: Still Naive bandwidth estimation => possible overestimation, and possible oscillation around bitrates? We can do a lot of improvements on bandwidth estimation! difficult to correlate a unique segment download time to the real device’s available bandwidth, for several reasons: You can have very quick bandwidth changes, especially on a mobile network, as well as unexpected bandwidth drops The requests can be living in parallel with other TCP request (HTTP or any other on the user’s device) This can lead to frequent estimation oscillations!
  18. The different static constants more for you use-case? You can play with them You can also easily build your own rule! Here is an example on Github? First explain how to do that?
  19. DASH.Js has 4 different Rules ThroughputRule  calculates bandwidth with some smoothing! No real quantizing (have a real estimate and no other values) AbandonRequestsRule  cancels if takes more than 1.5x of donwload  BufferOccupancyRule to now go down if buffer large enough (RICH BUFFER TRESHOLD) InsufficientBufferRule  au tas
  20. You can easily take the best out of hls.js here! Write a player size rule, a FPS drop rule… change the Abandonrate rule! It’s all very easy to do!
  21. Maybe add conditional inputs here? Customer, Stream, User-agent, etc?
  22. probably put the logos un peu plus bas? and shema plus gros (don’t see the text in the middle)