1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<!DOCTYPE html>
<html>
<head>
<script>
var video;
var source;
var sourceBuffer;
var request;
function isMP4Supported()
{
return ManagedMediaSource.isTypeSupported('video/mp4;codecs="avc1.4D4001,mp4a.40.2"');
}
function isWebMVP9Supported()
{
return ManagedMediaSource.isTypeSupported('video/webm;codecs="vp9,opus"');
}
function isWebMOpusSupported()
{
return ManagedMediaSource.isTypeSupported('video/webm;codecs="opus"');
}
function loadVideo()
{
video = document.getElementById('test-video');
video.disableRemotePlayback = true;
request = new XMLHttpRequest();
request.responseType = 'arraybuffer';
request.open('GET', isMP4Supported() ? 'test-mse.mp4' : isWebMVP9Supported() ? 'test-mse.webm' : 'test-mse-audio.webm', true);
request.addEventListener('load', load);
request.send();
}
function load(event)
{
source = new ManagedMediaSource();
source.addEventListener('sourceopen', sourceopen);
video.src = URL.createObjectURL(source);
}
function sourceopen(event)
{
sourceBuffer = source.addSourceBuffer(isMP4Supported() ? 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"' : isWebMVP9Supported() ? 'video/webm;codecs="vp9,opus"' : 'video/webm;codecs="opus"');
}
function startStreaming(event)
{
sourceBuffer.addEventListener('updateend', updateend);
sourceBuffer.appendBuffer(request.response);
}
function updateend(event)
{
// enstreaming event will be fired.
source.endOfStream();
}
</script>
</head>
<body>
<p>
<video id="test-video" controls></video>
</p>
<p>
<button onclick="loadVideo()">load video</button>
<button onclick="startStreaming()">Stream video</button>
</p>
</body>
</html>
|