Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

31/3/11

Capturar Imagen de una webcam con JMF

JAN29

Como se vio en un post anterior (Capturar video de una webcam con JMF) la captura de un video desde una webcam utilizando la API de Java Media Framework, capturar una imagen, no es cosa del otro mundo, bastara con realizar unas modificaciones a nuestra clase jfmVideo.java

Los requisitos son los mismos, o casi los mismos

Para este ejemplo, se utilizara como dispositivo de captura, "vfw:Microsoft WDM Image Capture (Win32):0"  que es el Controlador Universal de Windows para las camaras de video.


Que necesitamos:
  • IDE Netbeans 6.9
  • Libreria JMF (Java Media Framework) instalada y configurada en el sistema
  • Una WebCam, celular con camara tambien sirve
  • Componente jcSlide (Descargar desde aqui) para almacenar las imagenes que capturemos
1. Crea un proyecto en Netbeans y añade las siguientes clases: una clase interfaz video.java y una clas jmfVideo.java
las que estan tachadas son solo imagenes para la interfaz, no son necesarias, no te olvides de añadir la libreria Java Media Framework al proyecto.

2. Para la clase interfaz video.java, se deben añadir los siguientes objetos:
Recuerda crear los objetos con los nombres que estan en la imagen

3. El codigo de la clase jmfVideo.java es:

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.media.*;
import javax.media.cdm.CaptureDeviceManager;
import java.io.*;
import java.awt.*;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class jmfVideo {
//Controlador universal de windows
    private String dispositivo = "vfw:Microsoft WDM Image Capture (Win32):0";
    private Player player = null;

    public Component Componente(){
    Component componente_video;
        try {
            // Se obtiene el dispositivo
            CaptureDeviceInfo device = CaptureDeviceManager.getDevice(dispositivo);
            //se obtiene la fuente de datos de captura
            MediaLocator localizador = device.getLocator();
            //El localizador es del tipo "vfw://0" video para windows
            //se crea el PLAYER y se ejecuta
            player = Manager.createRealizedPlayer(localizador);
            player.start();
        } catch (IOException ex) {
            Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoPlayerException ex) {
            Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (CannotRealizeException ex) {
            Logger.getLogger(jmfVideo.class.getName()).log(Level.SEVERE, null, ex);
        }
        //Si se pudo crear el PLAYER, se obtiene el componente de video
        if ((componente_video = player.getVisualComponent()) != null) {
                //se da un tamaño al componente
                componente_video.setSize(320, 240);
                return componente_video;
            } else {
                JOptionPane.showMessageDialog(null,"No se pudo crear el video...");
                return null;
            }
    }

    //Metodo para capturar la imagen de la webcam
    Image img = null;
    public void capturarImagen(){
        FrameGrabbingControl ControlFG = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
        Buffer buffer = ControlFG.grabFrame();
        // creamos la imagen awt
       BufferToImage imagen = new BufferToImage((VideoFormat)buffer.getFormat());
       img = imagen.createImage(buffer);
    }

    public Image getImagen(){
        return img;
    }

    public void setImage(JLabel lb){
        capturarImagen();        
        lb.setIcon( new javax.swing.ImageIcon( img ) );
        System.out.println("ancho= " + img.getWidth(null));
        System.out.println("alto= " + img.getHeight(null));
    }


}

4. Para implementar esta clase en la interfaz, el codigo es el siguiente
Esto se debe colocar en el constructor, no es cuestion de copiar y pegar, analiza el codigo

jmfVideo b = new jmfVideo();
    /** Creates new form video */
    public video() {
        initComponents();
        this.setTitle("Captura de Imagen desde WebCam - by Mouse");
        //formulario al centro de la pantalla
        this.setLocationRelativeTo(null);
        //se coloca un layout tipo CAJA        
        VIDEO.setLayout(new javax.swing.BoxLayout(VIDEO, javax.swing.BoxLayout.LINE_AXIS));
        //se añade el componente de video
        VIDEO.add(b.Componente());
        imagen.setText("");
    }

El codigo para los botones es:


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        b.capturarImagen();
        jcSlide1.setImagen(new ImageIcon(b.getImagen()));        
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if( jcSlide1.getImagen() != null ){
            imagen.setIcon( jcSlide1.getImagen() );
        }else{
        JOptionPane.showMessageDialog(this,"Por favor. Debe seleccionar una imagen...");
        }
    }                                        

Si todo salio bien, solo es cuestion ejecutar el proyecto

Algunas imagenes tomadas con la webcam
un par de chicas que pasaban por ahi
Unas gradas :) si, como dije ese dia hizo frio y no habia mucha gente
Sin comentarios ;)

Un video de como funciona la aplicación, lastimosamente ese dia amanecio nublado  asi que no hubo mucho que filmar :)

Lo que todos esperaban, el código fuente

Click para descargar 
Enlace actualizado abril-2012


Felices capturas  - FIN

44 comentarios:

Unknown dijo...

Gran sitio, estoy tratando de hacer este tutorial pero no funciona, el error:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at jmfvideoimage.jmfVideo.Componente(jmfVideo.java:28)
at jmfvideoimage.video.(video.java:21)
at jmfvideoimage.video$3.run(video.java:160)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

lo que podría ser?

jc mouse dijo...

el error dice que no encuentra tu dispositivo de captura (osea tu camara), utiliza el JMStudio para ver si el JMF detecta tu dispositivo.

date una vuelta por aqui para aclarar dudas:
http://jc-mouse.blogspot.com/2011/03/jmf-buscar-dispositivos.html

Unknown dijo...

El dispositivo es el siguiente:

vfw:Microsoft WDM Image Capture (Win32):0

pero el error continúa.

Anónimo dijo...

oye yp ya tengo este proyecto pero como mejora nos pidieron que implementemos botones para manejar lo que es guardar las imagenes, borrar, cargar una imagen que son las opciones que tienen dentro del jc-slider pero como es una libreria no tengo acceso a los eventos que manejas, me podrias decir como o mandarme el proyecto del slider para netbeans gracias y saludos

Anónimo dijo...

jc pon el codigo de la libreria jc-Slide para vere como funciona pues hermano pilas gracias

Mouse dijo...

Adriana:
No comprendo, no puede ser que sí te funcione el primer código y no el segundo, si ambos son practicamente los mismos

Anonimo:
La libreria jcSlide es el resultado de todo lo que puedes ver en este blog, todas las funciones a las que haces mencion, estan aqui, no me invente nada

Anónimo dijo...

pero seria mucho mas facil si la publicaras jc para no estar buscando por favor publica la libreria jcslide plis

Unknown dijo...

Hola, estoy desarrollando una app usando jmf.No es standalone, sino que arranca desde javaWebStart descargando desde un servidor jboss centralizado. Mi problema es que, aunque la maquina tiene instalado el JMF y tiene detectado el dispositivo, aparentemente JMF necesita encontrar un archivo jmf.properties y no encuentro la manera de hacer que lo encuentre una vez arrancado. Te ha sucedido? Muchas gracias desde ya por cualquier pista que me puedas dar.

PC dijo...

Me gustaría guardar la imagen capturada en los valores bytea postgresql, pero no saben cómo
convertir al tipo y luego de recuperar como imagen jcSlide.

Anónimo dijo...

oye tengo problemas con la resolucion ya que es muy grande
que se podria hacer para redicir el tamaño de las imagenes

PC dijo...

Me gustaría guardar la imagen capturada en los valores bytea postgresql, pero no saben cómo
convertir al tipo y luego de recuperar como imagen jcSlide.

ivan dijo...

primera vez que acceso a este blog y se ven muchos temas interesantes gracias por que la informacion que esta aki es muy buena felicidades....

att ivan.....

Anónimo dijo...

Hey amigo tu blog esta exelente! estoy creando un Sistema de Asistencia en Netbeans... y en el momento de ingresar un nuevo trabajador, necesito que le saque una fotografia con la webcam.

Me he descargado tu aplicacion para guiarme, pero tengo el mismo problema que adriana :S

cabe destacar que en le he puesto las librerias jmf y jcSlide

Ojalas me puedas ayudar un saludo grande !

.------------

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at jmfvideoimage.jmfVideo.Componente(jmfVideo.java:28)
at jmfvideoimage.video.(video.java:21)
at jmfvideoimage.video$3.run(video.java:160)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Mouse dijo...

PC: para conversion a bytes y su guardado en la base de datos, ya existe un post dedicado a eso junto a su ejemplo, utiliza el buscador por favor

Ivan: gracias

Anonimo: ese es error de dispositivo, prueba con otra camara haber que sucede

Vioscar dijo...

Saludos Mouse, gracias por tu tutorial... En mi caso, quisiera saber como hacer una aplicacion sin interfaz, que se ejecute solamente via linea de comandos, y que su comportamiento sea el siguiente: se llama via codigo, ejm: java -jar webcam.jar, y lo que produce es una captura de la webcam, resultando en una imagen jpg, almacenada en la misma ubicacion del ejecutable en este caso el archivo webcam.jar. todo esto sin que la accion se note, que se ejecute como si fuera en segundo plano. Ejm. Se llama a la aplicacion, hace su trabajo y se cierra la aplicacion hasta que vuelva a ser llamada. Es para el proyecto Prey, habemos muchos usuarios con problemas de la webcam, y creo que una pequeña aplicacion que reemplace a la actual(snapshot), seria una maravilla. Ese modulo hace exactamente lo que te comente anteriormente, te lo comento a ti porque veo que tienes conocimiento de JMF, y me parece una opcion viable contribuir con este proyecto. Gracias!!

mouse dijo...

Vioscar lo que tienes que hacer es simplemente programar la aplicacion para que inicie -> tome la foto de la webcam -> y se cierre, para eso solo debes hacer uso de un ciclo y de sleep para calcular el tiempo sin interfaz, la interfaz es solo un adorno

saludos

Vioscar dijo...

Te voy a ser sincero... no se programar Java... pero si esta en tus posibilidades que me expliques como hacer para que inicie -> tome la foto de la webcam -> y se cierre, te lo agradeceria... si te es posible un poco mas de ayuda (o de los lectores porque no? :P). Si tienes un tutorial mas o menos que explique como crear la conexion con la camara, mandar la orden de captura, especificar el sitio de guardado, seria mejor. No te pido que me lo hagas, pero veo que conoces mas del tema y pudieras orientarme como hacerlo. gracias!!

Anónimo dijo...

hola me sale este error cuando le doy capturar imagen, quisiera saber que me hace falta. muy buen programa gracias por tu ayuda.

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - incompatible types
required: java.nio.Buffer
found: javax.media.Buffer
at jmfvideoimage.jmfVideo.capturarImagen(jmfVideo.java:57)
at jmfvideoimage.video.jButton1ActionPerformed(video.java:142)
at jmfvideoimage.video.access$000(video.java:9)
at jmfvideoimage.video$1.actionPerformed(video.java:73)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

jarc dijo...

HOLA MOUSE, ME SIRVIO DE MUCHO ESTE TUTORIAL, Y LO ENTENDI A LA PERFECCION Y LO PUDE ADAPTAR A MI NECESIDAD...

PERO TENGO UNA INQUIETUD Y ES QUE CADA VEZ QUE EJECUTO LA APLICACION, ME SALE UNA VENTANA DONDE TENGO QUE ESCOGER EL ORIGEN DE LA CAPTURA, EN ESTE CASO LA WEBCAM INTALADA EN MI ORDENADOR, Y LO QUE ME GUSTARIA ES SABER COMO HACER PARA QUE ESCOJA POR DEFECTO LA QUE TENGO INSTALADA SIN NECESIDAD DE ACEPTAR SIEMPRE EL DISPOSITIVO DE VIDEO QUE QUIERO...

SALUDOS Y GRACIAS DE ANTEMANO POR TU COLABORACION....

Krïst007 dijo...

La idea de programar en Java es que compiles y pueda correr en cualkier SO, la pregunta es:
¿tu sistema es multiplataforma?
parece que no, pues veo que usas un driver universal de windows para acceder a la webcam, si me ekivoco, podrías decirme como hago para correr la aplicacion en GNU/Linux?

Krïst007 dijo...

o almenos que parte del código tendría que modificar?

Krïst007 dijo...

Hola está full chevere tu blog, ya encontré la manera de que mi programa hiciera lo que quiero, gracias por el tutorial, aunke está algo obsoleto pues la clase jcSlide de swing ya no viene en los paquetes, creo ke fué removida u obsoletizada. No obstante estudiando tu codigo y googleando tutoriales aprendí bastante sobre JMF.
gracias brother, saludos.

Mouse dijo...

JARC: que raro, mas que error de codigo creo que debe ser error del driver de tu webcam, porque no tratas con otra camara o si puedes en otra PC para ver los resultados

KrisOO7: me alegro que te sirviera, y si, utilizó el driver de windows, pero supongo que para linux, no debe ser mucha la diferencia, a por cierto, la libreria JCSLIDE no es que este obsoleta, esa libreria es mia :) la puedes encontrar en el blog

Luis Antonio Martínez dijo...

Antes que nada una felicitacion por tu blog, la verdad no soy muy diestro programando en java, con decirte que ni he podido guardar video usando JMF simplemente no encuentro muchos tutoriales explicitos, así que decídi emular video guardando imagenes de la webcam, ya he logrado tomar snapshots, pero me gustaría saber como puedo hacer para que esté tomando varios cada intervalo de tiempo, muchas gracias.

CROW dijo...

HOLA MOUSE, YO HE TRATADO DE HACERLO EN UBUNTU, PERO AL PARECER TENGO PROBLEMAS EN VFW://0, PODRIAS AYUDARME PARA PODER REALIZARLO EN UBUNTU.

GRACIAS.

Anónimo dijo...

hola MOUSE tengo una duda... como saber el nombre de dispositivo de mi webcam porq parece q mi error esta en ahi....gracias

Anónimo dijo...

hola muy bueno pero, como puedo hacer que esta imagen se guarde en una base de datos y a su vez poder imprimirla como reporte

oni no tensa dijo...

a mi el jar que das (que descargue la rar llamada Aplicacion, me funciona, un poco lentillo debido a que me consume unos pocos recursos) pero el proyecto completo no me enlista las camaras web (aunque sea solo una no me la enlista y de ahi no paso) caso contrario que con el jar, aunque tarda poquillo; con lo de enlistar los dispositivos pues no tarda nada, solo cuando redimensiona y toma la foto, pero la aplicacion se queda sin hacer nada, alquna idea!!!?

Anónimo dijo...

Muito Bom seu Blog.

Estou criando um cadastro de Cliente. Vou usar esse exemplo que você fez. Gostaria de saber como guardar a imagem em disco. Como faço?

Obrigado.

Anónimo dijo...

q tal mouse, comentarte q esto funciona al pelo, pero en winXP, lo he probado en win7 de 32 bits, y no da, desde el jmf registry, detecta el vfw:micro......, con una camara usb, pero con la por defecto de la portatil, no la detecta, y el codigo para poder detectar los dispositivos tampoco lo detecta, el error es:
java.lang.NullPointerException
at jmfvideoimage.jmfVideo.Componente
.....
y asi, me va dando las posiciones donde se va generando el error, y pues es por q no detecta la camara, alguna idea...
agradecido de antemano por su tiempo

Mouse dijo...

Para el penultimo:


al capturar la imagen con JMF guarda esta en memoria BufferedImage y despues la guardas en disco

Anonimo:

La libreria JMF tiene errores en windows seven, creo que ya no actualizaron JMF, deberias tratar en otro windows su puedes o utilizar linux

Unknown dijo...

mouse tengo un problema y es que no se como hacer que me funcione el jcslide. Lo pongo en el paquete donde tengo el proyecto pero la clase video me bota errores con todo lo q tenga q ver con el jcslide.
que puedo hacer????

Anónimo dijo...

lucc:
ola mouse , sigo tu blog desde un tiempo gracias por los tutoriales
tengo un error a ver si me das una mano.
java.io.IOException: Could not connect to capture device
java.io.IOException: Could not connect to capture device
javax.media.NoPlayerException: Error instantiating class: com.sun.media.protocol.vfw.DataSource : java.io.IOException: Could not connect to capture device
at javax.media.Manager.createPlayerForContent(Manager.java:1362)
at javax.media.Manager.createPlayer(Manager.java:417)
at javax.media.Manager.createRealizedPlayer(Manager.java:553)
at aplicacion.captua.de.imagen.Imagencam.Componente(Imagencam.java:51)
at aplicacion.captua.de.imagen.Camara.(Camara.java:26)
at aplicacion.captua.de.imagen.Camara$2.run(Camara.java:133)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at aplicacion.captua.de.imagen.Imagencam.Componente(Imagencam.java:64)
at aplicacion.captua.de.imagen.Camara.(Camara.java:26)
at aplicacion.captua.de.imagen.Camara$2.run(Camara.java:133)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

mouse dijo...

David Garcia dijo: ¿que error?

Anonimo: el error te dice java.io.IOException: Could not connect to capture device

no reconce tu dispositivo de captura, revisa que JMF lo reconosca

Ruben lara dijo...

yaaa encontre la solucion de que no reconoce la webcam ,despues de romperme la cabeza durante horas.. para que se ahorren ese sufrimiento importen el archivo jmf.jar en la biblioteca del proyecto y listo problema solucionado espero les ayude en algo

Christian Lesmo dijo...

me ayudas quiero usar el JMF para conectar mi programa a un scanner puedes hacer un tuto?

Anónimo dijo...

Hola Jc-mouse primero que nada muchas gracias por el tutorial me a sido de mucha ayuda, pero tengo una duda:
como puedo darle un formato yuv de 176 x 174 a la imagen para que se guarde con el mismo tamaño, en lugar de los 640 x 480 que me sale por defecto? para adaptarlo bien a mi proyecto

Saludos

Anónimo dijo...

EL METODO DE EMININAR IMAGEN NO SIRVE!!!!!!! apesta apesta apesta!

Roberto dijo...

Amigo como puedo modificar el menu emergente del complemento para añadirle dos funciones mas. gracias

mouse dijo...

Lo siento el codigo fuente del componente no esta disponible

Anónimo dijo...

OE MUY BUENO TU TUTORIAL,,SE ME IZO DIFICIL AL PRINCIPIO,PERO AL FINAL LO LOGRE..GRACIAS Y SALUDOS DESDE PERU

Anónimo dijo...

Amigo como haria para enviar la imagen tomada a un Label que esta en otro formulario....GRACIAS

Unknown dijo...

Hola!!! estoy desarrollando la app, pero al ejecutarse me aparece lo siguiente:

Exception in thread "main" java.lang.NullPointerException
at jmfvideoimage.jmfVideo.Componente(jmfVideo.java:37)
at jmfvideoimage.video.(video.java:21)
at jmfvideoimage.Main.main(Main.java:7)


de antemano agradezco tu atencion

Nestor Medina dijo...

Buenos dias amigo, tengo problema con la cámara web en ubuntu, que necesito para ponerla a funcionar? creo que esos controladores no son compatibles para software libre. espero su pronta respuesta

Post recomendado