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.
¡Gracias, eso es genial! –
@Matthieu Acabo de editar mi respuesta con algunos detalles de Mac OS X, con suerte le ahorraré algo de tiempo :) – vale4674