2009-12-29 18 views
15

Me gustaría utilizar Flash para capturar video de la cámara web del usuario y luego guardarlo en el mismo servidor que aloja el archivo Flash. El servidor web ejecutará la tecnología ASP.Net. Parece fácil, ¿verdad?Guardar video capturado de la cámara web usando Flash

El lote de búsquedas arrojó las mismas líneas de código para iniciar una captura de cámara web usando Flash. No puedo encontrar nada que envíe ese video capturado a un servidor.

Puedo encontrar muchas publicaciones en blogs y foros que implican software de terceros o Flash Communication Server es necesario para recopilarlo en el servidor, pero no entiendo por qué.

Parece que Flash debe ser capaz de capturar algunos videos y enviarlos como una publicación HTTP al mismo servidor que aloja el archivo Flash. Esa es una funcionalidad Flash/webcam bastante básica, ¿verdad? Parece que no necesitamos introducir dependencias de terceros por el momento.

¿Alguien sabe dónde podrían estar ocultas estas líneas adicionales de código ActionScript de ejemplo?

Respuesta

15

Necesita un Flash Media Server (o una alternativa de código abierto como Red5) para poder transmitir video del cliente al servidor, que es básicamente lo que quiere hacer aquí. No hay forma de hacerlo utilizando HTTP POST.

Sin embargo, puede dibujar su objeto de visualización de video en un mapa de bits en cada fotograma, y ​​cargar esos mapas de bits sobre la marcha con archivos HTTP normales. Aunque como puedes imaginar, eso no es exactamente ideal desde el punto de vista del rendimiento. También encontrará problemas porque el modelo de seguridad de Flash Player no le permite cargar archivos sin que la operación sea iniciada por el usuario (es decir, un evento de clic del mouse está en el rastreo de la pila). Sin embargo, hay una forma de evitar esto, p. enviando el archivo como un AMF ByteArray a través de un servicio AMF, pero puede que no sea a prueba de futuro.

Al final, para cualquier tipo de aplicación de nivel profesional, definitivamente querrá incorporar un Flash Media Server (o Red5). Hay empresas desde las cuales puede contratar tales servicios, un ejemplo es Influxis. Al recorrer esa ruta, no tendrá que alojar el servidor (que es Java) usted mismo.

+4

Ok, entonces lo que estoy aprendiendo es que Flash no puede crear un video clip de 10 segundos desde la cámara web y luego publicar ese archivo de video en un servidor. Por lo tanto, la fuente de datos de la cámara web es como una bomba de fuego y el flash no puede embotellar ni un fragmento de ella; Flash solo puede redirigir la transmisión a su pantalla o a un destinatario de transmisión especial como Flash Media Server de Red5. Gracias por la info! – a7drew

+0

¡Eso es correcto! A menos que, por supuesto, use la solución alternativa donde almacena todos los marcos como mapas de bits en la memoria (utilizando la clase BitmapData y su método draw) y luego cargue esos mapas de bits secuencialmente a un servidor, donde pueden codificarse utilizando ffmpeg, por ejemplo. – richardolsson

0

Encontré este blog útil.

http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/ Este código se basa en la respuesta dada por richardolsson.

Probé este código una vez en mi proyecto y también tuve éxito en subir un video de 10 segundos a Facebook también. He escrito un blog de detalles sobre mi experiencia. http://www.logicmanialab.com/2012/10/upload-video-to-facebook-using.html

Este código se romperá o colgará el navegador si el video es demasiado largo. De todos modos, vale la pena intentarlo.

Además la mejor manera de guardar videos es usar el servidor Flash Media o el servidor RED5 (Mi experiencia). Nunca he probado ffmpeg porque no soy el mejor en PHP :).

Cuestiones relacionadas