Html5 enregistrement vidéo et la télécharger?
J'ai besoin de créer une application qui peut enregistrer de la vidéo à l'aide d'une webcam ou caméra mobile (il doit être de la croix-plate-forme).
Jusqu'à présent, j'ai écrit une petite preuve de concept à l'aide de webrtc getusermedia. Il peut enregistrer de la vidéo et de lecture, mais je ne suis pas sûr de savoir comment obtenir le fichier à télécharger vers le serveur.
Voici un lien vers cet échantillon http://jsfiddle.net/3FfUP/
Et le code javascript:
(function ($) {
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
var video = document.querySelector('video');
var onFailSoHard = function(e) {
console.log('Reeeejected!', e);
};
$('#capture-button').click (function () {
console.log ("capture click!");
if (navigator.getUserMedia) {
//Not showing vendor prefixes.
navigator.getUserMedia({video: true, audio: true}, function(localMediaStream) {
var video = document.querySelector('video');
video.src = window.URL.createObjectURL(localMediaStream);
//Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
//See crbug.com/110938.
video.onloadedmetadata = function(e) {
//Ready to go. Do some stuff.
};
}, onFailSoHard);
} else {
video.src = 'somevideo.webm'; //fallback.
}
});
$('#stop-button').click (function (e) {
video.pause ();
localMediaStream.stop ();
});
})(jQuery);
Comment puis-je obtenir ce qui est inscrit dans cet exemple comme un fichier de sorte qu'il peut être téléchargé sur le serveur.
- Eric Bidelman décrit une méthode pour l'enregistrement .webm de getUserMedia: ericbidelman.tumblr.com/post/31486670538/.... recorder.js (ou même RecorderJS) pourrait également être utile.
- Il y a un travail W3C projet de proposition pour l'enregistrement de l'API dans le http://lists.w3.org/Archives/Public/public-media-capture/2012Dec/att-0159/RecordingProposal.html Cependant, ni Firefox, ni Chrome ont encore mise en oeuvre. Il semble prometteur même si.
Vous devez vous connecter pour publier un commentaire.
Salut désolé si c'est un peu tard, mais voici comment j'ai réussi à faire l'upload de fichier sur un serveur, je n'ai pas vraiment une idée si c'est la meilleure façon d'atteindre cet objectif, mais j'espère que cela aide à vous donner un indice.Suivant le tutoriel Eric Bidelman écrit (comme Sam Dutton a commenté) ce que vous obtenez est un blob, j'ai donc fait un XMLHttpRequest pour obtenir la vidéo et configurer la réponse de type blob, par la suite, j'ai créé un FormData dans laquelle j'ai ajouté de la réponse, cela permettra à la goutte d'être envoyé au serveur.Voici comment ma fonction ressemble.
Vous pouvez enregistrer vidéo et audio séparément. Vous pouvez obtenir des fichiers (WAV/WebM) et de les envoyer sur demande. webkitMediaStream prend deux objets 1) audioTracks et 2) videoTracks. Vous pourriez être en mesure de combiner à la fois de l'audio/vidéo enregistré les flux!
Je sais que je suis quelques années de retard à la fête, mais voici un extrait qui est capable de capturer de la vidéo et de l'envoyer à l'node.js serveur en tant que webm fichier. Je l'ai testé sur Chrome et Firefox.
https://gist.github.com/rissem/d51b1997457a7f6dc4cf05064f5fe984
La seule de la croix-plate-forme web vidéo enregistreur est la HDFVR webcam video recorder logiciel.
Il utilise Flash (enregistrements à l'aide de Flash codecs + flux à un serveur multimédia) sur le bureau et le HTML Médias API de Capture (enregistrement à l'aide d'OS + envoyer au serveur web) sur mobile pour enregistrer de la vidéo à partir de pratiquement n'importe quel ordinateur de bureau ou navigateur mobile.
Vous pouvez la lier à une installation de ffmpeg pour convertir tout à une plate-forme de format MP4 (iOS dossiers à la une .mov conteneur qui ne joue pas sur Android), et il dispose également d'une API JS.
The only cross platform...
est évidemment faux(au moins maintenant) quand le HTML5 prend en charge. w3.org/TR/mediastream-recording.