Reproduzca fragmentos de MediaRecorder en MediaSource HTML5 - video frozen

Tengo este código simple para obtener fragmentos de transmisión de video y reproducirlos en MediaSource. Veo video, pero a veces se detiene. Puede funcionar durante unos segundos o durante unos minutos. Pero finalmente se detiene en algún momento. chrome: // media-internals / no muestra errores.

¿Que esta mal aquí?

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
var mediaSource = new MediaSource();
var constraints = {
    "audio": true,
    "video": {
        "mandatory": {
            "minWidth": 320, "maxWidth": 320,
            "minHeight": 240, "maxHeight": 240
        }, "optional": []
    }
};
window.mediaSource = mediaSource;
var sourceBuffer;
var video = document.querySelector('#video');
window.video = video;
video.src = window.URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', function (e) {
    console.log("sourceopen");
    sourceBuffer = mediaSource.addSourceBuffer('video/webm; codecs="vorbis,vp8"');
    window.sourceBuffer = sourceBuffer;
}, false);
mediaSource.addEventListener('error', function (e) {
    console.log("error", e)
}, false);
var stack = [];

video.play();
navigator.getUserMedia(constraints, function (stream) {
    console.log("stream", stream);
    mediaRecorder = new MediaRecorder(stream);
    mediaRecorder.ondataavailable = function (e) {
        var reader = new FileReader();
        reader.addEventListener("loadend", function () {
            var arr = new Uint8Array(reader.result);
            sourceBuffer.appendBuffer(arr);
        });
        reader.readAsArrayBuffer(e.data);
    };
    mediaRecorder.start(100);
}, function (e) {
    console.log(e)
});

Aquí está JSFIDDLE que intentará hacerlo:https://jsfiddle.net/stivyakovenko/fkt89cLu/6/ Estoy usando Chrome como mi objetivo principal.

Respuestas a la pregunta(4)

Su respuesta a la pregunta