HTML5; it's new, it's awesome, and it's powerful, but can it take down the champ of video distribution, Flash. Which technology's got the ability to bring cat video to the next level? This talk covers the many challenges of both HTML5 and YouTube adapting to change video distribution on the web.
15. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
16. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
● Fullscreen video
17. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
● Fullscreen video
○ Hardware accelerated HD cat videos!
○ **WebKit has a JavaScript API
18. Why Flash?
WebKit Fullscreen API
var elem = document.getElementById("my-element");
elem.onwebkitfullscreenchange = function() {
console.log ("We went fullscreen!");
};
elem.webkitRequestFullScreen();
19. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
● Fullscreen video
○ HD, hardware accelerated cat videos!
○ **WebKit has a JavaScript API
20. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
● Fullscreen video
○ HD, hardware accelerated cat videos!
○ **WebKit has a JavaScript API
● Consistent format support
21. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
● Fullscreen video
○ HD, hardware accelerated cat videos!
○ **WebKit has a JavaScript API
● Consistent format support
○ HTML5 needs to support both H.264 and WebM
22. Why Flash?
Features missing in HTML5
● Content protection
○ RTMPE protocol / Flash Access
● Camera & Microphone Access
● Fullscreen video
○ HD, hardware accelerated cat videos!
○ **WebKit has a JavaScript API
● Consistent format support
○ HTML5 needs to support both H.264 and WebM
● Cross platform consistency****
28. Why HTML5?
<video> Expectations
● Open source technology
○ Browser / Player / Codec
● Lower latency
○ No plug-in instantiation
● Better performance and fidelity
● Accessibility
○ User agents can have special video handling
38. When HTML5?
<iframe> Embed
● Give the user HTML5 or Flash based on device and user
preferences.
● Allows for better mobile support.
● Offers an "it just works" experience.
40. When HTML5?
Detecting HTML5
var videoElement = document.createElement('video');
if (videoElement && videoElement.canPlayType &&
(videoElement.canPlayType('video/mp4; codecs="avc1.42001E, mp4a.40.2"') ||
videoElement.canPlayType('video/webm; codecs="vp8.0, vorbis"'))) {
// Sweet, we can use HTML5!
}
44. iframe Embed Time Till Thumbnail Visible
Flash - 5.1s
HTML5 - 1.4s
*Collected data shows faster load times than this control
environment, but the comparison is actuate.
46. Get Video Time
● HTML5:
○ Opera is Awesome
■ 200ms ahead of the pack
● Flash: IE9 and Opera are the leaders
○ 200ms faster
● HTML5 is almost always faster than Flash
○ 300ms - 350ms faster
○ IE9 is an exception
■ IE9 Flash is slightly faster than IE9 HTML5
50. Making Assumptions
● Most users have a recent version of flash
● Thus we can optimistically embed the most
common case and do version checking and
updating after a script loads
● 250ms improvement to flash start time
52. Preload Video Connection
● Resolves DNS while page is rendering
● Maintains an open connection
● 200ms improvement
<head>
<script>
var img = new Image();
img.src = videoConnectionUrl;
</script>
</head>
65. The JavaScript API
Communication
● Poll the URL fragment?
http://youtube.com/embed/video_id#fragment
● Messages are one dimensional.
● Polling eats up CPU and is not instant.
● Both directions of communication use the same
fragment.
66. The JavaScript API
Communication
● Better idea: PostMessage API.
someWindow.postMessage(message, targetOrigin);
67. The JavaScript API
Communication
● Better idea: PostMessage API.
someWindow.postMessage(message, targetOrigin);
● Uses JSON for native encoding and decoding of data.
● No polling.
● Native event listeners.
● Communications are sandboxed per-window.
● Calls are asynchronous.
68. Conclusion
● Flash is still preferred in most places
○ More critical features
○ Deeper reach
● HTML5 is awesome
○ Improves every day
○ Greater mobile reach
○ People want it
69. Questions?
can haz question?
By cloudzilla http://www.flickr.com/photos/cloudzilla/378829651/
schechter@google.com
philharnish@google.com