SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Building an HTML5 Video Player
Steve Heffernan, Video.js & Zencoder & Brightcove
http://videojs.com
@heff @videojs
Agenda

History
User Support
Formats
Code
Bugs
Future
Resources




2 | Confidential   © 2013 Brightcove Inc.
3 | Confidential   © 2013 Brightcove Inc.
4 | Confidential   © 2013 Brightcove Inc.
5 | Confidential   © 2013 Brightcove Inc.
~2000    ~2008   ~2015




6 | Confidential                   © 2013 Brightcove Inc.
7 | Confidential   © 2013 Brightcove Inc.
Reasons to use HTML5 Video

It’s the future!
 Runs natively in the browser
 Cleaner code




8 | Confidential                © 2013 Brightcove Inc.
<video src=“video.mp4” controls></video>




9 | Confidential                      © 2013 Brightcove Inc.
<video controls>
      <source src=“video.mp4” type=“video/mp4”>
      <source src=“video.webm” type=“video/webm”>
      <source src=“video.ogv” type=“video/ogg”>
      <object type=“application/x-shockwave-flash” data=“flash.swf”>
            <param name=“movie” value=“flash.swf” />
            <param name=“flashvars” value=“file=video.mp4” />
      </object>
</video>




 10 | Confidential                                                     © 2013 Brightcove Inc.
11 | Confidential   © 2013 Brightcove Inc.
12 | Confidential   © 2013 Brightcove Inc.
http://blog.mefeedia.com/html5-dec-2011




13 | Confidential                                             © 2013 Brightcove Inc.
The ‘Format War’




14 | Confidential   © 2013 Brightcove Inc.
15 | Confidential   © 2013 Brightcove Inc.
OPEN   CLOSED




16 | Confidential                   © 2013 Brightcove Inc.
17 | Confidential   © 2013 Brightcove Inc.
18 | Confidential   © 2013 Brightcove Inc.
CONTAINER FORMAT




                       VIDEO CODEC




                       AUDIO CODEC




19 | Confidential                      © 2013 Brightcove Inc.
MP4




                              H.264




                              AAC
  3+                9+   9+



20 | Confidential                     © 2013 Brightcove Inc.
OGV




                               THEORA




                               VORBIS
3.5+                3+ 10.5+



21 | Confidential                       © 2013 Brightcove Inc.
WEBM




                            VP8




                           VORBIS
 4+             6+ 10.6+



22 | Confidential                   © 2013 Brightcove Inc.
23 | Confidential   © 2013 Brightcove Inc.
Three Formats




   9+               3+   3+   9+



                    4+   6+ 10.6+



               3.5+      3+ 10.5+



24 | Confidential                   © 2013 Brightcove Inc.
Two Formats




   9+               3+   3+   9+



                    4+   6+ 10.6+




25 | Confidential                   © 2013 Brightcove Inc.
One Format




   9+               3+   3+   9+




26 | Confidential                  © 2013 Brightcove Inc.
Handbrake.fr




27 | Confidential   © 2013 Brightcove Inc.
Firefogg.org




28 | Confidential   © 2013 Brightcove Inc.
Zencoder.com




29 | Confidential   © 2013 Brightcove Inc.
Content Protection




    RTMP Streaming   Source Obscurity      Native App Obscurity
    DRM (Flash       Time/GEO/IP limited   HTTP Streaming
    Access/Smooth    URLs                  AES Encryption
    Streaming)




30 | Confidential                                                 © 2013 Brightcove Inc.
Content Protection




  bit.ly/wAkriF
31 | Confidential    © 2013 Brightcove Inc.
<video src=“video.mp4” controls></video>




32 | Confidential                      © 2013 Brightcove Inc.
<video controls>
      <source src=“video.mp4” type=“video/mp4”>
      <source src=“video.webm” type=“video/webm”>
      <source src=“video.ogv” type=“video/ogg”>
</video>




 33 | Confidential                                  © 2013 Brightcove Inc.
<video controls>
      <source src=“video.mp4” type=“video/mp4”>
      <source src=“video.webm” type=“video/webm”>
      <source src=“video.ogv” type=“video/ogg”>
</video>




 34 | Confidential                                  © 2013 Brightcove Inc.
<video controls>
      <source src=“video.mp4” type=“video/mp4”>
      <source src=“video.webm” type=“video/webm”>
      <source src=“video.ogv” type=“video/ogg”>
      <object type=“application/x-shockwave-flash” data=“flash.swf”>
            <param name=“movie” value=“flash.swf” />
            <param name=“flashvars” value=“file=video.mp4” />
      </object>
</video>




 35 | Confidential                                                     © 2013 Brightcove Inc.
<video controls>
      <source src=“video.mp4” type=“video/mp4”>
      <source src=“video.webm” type=“video/webm”>
      <source src=“video.ogv” type=“video/ogg”>
      <object type=“application/x-shockwave-flash” data=“flash.swf”>
            <param name=“movie” value=“flash.swf” />
            <param name=“flashvars” value=“file=video.mp4” />
            <img src=“image.jpg” alt=“title” title=“Can’t play video” />
      </object>
</video>
<p>
      <strong>Download Video:</strong>
      <a href=“video.mp4”>MP4</a>
      <a href=“video.ogv”>Ogg</a>
</p>


 36 | Confidential                                                         © 2013 Brightcove Inc.
Controls           Autoplay             Tracks
  Poster             Loop
  Preload            Width/Height


<video controls autoplay loop width=“480” height=“270”
 poster=“poster.png”
 preload=“auto”>
      <source src=“video.mp4” type=“video/mp4”>
      <track kind=“captions” src=“captions.vtt” srclang=“en”>
</video>




 37 | Confidential                                              © 2013 Brightcove Inc.
Tag Builder




http://videojs.com/tag-builder/
 38 | Confidential                © 2013 Brightcove Inc.
JavaScript API

     Attributes
     Functions
•    Events




    39 | Confidential   © 2013 Brightcove Inc.
Browser/General Issues

•    Autobuffer => Preload
•    Cross-browser Load Progress Tracking
•    Missing Poster in Some Safari Devices
•    HTML5 Browsers Do Not Fallback on Incompatible Sources




    40 | Confidential                                         © 2013 Brightcove Inc.
<video controls>
      <source src=“video.mp4” type=“video/mp4”>
      <source src=“video.webm” type=“video/webm”>
      <source src=“video.ogv” type=“video/ogg”>
      <object type=“application/x-shockwave-flash” data=“flash.swf”>
            <param name=“movie” value=“flash.swf” />
            <param name=“flashvars” value=“file=video.mp4” />
      </object>
</video>




 41 | Confidential                                                     © 2013 Brightcove Inc.
Determine Video Support

<script>

  var vidTag = document.createElement(“video”),
        flashVersion = swfobject.getFlashPlayerVersion();
  if (vidTag.canPlayType && vidTag.canPlayType(“video/mp4”)) {
   // Video Tag
  } else if (flashVersion.major > 9){
   // Flash Object
  } else {
   // No Video Support

</script>



SWF Object: http://code.google.com/p/swfobject/


  42 | Confidential                                              © 2013 Brightcove Inc.
Device Quirks: iOS 3

•    Needs MP4 as first source. iPad Poster Attribute Bug
•    iPad JS in Head / iPhone JS not in Head




    43 | Confidential                                       © 2013 Brightcove Inc.
Device Quirks: Android 2.1 / 2.2

•    Can’t touch to start Type attribute breaks video
•    canPlayType function broken
•    ~25% of Android Users




    44 | Confidential                                   © 2013 Brightcove Inc.
Android Touch Start Fix

<script>

 if (navigator.userAgent.match(/Android/i) !== null) {
    $(“video”).click(function(){
      this.play();
    });
 }

</script>




 45 | Confidential                                       © 2013 Brightcove Inc.
Android Type Attribute Fix Options

•    Don’t include type attribute Don’t use source tags
     <video src=“video.mp4” controls></video>
•    Set source through JS API
     video.src(“video.mp4”)




    46 | Confidential                                     © 2013 Brightcove Inc.
Android canPlayType Fix

<script>
Var androidMatch = navigator.userAgent.match(/Android (d+./i);

if (androidMatch && androidMatch[1] < 3) {

            //Overwrite canPlayType
            document.createElement(“video”)
                  .constructor.prototype.canPlayType = function(type){
                         if (type && type.toLowerCase()>indexOf(“video/mp4”) !== -1) {
                            return “maybe”;
                         } else {
                            return “”;
                         }
};

}
</script>

     47 | Confidential                                                                   © 2013 Brightcove Inc.
The Future of HTML5 Video

•     Content Protection - Encrypted Media Extensions
•     Adaptive Streaming - Media Source Extensions
•     Timed Text/Events - WebVTT
•     Video Chat - WebRTC
•     New Formats/Codecs - VPnext, h.265, Opus, TransOgg




    48 | Confidential                                      © 2013 Brightcove Inc.
VideoJS.com




49 | Confidential   © 2013 Brightcove Inc.
Video for Everybody by Krox Camen




50 | Confidential                   © 2013 Brightcove Inc.
Dive into HTML 5 by Mark Pilgrim




51 | Confidential                  © 2013 Brightcove Inc.
HTML5 Video and Audio in Depth




                http://videojs.com/lynda




52 | Confidential                          © 2013 Brightcove Inc.
Building an HTML5 Video Player

                          Brightcove Webcast, March 2013
                    Steve Heffernan, Video.js & Zencoder & Brightcove


                                   http://videojs.com
                                    @heff @videojs

53 | Confidential                                                       © 2013 Brightcove Inc.
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
 
State of Media Accessibility in HTML5
State of Media Accessibility in HTML5State of Media Accessibility in HTML5
State of Media Accessibility in HTML5Silvia Pfeiffer
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Matt Raible
 
HTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingHTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingbrucelawson
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video TutorialSilvia Pfeiffer
 
Consumer Driven Contracts and Your Microservice Architecture
Consumer Driven Contracts and Your Microservice ArchitectureConsumer Driven Contracts and Your Microservice Architecture
Consumer Driven Contracts and Your Microservice ArchitectureVMware Tanzu
 

Was ist angesagt? (12)

Got &lt;video>? Implementing HTML5 Video for Library Tutorials
Got &lt;video>?  Implementing HTML5 Video for Library TutorialsGot &lt;video>?  Implementing HTML5 Video for Library Tutorials
Got &lt;video>? Implementing HTML5 Video for Library Tutorials
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
[amigos] HTML5 and CSS3
[amigos] HTML5 and CSS3[amigos] HTML5 and CSS3
[amigos] HTML5 and CSS3
 
HTML5 Design
HTML5 DesignHTML5 Design
HTML5 Design
 
State of Media Accessibility in HTML5
State of Media Accessibility in HTML5State of Media Accessibility in HTML5
State of Media Accessibility in HTML5
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
HTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingHTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're going
 
Html5 vs Flash video
Html5 vs Flash videoHtml5 vs Flash video
Html5 vs Flash video
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video Tutorial
 
Consumer Driven Contracts and Your Microservice Architecture
Consumer Driven Contracts and Your Microservice ArchitectureConsumer Driven Contracts and Your Microservice Architecture
Consumer Driven Contracts and Your Microservice Architecture
 
Reactive Web Applications
Reactive Web ApplicationsReactive Web Applications
Reactive Web Applications
 

Andere mochten auch

Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginnersSingsys Pte Ltd
 
Making the HTML5 Video element interactive
Making the HTML5 Video element interactiveMaking the HTML5 Video element interactive
Making the HTML5 Video element interactiveCharles Hudson
 
HTML5: features with examples
HTML5: features with examplesHTML5: features with examples
HTML5: features with examplesAlfredo Torre
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video PlayerJim Jeffers
 
HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012steveheffernan
 
Video.js - How to build and HTML5 Video Player
Video.js - How to build and HTML5 Video PlayerVideo.js - How to build and HTML5 Video Player
Video.js - How to build and HTML5 Video Playersteveheffernan
 
Use case document for boot fitting form
Use case document for boot fitting formUse case document for boot fitting form
Use case document for boot fitting formKalai Vani
 
How to Embed a PowerPoint Presentation Using SlideShare
How to Embed a PowerPoint Presentation Using SlideShareHow to Embed a PowerPoint Presentation Using SlideShare
How to Embed a PowerPoint Presentation Using SlideShareJoie Ocon
 
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...Edureka!
 

Andere mochten auch (12)

Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginners
 
Making the HTML5 Video element interactive
Making the HTML5 Video element interactiveMaking the HTML5 Video element interactive
Making the HTML5 Video element interactive
 
HTML5: features with examples
HTML5: features with examplesHTML5: features with examples
HTML5: features with examples
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video Player
 
HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3
 
Video.js - How to build and HTML5 Video Player
Video.js - How to build and HTML5 Video PlayerVideo.js - How to build and HTML5 Video Player
Video.js - How to build and HTML5 Video Player
 
Use case document for boot fitting form
Use case document for boot fitting formUse case document for boot fitting form
Use case document for boot fitting form
 
html5.ppt
html5.ppthtml5.ppt
html5.ppt
 
How to Embed a PowerPoint Presentation Using SlideShare
How to Embed a PowerPoint Presentation Using SlideShareHow to Embed a PowerPoint Presentation Using SlideShare
How to Embed a PowerPoint Presentation Using SlideShare
 
reveal.js 3.0.0
reveal.js 3.0.0reveal.js 3.0.0
reveal.js 3.0.0
 
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
 

Ähnlich wie Building an HTML5 Video Player

Brightcove Live Solutions
Brightcove Live SolutionsBrightcove Live Solutions
Brightcove Live SolutionsBrightcove
 
Accelerating the Developers' Road to the Cloud at Enterprise Scale
Accelerating the Developers' Road to the Cloud at Enterprise ScaleAccelerating the Developers' Road to the Cloud at Enterprise Scale
Accelerating the Developers' Road to the Cloud at Enterprise ScaleVMware Tanzu
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Springsdeeg
 
Automate Behavior-driven Development (Stanford WebCamp 2022)
Automate Behavior-driven Development (Stanford WebCamp 2022)Automate Behavior-driven Development (Stanford WebCamp 2022)
Automate Behavior-driven Development (Stanford WebCamp 2022)DOCOMO Innovations, Inc.
 
Experiences using grails in a Microservice Architecture SpringOne2gx 2014
Experiences using grails in a Microservice Architecture SpringOne2gx 2014Experiences using grails in a Microservice Architecture SpringOne2gx 2014
Experiences using grails in a Microservice Architecture SpringOne2gx 2014Jeff Beck
 
HTML5 Video for WordPress
HTML5 Video for WordPressHTML5 Video for WordPress
HTML5 Video for WordPresssteveheffernan
 
Automate Behavior-driven Development (DrupalCon Portland 2022)
Automate Behavior-driven Development (DrupalCon Portland 2022)Automate Behavior-driven Development (DrupalCon Portland 2022)
Automate Behavior-driven Development (DrupalCon Portland 2022)DOCOMO Innovations, Inc.
 
Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesVMware Tanzu
 
Fast 5 Things You Can Do Now to Get Ready for the Cloud
Fast 5 Things You Can Do Now to Get Ready for the CloudFast 5 Things You Can Do Now to Get Ready for the Cloud
Fast 5 Things You Can Do Now to Get Ready for the CloudVMware Tanzu
 
The Future of Video
The Future of VideoThe Future of Video
The Future of VideoCisco Canada
 
Mobile Meow at Mobilism
Mobile Meow at MobilismMobile Meow at Mobilism
Mobile Meow at MobilismGreg Schechter
 
SUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and ContainerizationSUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and ContainerizationVasiliy Fomichev
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Video Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRMVideo Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRMBitmovin Inc
 
Video Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRMVideo Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRMStefan Lederer
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?VMware Tanzu
 
Developer Training for 23 Video
Developer Training for 23 VideoDeveloper Training for 23 Video
Developer Training for 23 VideoSteffen
 

Ähnlich wie Building an HTML5 Video Player (20)

Brightcove Live Solutions
Brightcove Live SolutionsBrightcove Live Solutions
Brightcove Live Solutions
 
Accelerating the Developers' Road to the Cloud at Enterprise Scale
Accelerating the Developers' Road to the Cloud at Enterprise ScaleAccelerating the Developers' Road to the Cloud at Enterprise Scale
Accelerating the Developers' Road to the Cloud at Enterprise Scale
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 
Automate Behavior-driven Development (Stanford WebCamp 2022)
Automate Behavior-driven Development (Stanford WebCamp 2022)Automate Behavior-driven Development (Stanford WebCamp 2022)
Automate Behavior-driven Development (Stanford WebCamp 2022)
 
Experiences using grails in a Microservice Architecture SpringOne2gx 2014
Experiences using grails in a Microservice Architecture SpringOne2gx 2014Experiences using grails in a Microservice Architecture SpringOne2gx 2014
Experiences using grails in a Microservice Architecture SpringOne2gx 2014
 
S1P: Spring Cloud on PKS
S1P: Spring Cloud on PKSS1P: Spring Cloud on PKS
S1P: Spring Cloud on PKS
 
HTML5 Video for WordPress
HTML5 Video for WordPressHTML5 Video for WordPress
HTML5 Video for WordPress
 
Spring Cloud Gateway
Spring Cloud GatewaySpring Cloud Gateway
Spring Cloud Gateway
 
Automate Behavior-driven Development (DrupalCon Portland 2022)
Automate Behavior-driven Development (DrupalCon Portland 2022)Automate Behavior-driven Development (DrupalCon Portland 2022)
Automate Behavior-driven Development (DrupalCon Portland 2022)
 
Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
 
Fast 5 Things You Can Do Now to Get Ready for the Cloud
Fast 5 Things You Can Do Now to Get Ready for the CloudFast 5 Things You Can Do Now to Get Ready for the Cloud
Fast 5 Things You Can Do Now to Get Ready for the Cloud
 
The Future of Video
The Future of VideoThe Future of Video
The Future of Video
 
Mobile Meow at Mobilism
Mobile Meow at MobilismMobile Meow at Mobilism
Mobile Meow at Mobilism
 
SUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and ContainerizationSUGCON: The Agile Nirvana of DevSecOps and Containerization
SUGCON: The Agile Nirvana of DevSecOps and Containerization
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Video Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRMVideo Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRM
 
Video Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRMVideo Encoding and HTML5 Playback With Native DRM
Video Encoding and HTML5 Playback With Native DRM
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
 
T3fest video
T3fest videoT3fest video
T3fest video
 
Developer Training for 23 Video
Developer Training for 23 VideoDeveloper Training for 23 Video
Developer Training for 23 Video
 

Mehr von Brightcove

Brightcove Ecosystem for Online Video
Brightcove Ecosystem for Online VideoBrightcove Ecosystem for Online Video
Brightcove Ecosystem for Online VideoBrightcove
 
Driving ABM Success and Revenue with Video
Driving ABM Success and Revenue with VideoDriving ABM Success and Revenue with Video
Driving ABM Success and Revenue with VideoBrightcove
 
How to Invest in Video and Demonstrate Marketing ROI
How to Invest in Video and Demonstrate Marketing ROI How to Invest in Video and Demonstrate Marketing ROI
How to Invest in Video and Demonstrate Marketing ROI Brightcove
 
Social Video - What's Next?
Social Video - What's Next?Social Video - What's Next?
Social Video - What's Next?Brightcove
 
Supercharge your Strategy with Video
Supercharge your Strategy with VideoSupercharge your Strategy with Video
Supercharge your Strategy with VideoBrightcove
 
Creating a Complete Video Marketing Strategy
Creating a Complete Video Marketing StrategyCreating a Complete Video Marketing Strategy
Creating a Complete Video Marketing StrategyBrightcove
 
Streamlining Video Across the Enterprise
Streamlining Video Across the EnterpriseStreamlining Video Across the Enterprise
Streamlining Video Across the EnterpriseBrightcove
 
Aberdeen and Brightcove - More than a medium: the case for a video marketing ...
Aberdeen and Brightcove - More than a medium: the case for a video marketing ...Aberdeen and Brightcove - More than a medium: the case for a video marketing ...
Aberdeen and Brightcove - More than a medium: the case for a video marketing ...Brightcove
 
Video Moves Audiences
Video Moves AudiencesVideo Moves Audiences
Video Moves AudiencesBrightcove
 
Monetising Video
Monetising VideoMonetising Video
Monetising VideoBrightcove
 
CASBAA 2015 - Video Moves Revenue
CASBAA 2015 - Video Moves RevenueCASBAA 2015 - Video Moves Revenue
CASBAA 2015 - Video Moves RevenueBrightcove
 
Video marketing next practice and best practice
Video marketing next practice and best practiceVideo marketing next practice and best practice
Video marketing next practice and best practiceBrightcove
 
Marketing & Tech Innovation Conference - Paul Casinelli
Marketing & Tech Innovation Conference - Paul CasinelliMarketing & Tech Innovation Conference - Paul Casinelli
Marketing & Tech Innovation Conference - Paul CasinelliBrightcove
 
Being Social with Video
Being Social with VideoBeing Social with Video
Being Social with VideoBrightcove
 
How to Drive Engagement in a World of Content Overload
How to Drive Engagement in a World of Content OverloadHow to Drive Engagement in a World of Content Overload
How to Drive Engagement in a World of Content OverloadBrightcove
 
Analyzing the ROI of Video Marketing
Analyzing the ROI of Video Marketing Analyzing the ROI of Video Marketing
Analyzing the ROI of Video Marketing Brightcove
 
Video Moves Business - Infographic
Video Moves Business - InfographicVideo Moves Business - Infographic
Video Moves Business - InfographicBrightcove
 
Video Marketing Bootcamp
Video Marketing BootcampVideo Marketing Bootcamp
Video Marketing BootcampBrightcove
 
(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...
(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...
(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...Brightcove
 
El vídeo en línea como parte de su estrategia del marketing de contenidos del...
El vídeo en línea como parte de su estrategia del marketing de contenidos del...El vídeo en línea como parte de su estrategia del marketing de contenidos del...
El vídeo en línea como parte de su estrategia del marketing de contenidos del...Brightcove
 

Mehr von Brightcove (20)

Brightcove Ecosystem for Online Video
Brightcove Ecosystem for Online VideoBrightcove Ecosystem for Online Video
Brightcove Ecosystem for Online Video
 
Driving ABM Success and Revenue with Video
Driving ABM Success and Revenue with VideoDriving ABM Success and Revenue with Video
Driving ABM Success and Revenue with Video
 
How to Invest in Video and Demonstrate Marketing ROI
How to Invest in Video and Demonstrate Marketing ROI How to Invest in Video and Demonstrate Marketing ROI
How to Invest in Video and Demonstrate Marketing ROI
 
Social Video - What's Next?
Social Video - What's Next?Social Video - What's Next?
Social Video - What's Next?
 
Supercharge your Strategy with Video
Supercharge your Strategy with VideoSupercharge your Strategy with Video
Supercharge your Strategy with Video
 
Creating a Complete Video Marketing Strategy
Creating a Complete Video Marketing StrategyCreating a Complete Video Marketing Strategy
Creating a Complete Video Marketing Strategy
 
Streamlining Video Across the Enterprise
Streamlining Video Across the EnterpriseStreamlining Video Across the Enterprise
Streamlining Video Across the Enterprise
 
Aberdeen and Brightcove - More than a medium: the case for a video marketing ...
Aberdeen and Brightcove - More than a medium: the case for a video marketing ...Aberdeen and Brightcove - More than a medium: the case for a video marketing ...
Aberdeen and Brightcove - More than a medium: the case for a video marketing ...
 
Video Moves Audiences
Video Moves AudiencesVideo Moves Audiences
Video Moves Audiences
 
Monetising Video
Monetising VideoMonetising Video
Monetising Video
 
CASBAA 2015 - Video Moves Revenue
CASBAA 2015 - Video Moves RevenueCASBAA 2015 - Video Moves Revenue
CASBAA 2015 - Video Moves Revenue
 
Video marketing next practice and best practice
Video marketing next practice and best practiceVideo marketing next practice and best practice
Video marketing next practice and best practice
 
Marketing & Tech Innovation Conference - Paul Casinelli
Marketing & Tech Innovation Conference - Paul CasinelliMarketing & Tech Innovation Conference - Paul Casinelli
Marketing & Tech Innovation Conference - Paul Casinelli
 
Being Social with Video
Being Social with VideoBeing Social with Video
Being Social with Video
 
How to Drive Engagement in a World of Content Overload
How to Drive Engagement in a World of Content OverloadHow to Drive Engagement in a World of Content Overload
How to Drive Engagement in a World of Content Overload
 
Analyzing the ROI of Video Marketing
Analyzing the ROI of Video Marketing Analyzing the ROI of Video Marketing
Analyzing the ROI of Video Marketing
 
Video Moves Business - Infographic
Video Moves Business - InfographicVideo Moves Business - Infographic
Video Moves Business - Infographic
 
Video Marketing Bootcamp
Video Marketing BootcampVideo Marketing Bootcamp
Video Marketing Bootcamp
 
(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...
(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...
(UK version) Using Online Video in your Content Marketing Strategy: Best Prac...
 
El vídeo en línea como parte de su estrategia del marketing de contenidos del...
El vídeo en línea como parte de su estrategia del marketing de contenidos del...El vídeo en línea como parte de su estrategia del marketing de contenidos del...
El vídeo en línea como parte de su estrategia del marketing de contenidos del...
 

Kürzlich hochgeladen

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Kürzlich hochgeladen (20)

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Building an HTML5 Video Player

  • 1. Building an HTML5 Video Player Steve Heffernan, Video.js & Zencoder & Brightcove http://videojs.com @heff @videojs
  • 3. 3 | Confidential © 2013 Brightcove Inc.
  • 4. 4 | Confidential © 2013 Brightcove Inc.
  • 5. 5 | Confidential © 2013 Brightcove Inc.
  • 6. ~2000 ~2008 ~2015 6 | Confidential © 2013 Brightcove Inc.
  • 7. 7 | Confidential © 2013 Brightcove Inc.
  • 8. Reasons to use HTML5 Video It’s the future! Runs natively in the browser Cleaner code 8 | Confidential © 2013 Brightcove Inc.
  • 9. <video src=“video.mp4” controls></video> 9 | Confidential © 2013 Brightcove Inc.
  • 10. <video controls> <source src=“video.mp4” type=“video/mp4”> <source src=“video.webm” type=“video/webm”> <source src=“video.ogv” type=“video/ogg”> <object type=“application/x-shockwave-flash” data=“flash.swf”> <param name=“movie” value=“flash.swf” /> <param name=“flashvars” value=“file=video.mp4” /> </object> </video> 10 | Confidential © 2013 Brightcove Inc.
  • 11. 11 | Confidential © 2013 Brightcove Inc.
  • 12. 12 | Confidential © 2013 Brightcove Inc.
  • 14. The ‘Format War’ 14 | Confidential © 2013 Brightcove Inc.
  • 15. 15 | Confidential © 2013 Brightcove Inc.
  • 16. OPEN CLOSED 16 | Confidential © 2013 Brightcove Inc.
  • 17. 17 | Confidential © 2013 Brightcove Inc.
  • 18. 18 | Confidential © 2013 Brightcove Inc.
  • 19. CONTAINER FORMAT VIDEO CODEC AUDIO CODEC 19 | Confidential © 2013 Brightcove Inc.
  • 20. MP4 H.264 AAC 3+ 9+ 9+ 20 | Confidential © 2013 Brightcove Inc.
  • 21. OGV THEORA VORBIS 3.5+ 3+ 10.5+ 21 | Confidential © 2013 Brightcove Inc.
  • 22. WEBM VP8 VORBIS 4+ 6+ 10.6+ 22 | Confidential © 2013 Brightcove Inc.
  • 23. 23 | Confidential © 2013 Brightcove Inc.
  • 24. Three Formats 9+ 3+ 3+ 9+ 4+ 6+ 10.6+ 3.5+ 3+ 10.5+ 24 | Confidential © 2013 Brightcove Inc.
  • 25. Two Formats 9+ 3+ 3+ 9+ 4+ 6+ 10.6+ 25 | Confidential © 2013 Brightcove Inc.
  • 26. One Format 9+ 3+ 3+ 9+ 26 | Confidential © 2013 Brightcove Inc.
  • 27. Handbrake.fr 27 | Confidential © 2013 Brightcove Inc.
  • 28. Firefogg.org 28 | Confidential © 2013 Brightcove Inc.
  • 29. Zencoder.com 29 | Confidential © 2013 Brightcove Inc.
  • 30. Content Protection RTMP Streaming Source Obscurity Native App Obscurity DRM (Flash Time/GEO/IP limited HTTP Streaming Access/Smooth URLs AES Encryption Streaming) 30 | Confidential © 2013 Brightcove Inc.
  • 31. Content Protection bit.ly/wAkriF 31 | Confidential © 2013 Brightcove Inc.
  • 32. <video src=“video.mp4” controls></video> 32 | Confidential © 2013 Brightcove Inc.
  • 33. <video controls> <source src=“video.mp4” type=“video/mp4”> <source src=“video.webm” type=“video/webm”> <source src=“video.ogv” type=“video/ogg”> </video> 33 | Confidential © 2013 Brightcove Inc.
  • 34. <video controls> <source src=“video.mp4” type=“video/mp4”> <source src=“video.webm” type=“video/webm”> <source src=“video.ogv” type=“video/ogg”> </video> 34 | Confidential © 2013 Brightcove Inc.
  • 35. <video controls> <source src=“video.mp4” type=“video/mp4”> <source src=“video.webm” type=“video/webm”> <source src=“video.ogv” type=“video/ogg”> <object type=“application/x-shockwave-flash” data=“flash.swf”> <param name=“movie” value=“flash.swf” /> <param name=“flashvars” value=“file=video.mp4” /> </object> </video> 35 | Confidential © 2013 Brightcove Inc.
  • 36. <video controls> <source src=“video.mp4” type=“video/mp4”> <source src=“video.webm” type=“video/webm”> <source src=“video.ogv” type=“video/ogg”> <object type=“application/x-shockwave-flash” data=“flash.swf”> <param name=“movie” value=“flash.swf” /> <param name=“flashvars” value=“file=video.mp4” /> <img src=“image.jpg” alt=“title” title=“Can’t play video” /> </object> </video> <p> <strong>Download Video:</strong> <a href=“video.mp4”>MP4</a> <a href=“video.ogv”>Ogg</a> </p> 36 | Confidential © 2013 Brightcove Inc.
  • 37. Controls Autoplay Tracks Poster Loop Preload Width/Height <video controls autoplay loop width=“480” height=“270” poster=“poster.png” preload=“auto”> <source src=“video.mp4” type=“video/mp4”> <track kind=“captions” src=“captions.vtt” srclang=“en”> </video> 37 | Confidential © 2013 Brightcove Inc.
  • 38. Tag Builder http://videojs.com/tag-builder/ 38 | Confidential © 2013 Brightcove Inc.
  • 39. JavaScript API Attributes Functions • Events 39 | Confidential © 2013 Brightcove Inc.
  • 40. Browser/General Issues • Autobuffer => Preload • Cross-browser Load Progress Tracking • Missing Poster in Some Safari Devices • HTML5 Browsers Do Not Fallback on Incompatible Sources 40 | Confidential © 2013 Brightcove Inc.
  • 41. <video controls> <source src=“video.mp4” type=“video/mp4”> <source src=“video.webm” type=“video/webm”> <source src=“video.ogv” type=“video/ogg”> <object type=“application/x-shockwave-flash” data=“flash.swf”> <param name=“movie” value=“flash.swf” /> <param name=“flashvars” value=“file=video.mp4” /> </object> </video> 41 | Confidential © 2013 Brightcove Inc.
  • 42. Determine Video Support <script> var vidTag = document.createElement(“video”), flashVersion = swfobject.getFlashPlayerVersion(); if (vidTag.canPlayType && vidTag.canPlayType(“video/mp4”)) { // Video Tag } else if (flashVersion.major > 9){ // Flash Object } else { // No Video Support </script> SWF Object: http://code.google.com/p/swfobject/ 42 | Confidential © 2013 Brightcove Inc.
  • 43. Device Quirks: iOS 3 • Needs MP4 as first source. iPad Poster Attribute Bug • iPad JS in Head / iPhone JS not in Head 43 | Confidential © 2013 Brightcove Inc.
  • 44. Device Quirks: Android 2.1 / 2.2 • Can’t touch to start Type attribute breaks video • canPlayType function broken • ~25% of Android Users 44 | Confidential © 2013 Brightcove Inc.
  • 45. Android Touch Start Fix <script> if (navigator.userAgent.match(/Android/i) !== null) { $(“video”).click(function(){ this.play(); }); } </script> 45 | Confidential © 2013 Brightcove Inc.
  • 46. Android Type Attribute Fix Options • Don’t include type attribute Don’t use source tags <video src=“video.mp4” controls></video> • Set source through JS API video.src(“video.mp4”) 46 | Confidential © 2013 Brightcove Inc.
  • 47. Android canPlayType Fix <script> Var androidMatch = navigator.userAgent.match(/Android (d+./i); if (androidMatch && androidMatch[1] < 3) { //Overwrite canPlayType document.createElement(“video”) .constructor.prototype.canPlayType = function(type){ if (type && type.toLowerCase()>indexOf(“video/mp4”) !== -1) { return “maybe”; } else { return “”; } }; } </script> 47 | Confidential © 2013 Brightcove Inc.
  • 48. The Future of HTML5 Video • Content Protection - Encrypted Media Extensions • Adaptive Streaming - Media Source Extensions • Timed Text/Events - WebVTT • Video Chat - WebRTC • New Formats/Codecs - VPnext, h.265, Opus, TransOgg 48 | Confidential © 2013 Brightcove Inc.
  • 49. VideoJS.com 49 | Confidential © 2013 Brightcove Inc.
  • 50. Video for Everybody by Krox Camen 50 | Confidential © 2013 Brightcove Inc.
  • 51. Dive into HTML 5 by Mark Pilgrim 51 | Confidential © 2013 Brightcove Inc.
  • 52. HTML5 Video and Audio in Depth http://videojs.com/lynda 52 | Confidential © 2013 Brightcove Inc.
  • 53. Building an HTML5 Video Player Brightcove Webcast, March 2013 Steve Heffernan, Video.js & Zencoder & Brightcove http://videojs.com @heff @videojs 53 | Confidential © 2013 Brightcove Inc.