Exibir webcam em Java

Eu comecei Java na semana passada, então eu estou apenas começando os fundamentos no momento, já que tenho muito a aprender (btw estou usando o Eclipse no Ubuntu 11.04 se isso ajuda). No entanto, eu faço muito screencasting e exibo minha webcam em vários vídeos que faço. Então, mais tarde, gostaria de criar um aplicativo simples que mostre a webcam. Nada mais.

Então, estou fazendo essa pergunta agora, portanto, não apenas me lembrarei de qual é o meu objective, mas também quando sentir que estou pronta e confiante para trabalhar nisso, saberei para onde ir.

Eu não quero nenhum código, mas uma referência para onde ir. Eu gostaria apenas de usar o Java. Embora um dos meus colegas de trabalho tenha me dito para investigar a FMJ e a JMF. No entanto, sem saber o que são, eu assumo seus add-ons para Java, mas gostaria apenas de ficar com Java sozinho, se for possível.

Além disso, como eu disse, ainda sou novo em Java e estou aprendendo com os tutoriais da thenewboston no YouTube (atualmente em http://www.youtube.com/watch?v=XqTg2buXS5o ), portanto, se você conhece outros resources para ajudar novos usuários Programadores Java como eu e outros, seria muito apreciado.

Eu usei o lti-civil , que parece funcionar muito bem para captura de vídeo.

Eu usei no Windows e no Linux, eu não testei no Mac, mas diz que também funciona lá.

Ele não precisa ser pré-instalado, pois é um jar e um dll / so que pode ser baixado com o aplicativo Java ou executado por meio de um webstart do JNLP que suporta bibliotecas nativas.

Não há bibliotecas Java 100% puras que possam capturar vídeo, portanto, todas as opções (incluindo JMF) requerem um componente nativo (.dll ou .so).

JMF é uma biblioteca para Java usando o Medias.

Java é muito maior do que apenas uma linguagem de programação, não tenha medo de usar suas bibliotecas para adicionar funcionalidades.

Veja alguns exemplos: http://www.mutong.com/fischer/java/usbcam/ e http://www.java-forums.org/new-java/40115-capturing-video-webcam-jmf. html

Abaixo uma implementação usando o Marvin Framework . Essa estrutura fornece um conjunto de plug-ins para processamento de vídeo em tempo real.

package video.simpleVideoTest; import javax.swing.JFrame; import marvin.gui.MarvinImagePanel; import marvin.image.MarvinImage; import marvin.video.MarvinJavaCVAdapter; import marvin.video.MarvinVideoInterface; public class SimpleVideoTest extends JFrame implements Runnable{ private MarvinVideoInterface videoAdapter; private MarvinImage image; private MarvinImagePanel videoPanel; public SimpleVideoTest(){ super("Simple Video Test"); // Create the VideoAdapter and connect to the camera videoAdapter = new MarvinJavaCVAdapter(); videoAdapter.connect(1); // Create VideoPanel videoPanel = new MarvinImagePanel(); add(videoPanel); // Start the thread for requesting the video frames new Thread(this).start(); setSize(800,600); setVisible(true); } public static void main(String[] args) { SimpleVideoTest t = new SimpleVideoTest(); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @Override public void run() { while(true){ // Request a video frame and set into the VideoPanel image = videoAdapter.getFrame(); videoPanel.setImage(image); } } } 

Você pode usar os componentes WebcamPanel prontos para uso do projeto API Capture da Webcam (eu sou o autor). O projeto é portátil e funciona bem em arquiteturas de 32 e 64 bits do Windows, Linux, Mac OS, bem como dispositivos ARM como, por exemplo, Raspberry Pi (tanto armel quanto armhf).

O código de exemplo abaixo exibirá a imagem da webcam dentro da janela do JFrame (a taxa de FPS é configurável):

 JPanel panel = new WebcamPanel(Webcam.getDefault()); JFrame window = new JFrame("Test webcam capture"); window.add(panel); window.pack(); window.setVisible(true); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

Teste a captura da webcam

Os JARs estão disponíveis no Maven Central, mas se você não estiver usando o Maven, também poderá fazer o download do ZIP separado, que consiste em todas as dependencies necessárias (todos os JARs de terceiros necessários).

Baixe o JMF daqui

E você pode começar a aprender o framework JMF daqui

Você pode usar isso usando balanços de java.

Você pode encontrar um artigo sobre isso neste blog, geekscab.com Desculpe eu não sei o URL exato, então você tem que procurar o blog