| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | <!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>
 |