Today I found a solution that includes using var canRecordVp9 = MediaRecorder.isTypeSupported('video/webm;codecs=vp9');
make a distinction between Chrome (and Opera) and Firefox, and then do if (canRecordVp9) { mediaRecorder = new MediaRecorder(stream, {mimeType : 'video/webm;codecs=vp9'}); } else { mediaRecorder = new MediaRecorder(stream); } if (canRecordVp9) { mediaRecorder = new MediaRecorder(stream, {mimeType : 'video/webm;codecs=vp9'}); } else { mediaRecorder = new MediaRecorder(stream); }
Build MediaRecorder accordingly.
Then, when I grabbed the blob: if (canRecordVp9) { blob = new Blob([myArrayBuffer], { "type" : "video/webm;codecs=vp9" }); } else { blob = new Blob([myArrayBuffer], { "type" : "video/webm" }); } if (canRecordVp9) { blob = new Blob([myArrayBuffer], { "type" : "video/webm;codecs=vp9" }); } else { blob = new Blob([myArrayBuffer], { "type" : "video/webm" }); }
and finally use FileReader to get the blob as dataUrl: "
var reader = new FileReader(); reader.onload = function(event) { var blobDataUrl = event.target.result; } reader.readAsDataURL(blob);'
Then I save blobDataUrl as a web file, and the videos recorded in Chrome work fine in Firefox, and vice versa.
Craig
source share