blob: f263f29e6aff514ef28832711dae741c8f923ca9 [file] [edit]
<!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();
video.src = URL.createObjectURL(source);
}
function startStreaming(event)
{
if (source.readyState == "open") {
loadData();
return;
}
source.addEventListener('sourceopen', loadData);
}
function loadData()
{
sourceBuffer = source.addSourceBuffer(isMP4Supported() ? 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"' : isWebMVP9Supported() ? 'video/webm;codecs="vp9,opus"' : 'video/webm;codecs="opus"');
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>