2010-09-20 12 views

Respuesta

5

Me encuentro con lo mismo ahora mismo. Estoy usando VLCJ para mi proyecto y funciona perfectamente en Windows, Linux Mint, Linux Ubuntu y Mac OSX Lion. Como probablemente hayas leído, VLCJ es un contenedor java de libvlc que el jugador VLC también usa.

Lo que pasa es que cuando abres la opción de captura del reproductor VLC, llena el cuadro combinado con las cámaras disponibles (USB conectado). Pero eso es algo que el jugador de VLC solo hace por sí mismo, no le da API para eso. Y si no le pasa la identificación de la cámara con VLCJ, VLC usará la cámara predeterminada del sistema. Uso VLCJ para transmitir desde cámaras conectadas por USB o desde el escritorio al archivo.

Tuve que encontrar una manera de "escanear" cámaras USB en mi sistema y eso es algo que es específico del sistema operativo.

En windows utilizo DirectShowJava.

En Linux sólo tiene que leer/dev/video * para las cámaras disponibles y si desea mostrar al usuario alguna "nombre de usuario" que pueden utilizarse video4linux4java

Y tercero y el que está más interesado No lo he intentado todavía pero lo intentaré con este: stack, example.

Sería mejor si libvlc daría eso, ya que no tengo que usar 3 API más (para 3 OS) y cada uno de ellos puede hacer lo que VLCJ puede (solo en esa plataforma) y yo soy usándolos solo para leer dispositivos.

EDIT: La versión VLC oficial actual es 1.1.x y tiene soporte limitado para la cámara en Mac. Solo puede transmitir desde la cámara predeterminada de Mac (iSight, FaceTime Built In) sin audio. VLC 1.2.0 saldrá muy pronto y tendrá una mejor compatibilidad con Mac (tenga en cuenta otras cámaras conectadas, transmisión de escritorio, audio). Puedes ver mi thread en el foro VideoLAN. Descargué la versión 1.2.0-git de VLC para Mac y se ve muy bien y tiene una "sensación de Mac" real. Puede descargarlo desde here. Pero tenga en cuenta que esta es la versión de desarrollo y se cuelga mucho.

+0

¡Gracias, eso es genial! –

+0

@Matthieu Acabo de editar mi respuesta con algunos detalles de Mac OS X, con suerte le ahorraré algo de tiempo :) – vale4674

0

¿Has probado JMF? Puede hacer un inicio here

+1

Parece ser para Windows o Solaris para la cámara web.Ninguna mención de OS X o Mac –

+2

JMF está obsoleta –

1
+0

He leído "La nueva versión también omite proporcionar un componente para mostrar una vista previa visual de la entrada de un dispositivo de captura, como una cámara web o una videocámara" para Quicktime. Parece que Java no es realmente una preocupación para Apple ... Ver también aquí: http://onjava.com/pub/a/onjava/2003/10/29/qtj-returns.html?page=last (en " Otros cambios"). En cuanto a VideoLAN, parece que no puede capturar desde una cámara web. –

+0

Sí, no sabía que QTJava había quedado en desuso, lo siento: http://lists.apple.com/archives/quicktime-java/2008/Jun/msg00018.html – trashgod

+0

VLC debería ser capaz de capturar desde una cámara web .. .file -> abrir el dispositivo de captura – rogerdpack

0

Encontré OpenIMAJ Core Video Capture Library que funciona bien en mi MacBook, PC con Windows y servidor Linux. La desventaja es que tiene muchas dependencias.

Modifiqué el código OpenIMAJ e hice otro paquete que no necesita esas características locas. Puede obtener mi código y la aplicación de demostración (licencia bsd de código abierto) de mi sitio: http://www.sleepingdumpling.com/blog/download/jvideoinput/

crédito para OpenIMAJ y colaboradores.

Así que no es imposible.