Comment enregistrer d'une webcam et audio en utilisant webRTC et un serveur de base de la connexion Homologue

Je voudrais enregistrer les utilisateurs de webcam et audio et l'enregistrer dans un fichier sur le serveur. Ces fichiers pourront ensuite servir à d'autres utilisateurs.

Je n'ai pas de problèmes avec la lecture, cependant, je vais avoir des problèmes pour obtenir le contenu de l'enregistrement.

Ma compréhension est que le getUserMedia .record() fonction n'a pas encore été écrite seulement une proposition a été faite pour elle jusqu'à présent.

Je voudrais créer un pair de connexion sur mon serveur à l'aide de la PeerConnectionAPI. Je comprends que c'est très orthodoxe, mais je pense qu'il devrait être possible de créer un pair sur le serveur et d'enregistrer ce que le client-peer envoie.

Si c'est possible, je dois être en mesure d'enregistrer ces données au format flv ou tout autre format vidéo.

Ma préférence est fait pour enregistrer la webcam + audio côté client, pour permettre au client de ré-enregistrement de vidéos si ils n'aimaient pas leur première tentative avant de le télécharger. Cela pourrait aussi permettre d'interruptions dans la connexion de réseau. J'ai vu un bout de code qui permet l'enregistrement de l'individu 'images' a partir de la webcam par l'envoi des données à la toile, c'est cool, mais j'ai besoin de l'audio aussi.

Voici le code côté client j'ai pour l'instant:

  <video autoplay></video>
<script language="javascript" type="text/javascript">
function onVideoFail(e) {
console.log('webcam fail!', e);
};
function hasGetUserMedia() {
//Note: Opera is unprefixed.
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
if (hasGetUserMedia()) {
//Good to go!
} else {
alert('getUserMedia() is not supported in your browser');
}
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia  = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
var video = document.querySelector('video');
var streamRecorder;
var webcamstream;
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
webcamstream = stream;
// streamrecorder = webcamstream.record();
}, onVideoFail);
} else {
alert ('failed');
}
function startRecording() {
streamRecorder = webcamstream.record();
setTimeout(stopRecording, 10000);
}
function stopRecording() {
streamRecorder.getRecordedData(postVideoToServer);
}
function postVideoToServer(videoblob) {
/*  var x = new XMLHttpRequest();
x.open('POST', 'uploadMessage');
x.send(videoblob);
*/
var data = {};
data.video = videoblob;
data.metadata = 'test metadata';
data.action = "upload_video";
jQuery.post("http://www.foundthru.co.uk/uploadvideo.php", data, onUploadSuccess);
}
function onUploadSuccess() {
alert ('video uploaded');
}
</script>
<div id="webcamcontrols">
<a class="recordbutton" href="javascript:startRecording();">RECORD</a>
</div>
  • J'ai le même problème. Est la méthode getRecordedData() de travail pour vous ? Il n'est pas sur mon nouveau-mise à jour des navigateurs.
  • Non - j'ai essayé Google "Canaries" aussi.
  • Ouais je vais garder un œil sur elle - je vais mettre à jour ce fil quand il y a une solution adéquate.
  • si vous avez la solution de la question ci-dessus s'il vous plaît partager avec moi, Merci
  • Quelqu'un a été en mesure d'obtenir à la MediaStream octets par certains côté serveur RTC magie?
  • Openvidu openvidu.io