online example capturar camara and html5 websocket html5-video

example - Solución HTML5 para cargar una cámara web/cámara de video al servidor



stream webcam html5 (2)

Eche un vistazo a este artículo: http://www.smartjava.org/content/face-detection-using-html5-javascript-webrtc-websockets-jetty-and-javacvopencv

Muestra un uso de Webrtc :

Estas API deben permitir la creación de aplicaciones que se puedan ejecutar dentro de un navegador, que no requieran descargas o complementos adicionales, que permitan la comunicación entre las partes utilizando audio, video y comunicación complementaria en tiempo real, sin tener que usar servidores interpuestos (a menos que sea necesario para el cruce del firewall, o para la prestación de servicios de intermediación).

Usando getUserMedia puedo capturar secuencias de video desde la cámara / cámara web del cliente. Y usando video etiqueta de video puedo mostrarlo en el navegador del cliente. Código:

<video autoplay></video> <script type="text/javascript"> window.URL = window.URL || window.webkitURL; navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; var video = $(''video'')[0]; var failed = function(e) { console.log(''Denied!'', e); }; if( navigator.getUserMedia ) { navigator.getUserMedia( {video: true, audio: true}, function( stream ) { video.src = window.URL.createObjectURL(stream); }, failed ) } else { console.log( ''Not supported!'' ); } </script>

¿Ahora es posible enviar este flujo de video, ya sea como un feed en tiempo real o después de que el usuario haya terminado de grabar y haya decidido cargarlo, a un servidor?

He encontrado algunos ejemplos de:


MediaStreamRecorder es una API de WebRTC para grabar secuencias de getUserMedia (). Permite que las aplicaciones web creen un archivo desde una sesión de audio / video en vivo.

<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 data = {}; data.video = videoblob; data.metadata = ''test metadata''; data.action = "upload_video"; jQuery.post("http://www.kongraju.in/uploadvideo.php", data, onUploadSuccess); } function onUploadSuccess() { alert (''video uploaded''); } </script> <div id="webcamcontrols"> <button class="recordbutton" onclick="startRecording();">RECORD</button> </div>

Especulación:

http://www.w3.org/TR/mediastream-recording/

Puede enviar el archivo grabado al servidor.