2010-09-20 11 views
6

Je voudrais obtenir le flux webcam de mon Macbook (la webcam intégrée iSight). J'utilise Java, et je ne connais rien à Objective-C, donc je suis à la recherche d'une solution "full-java". J'ai trouvé un exemple de classe, mais ils ont été créés en 2005 et ils ne fonctionnent pas sur mon système.Obtenez le flux de webcam sur Mac Os X en Java

Répondre

5

Je rencontre la même chose moi-même maintenant. J'utilise VLCJ pour mon projet et cela fonctionne parfaitement sur Windows, Linux Mint, Linux Ubuntu et Mac OSX Lion. Comme vous avez probablement lu, VLCJ est un wrapper java autour de libvlc que le lecteur VLC utilise également. Le fait est que lorsque vous ouvrez l'option de capture du lecteur VLC, il remplit la combo-box avec les caméras disponibles (connectées par USB). Mais c'est quelque chose que le lecteur VLC ne fait que pour lui-même, il ne vous donne pas d'API pour cela. Et si vous ne transmettez pas l'ID de la caméra avec VLCJ, VLC utilisera la caméra par défaut du système. J'utilise VLCJ pour diffuser à partir de caméras USB connectées ou de bureau à fichier.

Je devais trouver un moyen de "scanner" les caméras USB sur mon système et c'est quelque chose qui est spécifique au système d'exploitation. Dans les fenêtres, j'utilise DirectShowJava.

Sur Linux il vous suffit de lire/dev/vidéo * pour les caméras disponibles et si vous souhaitez afficher à l'utilisateur un peu « nom convivial » vous pouvez utiliser video4linux4java

et 3e et celui que vous êtes plus intéressé, je n'ai pas encore essayé mais je vais essayer avec celui-ci: stack, example.

Il serait préférable que libvlc donne cela, car il ne faut pas utiliser 3 API de plus (pour 3 systèmes d'exploitation) et chacun d'eux peut faire ce que VLCJ peut (seulement sur cette plate-forme) et je suis en les utilisant juste pour lire des appareils.

EDIT: La version officielle actuelle de VLC est 1.1.x et sa prise en charge est limitée pour Mac. Vous pouvez uniquement diffuser à partir de la caméra par défaut de Mac (iSight, FaceTime Built In) sans audio. VLC 1.2.0 sortira très bientôt et il aura un meilleur support Mac (conscient des autres caméras connectées, flux de bureau, audio). Vous pouvez voir mon thread sur le forum VideoLAN. J'ai téléchargé la version 1.2.0-git de VLC pour Mac et elle a l'air tellement cool et a vraiment la "sensation Mac". Vous pouvez le télécharger à partir du here. Mais notez que c'est la version de développement et il se bloque beaucoup.

+0

Merci, c'est génial! –

+0

@Matthieu Je viens d'éditer ma réponse avec quelques spécificités de Mac OS X, j'espère que ça vous épargnera du temps :) – vale4674

0

Essayé JMF? Vous pouvez commencer here

+1

Il semble que ce soit pour Windows ou Solaris pour la webcam.Je ne mentionne pas OS X ou Mac –

+2

JMF est obsolète –

1
+0

Je lis "La nouvelle version a également négligé de fournir un composant pour afficher un aperçu visuel de l'entrée d'un périphérique de capture, comme une webcam ou un caméscope" pour Quicktime. Il semble que Java ne soit pas vraiment une préoccupation pour Apple ... Voir aussi ici: http://onjava.com/pub/a/onjava/2003/10/29/qtj-returns.html?page=last (en " Autres changements "). Quant à VideoLAN, il semble qu'il ne soit pas capable de capturer à partir d'une webcam. –

+0

Oui, je ne savais pas QTJava avait été obsolète, désolé: http://lists.apple.com/archives/quicktime-java/2008/Jun/msg00018.html – trashgod

+0

VLC devrait être capable de capturer à partir d'une webcam .. .file -> ouvrir le périphérique de capture – rogerdpack

0

J'ai trouvé OpenIMAJ Core Video Capture Library qui fonctionne bien sur mon MacBook, Windows PC et Linux. L'inconvénient est qu'il a beaucoup de dépendances.

J'ai donc modifié le code OpenIMAJ et fait un autre paquet qui n'a pas besoin de ces fonctionnalités folles. Vous pouvez obtenir mon application de code et demo (licence bsd open source) sur mon site: http://www.sleepingdumpling.com/blog/download/jvideoinput/

le mérite revient à OpenIMAJ et aux contributeurs.

Donc ce n'est pas impossible.