una quemar programas laptop grabar disco como archivos air video-capture

air - programas - como quemar un disco en una laptop



¿Cómo grabo video en un disco local en AIR? (5)

Intento grabar el video y el audio de una cámara web en un archivo FLV almacenado en el disco duro local de los usuarios. Tengo una versión de este código en funcionamiento que usa NetConnection y NetStream para transmitir el video a través de una red a un servidor FMS (Red5), pero me gustaría poder almacenar el video localmente para situaciones de redes con poco ancho de banda / escamosa. Estoy usando FLex 3.2 y AIR 1.5, por lo que no creo que haya restricciones de espacio aislado que impidan que esto ocurra.

Cosas que he visto:

  • FileStream : permite leer, escribir archivos locales, pero no .attachCamera y .attachAudio methids para crear un FLV.
  • flvrecorder - Produce capturas de pantalla de la cámara web y crea su propio archivo flv. No es compatible con Audio. La licencia prohíbe el uso comercial.
  • SimpleFLVWriter.as : similar a la flvrecorder sin la licencia extraña. No es compatible con audio
  • Esta publicación stackoverflow - que demuestra la reproducción de un video desde un disco local usando NetConnection / NetStream.

Dado que ya tengo una versión que usa NetStream para transmitir al servidor, pensé que la última era la más prometedora y seguí adelante y armamos esta aplicación de demostración. El código se compila y se ejecuta sin errores, pero no tengo un archivo FLV en el disco que haga clic en el botón de detención. -

<mx:Script> <![CDATA[ private var _diskStream:NetStream; private var _diskConn:NetConnection; private var _camera:Camera; private var _mic:Microphone; public function cmdStart_Click():void { _camera = Camera.getCamera(); _camera.setQuality(144000, 85); _camera.setMode(320, 240, 15); _camera.setKeyFrameInterval(60); _mic = Microphone.getMicrophone(); videoDisplay.attachCamera(_camera); _diskConn = new NetConnection(); _diskConn.connect(null); _diskStream = new NetStream(_diskConn); _diskStream.client = this; _diskStream.attachCamera(_camera); _diskStream.attachAudio(_mic); _diskStream.publish("file://c:/test.flv", "record"); } public function cmdStop_Click() { _diskStream.close(); videoDisplay.close(); } ]]> </mx:Script> <mx:VideoDisplay x="10" y="10" width="320" height="240" id="videoDisplay" /> <mx:Button x="10" y="258" label="Start" click="cmdStart_Click()" id="cmdStart"/> <mx:Button x="73" y="258" label="Stop" id="cmdStop" click="cmdStop_Click()"/> </mx:WindowedApplication>

Me parece que hay algún problema con el código anterior que le impide funcionar, o que no se puede abusar de NetStream en este video para grabar videos.

Lo que me gustaría saber es a) ¿Qué (si hay algo) está mal con el código anterior? b) Si NetStream no es compatible con la grabación en el disco, ¿hay alguna otra alternativa que capture Audio Y Video en un archivo en el disco duro local del usuario?

¡Gracias por adelantado!


También estoy tratando de hacer lo mismo, pero los desarrolladores de avchat.net me han dicho que no es posible hacer esto con AIR en este momento. ¡Si descubres cómo hacerlo, me encantaría saber!

También encontré este enlace, no estoy seguro de lo útil que es http://www.zeropointnine.com/blog/webcam-dvr-for-apollo/


Bueno, creo que dejar que se conecte a nada (NULL) no funciona. Ya le he dejado tratar de conectarse a localhost, pero tampoco funcionó. No creo que esto sea posible. La transmisión de video funciona solo con Flash Media Server y Red5, no local. ¿Tal vez podrías instalar Red5 en tu PC?


Lamentablemente, el soporte de video en flash de las cámaras es muy pobre. Cuando se transmite en crudo, el problema es que hay que codificar en FLV y hacerlo en tiempo real requiere una computadora muy rápida. Los conceptos de la primera generación escribirían mapas de bits sin formato en un archivo (o serializarían una matriz), luego un segundo método convertiría el archivo a FLV. Básicamente tienes que sondear la cámara y guardar cada fotograma como un mapa de bits y luego apilar en una matriz. Esto es muy limitado y no podría hacer audio. También fue muy difícil superar los 5-10 fps.

El caballero en el punto cero nueve, se le ocurrió una nueva versión y estás en el camino correcto. Mire la nueva grabadora flv . Pasé mucho tiempo trabajando con esto, pero nunca funcionó para mis necesidades (dos cámaras). Simplemente no pude obtener el FPS que necesitaba. Pero podría funcionar para ti. Fue mucho más rápido que el método original.

La única otra opción de trabajo que conozco es hacer que Red5 guarde el video y lo descargue a la aplicación.


Mi solución fue integrar Red5 en AIR. Compartiendo contigo mi artículo

http://mydevrecords.blogspot.com/2012/01/local-recording-in-adobe-air-using-red5.html

En general, la solución es integrar el servidor de medios gratuito Red5 en AIR como un activo. Por lo tanto, el servidor estará presente en la carpeta de la aplicación de AIR. Luego, a través de NativeProcess, puede ejecutar Red5 y tener su instancia en la memoria. Como resultado, puede tener una grabación de video local sin problemas de red.


No es posible transmitir video directamente al disco local sin utilizar algún servicio de transmisión como el codificador de Windows Media o Red5 o el servidor de medios de Adobe u otra cosa.

He probado todas las muestras en Internet sin solución hasta la fecha.

mira este enlace para otra posibilidad:

http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/