Firefox
またはChrome
でサポートされているすべてのMIMEタイプのリストはどこにありますか?これまでに見てきたすべての例は、video/webm
のみを使用しています。
Firefoxの包括的なリストはまだありませんが、haveは(MediaRecorder APIの 投稿このテストセット にリンクするGoogleのウェブアップデートセクションから).
基本的に、Chromeのビデオ/オーディオ用に受け入れられているMIMEタイプは(執筆時点で)次のようになります。
video/x-matroska; codecs = avc1
オーディオ/ウェブ
(2019-02-10の編集: brianchirls ' link findを含むように更新)
Firefoxの場合、受け入れられるMIMEタイプは _MediaRecorder.cpp
_ にあり、 MediaRecorder.isTypeSupported(...)
を使用して確認できます。
例:
_21:31:27.189 MediaRecorder.isTypeSupported('video/webm;codecs=vp8')
21:31:27.135 true
21:31:41.598 MediaRecorder.isTypeSupported('video/webm;codecs=vp8.0')
21:31:41.544 true
21:32:10.477 MediaRecorder.isTypeSupported('video/webm;codecs=vp9')
21:32:10.431 false
21:31:50.534 MediaRecorder.isTypeSupported('audio/ogg;codecs=opus')
21:31:50.479 true
21:31:59.198 MediaRecorder.isTypeSupported('audio/webm')
21:31:59.143 false
_
var canRecordVp9 = MediaRecorder.isTypeSupported('video/webm;codecs=vp9');
を使用することを含むソリューションを今日見つけました
chrome(およびOpera)とFirefoxを区別し、if (canRecordVp9) { mediaRecorder = new MediaRecorder(stream, {mimeType : 'video/webm;codecs=vp9'}); } else { mediaRecorder = new MediaRecorder(stream); }
を実行します
それに応じてMediaRecorderを構築します。
次に、ブロブを取得するとき:if (canRecordVp9) { blob = new Blob([myArrayBuffer], { "type" : "video/webm;codecs=vp9" }); } else { blob = new Blob([myArrayBuffer], { "type" : "video/webm" }); }
最後に、FileReaderを使用してblobをdataUrlとして取得します。
var reader = new FileReader();
reader.onload = function(event)
{
var blobDataUrl = event.target.result;
}
reader.readAsDataURL(blob);`
次に、blobDataUrlをwebmファイルとして保存すると、Chrome=で記録されたビデオはFirefoxで正常に機能し、その逆も同様です。