web-dev-qa-db-fra.com

Tous les types MIME pris en charge par MediaRecorder dans Firefox et Chrome?

Où puis-je trouver une liste de tous les types MIME pris en charge par Firefox ou Chrome? Tous les exemples que j'ai vus jusqu'à présent en utilisant video/webm seulement.

21
Hp93

Je n'ai pas encore vu de liste complète pour Firefox mais j'ai réussi à trouver quelque chose (via un publication sur l'API MediaRecorder) de la section des mises à jour Web de Google) qui renvoie à cet ensemble de test qui semble faire la lumière sur les choses.

Essentiellement, il semble que les types MIME suivants soient acceptés (au moment de la rédaction) pour la vidéo/l'audio dans Chrome:

  • vidéo/webm
  • vidéo/webm; codecs = vp8
  • vidéo/webm; codecs = vp9
  • vidéo/webm; codecs = vp8.0
  • vidéo/webm; codecs = vp9.0
  • vidéo/webm; codecs = h264
  • vidéo/webm; codecs = H264
  • vidéo/webm; codecs = avc1
  • vidéo/webm; codecs = vp8, opus
  • vidéo/WEBM; codecs = VP8, OPUS
  • vidéo/webm; codecs = vp9, opus
  • vidéo/webm; codecs = vp8, vp9, opus
  • vidéo/webm; codecs = h264, opus
  • vidéo/webm; codecs = h264, vp9, opus
  • vidéo/x-matroska; codecs = avc1

  • audio/webm

  • audio/webm; codecs = opus

(EDITED 2019-02-10: Mis à jour pour inclure brianchirls ' lien trouver)

26
exafred

Pour Firefox, les mimetypes acceptés peuvent être trouvés dans MediaRecorder.cpp et confirmés en utilisant MediaRecorder.isTypeSupported(...)

Exemple:

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
8
AndyO

J'ai trouvé aujourd'hui une solution qui consiste à utiliser var canRecordVp9 = MediaRecorder.isTypeSupported('video/webm;codecs=vp9');

pour faire la différence entre Chrome (et Opera) et Firefox, puis faites if (canRecordVp9) { mediaRecorder = new MediaRecorder(stream, {mimeType : 'video/webm;codecs=vp9'}); } else { mediaRecorder = new MediaRecorder(stream); }

pour construire le MediaRecorder en conséquence.

Ensuite, lors de la saisie du blob: if (canRecordVp9) { blob = new Blob([myArrayBuffer], { "type" : "video/webm;codecs=vp9" }); } else { blob = new Blob([myArrayBuffer], { "type" : "video/webm" }); }

et enfin, utilisez FileReader pour obtenir le blob en tant que dataUrl: `

var reader = new FileReader();
reader.onload = function(event)
{
    var blobDataUrl = event.target.result;
}
reader.readAsDataURL(blob);`

J'enregistre ensuite le blobDataUrl en tant que fichier webm, et les vidéos enregistrées dans Chrome fonctionnent correctement dans Firefox, et vice-versa.

0
Craig