You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.8 KiB

<!doctype html>
<link rel="stylesheet" href="/node_modules/video.js/dist/video-js/video-js.css">
<style>
p {
background-color: #cbcbcb;
border-radius: 5px;
border: thin solid #333;
padding: 5px;
}
</style>
<p>This page pushes random bytes into a SourceBuffer to allow easy testing of ExternalInterface bandwidth. If ExternalInterface cannot transmit bytes to the video.js SWF at a greater rate than the video bitrate without using up too much CPU, playback will be interrupted.</p>
<video
class="video-js vjs-default-skin"
width="960"
height="400"
controls>
<source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4">
<source src="http://vjs.zencdn.net/v/oceans.webm" type="video/webm">
Your browser does not support HTML video.
</video>
<form>
<legend>Test Parameters</legend>
<label>
Number of bytes per append:
<input id="byte-count" type="number" min="1" value="1000">
</label>
<label>
Number of appends:
<input id="append-count" type="number" min="1" value="10000">
</label>
</form>
<button disabled>Run Test</button>
<table>
<caption>Test Results</caption>
<thead>
<tr><td>Bytes</td><td>Appends</td><td>Elapsed Milliseconds</td></tr>
</thead>
<tbody id="results"></tbody>
</table>
<script src="/node_modules/video.js/dist/video-js/video.js"></script>
<script src="/dist/videojs-contrib-media-sources.js"></script>
<script>
var player = videojs(document.querySelector('video'), {
techOrder: ['flash', 'html']
}, function() {
var mediaSource = new videojs.MediaSource();
mediaSource.addEventListener('sourceopen', function(event) {
var sourceBuffer = mediaSource.addSourceBuffer('video/flv; codecs="vp6,aac"'),
button = document.querySelector('button');
button.disabled = false;
button.addEventListener('click', function() {
var byteCount = +document.querySelector('#byte-count').value,
bytes = new Uint8Array(byteCount),
appendCount = +document.querySelector('#append-count').value,
i = appendCount,
result = document.createElement('tr'),
printResults = function() {
result.innerHTML = '<td>' + byteCount + '</td><td>' +
appendCount + '</td><td>' +
(Date.now() - start) + '</td>';
document.querySelector('#results').appendChild(result);
sourceBuffer.removeEventListener('updateend', printResults);
button.disabled = false;
},
start;
button.disabled = true;
sourceBuffer.addEventListener('updateend', printResults);
start = Date.now();
while (i--) {
sourceBuffer.appendBuffer(bytes, player);
}
}, false);
}, false);
player.src({
src: videojs.URL.createObjectURL(mediaSource),
type: "video/flv"
});
});
</script>