+ All Categories
Home > Technology > Open dev meetup html5 adaptive video streaming

Open dev meetup html5 adaptive video streaming

Date post: 12-Apr-2017
Category:
Upload: bitmovin
View: 233 times
Download: 4 times
Share this document with a friend
19
Transcript
Page 1: Open dev meetup html5 adaptive video streaming
Page 2: Open dev meetup html5 adaptive video streaming

›››

Page 3: Open dev meetup html5 adaptive video streaming

»››

Page 4: Open dev meetup html5 adaptive video streaming

»››

»››

»››

»››

Page 5: Open dev meetup html5 adaptive video streaming

Page 6: Open dev meetup html5 adaptive video streaming

»

»›››››

» ⇒

Page 8: Open dev meetup html5 adaptive video streaming

https://www.w3.org/TR/media-source/

Page 9: Open dev meetup html5 adaptive video streaming
Page 10: Open dev meetup html5 adaptive video streaming

var ms = new window.MediaSource();

var video = document.querySelector('video');video.src = window.URL.createObjectURL(ms);

ms.addEventListener('sourceopen', function(e) { ... var sourceBuffer = ms.addSourceBuffer( 'video/mp4; codecs="avc1.4d400d"' ); sourceBuffer.appendBuffer(videoChunk); ....}, false);

Page 11: Open dev meetup html5 adaptive video streaming

›››

› new Uint8Array(arrayBuffer);

Page 12: Open dev meetup html5 adaptive video streaming

var baseUrl = 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/video/720_2400000/dash/';var initUrl = baseUrl + 'init.mp4';var templateUrl = baseUrl + 'segment_$Number$.m4s';var sourceBuffer;var index = 0;var numberOfChunks = 52;var video = document.querySelector('video');

if (!window.MediaSource) { return; }

var ms = new window.MediaSource();video.src = window.URL.createObjectURL(ms);ms.addEventListener('sourceopen', onMediaSourceOpen);

Page 13: Open dev meetup html5 adaptive video streaming

function onMediaSourceOpen() { sourceBuffer = ms.addSourceBuffer( 'video/mp4; codecs="avc1.4d401f"'); sourceBuffer.addEventListener('updateend', nextSegment); GET(initUrl, appendToBuffer); video.play();}

function nextSegment() { var url = templateUrl.replace('$Number$', index); GET(url, appendToBuffer); index++; if (index > numberOfChunks) { sourceBuffer.removeEventListener('updateend', nextSegment); }}

Page 14: Open dev meetup html5 adaptive video streaming

function appendToBuffer(videoChunk) { if (videoChunk) { sourceBuffer.appendBuffer(new Uint8Array(videoChunk)); }}

function GET(url, callback) { var xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.responseType = 'arraybuffer'; xhr.onload = function(e) { if (xhr.status != 200) { return false; } callback(xhr.response); }; xhr.send();}

Page 16: Open dev meetup html5 adaptive video streaming

››

›››

Page 17: Open dev meetup html5 adaptive video streaming

Page 19: Open dev meetup html5 adaptive video streaming

Recommended