web-dev-qa-db-fra.com

Meilleur moyen d’accéder à la caméra Web dans Java

J'ai besoin d'accéder à la caméra Web en utilisant Java. C'est ce que je veux faire

  1. Accéder à la webcam

  2. Maintenant, l'utilisateur peut voir la web cam fonctionner parce que son visage est visible à l'écran (j'ai entendu des libs qui ne montrent pas la sortie vidéo de la webcam)

  3. lorsque l'utilisateur clique sur le bouton d'enregistrement, prend un instantané et l'enregistre

J'ai essayé plusieurs façons de le faire depuis longtemps.

  1. JMF - Maintenant c'est mort
  2. FMJ - Maintenant c'est mort aussi
  3. VLCJ - trop car je ne crée pas de lecteur de musique/vidéo et attend VLC à être installé
  4. Xuggler - trop et dur travail
  5. JMyron - n'a pas fonctionné
  6. JavaFX - Je pensais que ça pourrait le faire, mais il me semble que ça ne peut pas

Je suis même satisfait si la bibliothèque ne fait que UNIQUEMENT ce qui est mentionné ci-dessus, car cela me suffit. Mais je m'attends à ce que ce soit simple aussi. Vraiment génial s’il n’utilise pas de DLL, car il n’est pas indépendant de la plate-forme. Appréciez vraiment si vous pouvez DÉTECTER la caméra, sans transmettre manuellement le nom de la caméra et d’autres informations comme dans VLCJ (car il peut y avoir des milliers de marques de caméras, je ne peux donc pas créer de liste de milliers d’éléments). Et je crée une application de bureau, pas une application Web.

Si vous connaissez une telle bibliothèque, merci de bien vouloir me le faire savoir. Les autres bibliothèques (qui peuvent ne pas convenir à toutes mes exigences, mais qui répondent aux exigences de base) sont également les bienvenues. S'il vous plaît aider

48
PeakGen
9
user504674

Je pense que le projet que vous recherchez est le suivant: https://github.com/sarxos/webcam-capture (je suis l'auteur)

Il y a un exemple qui fonctionne exactement comme vous l'avez décrit - après son exécution, la fenêtre apparaît. Une fois que vous avez appuyé sur le bouton "Démarrer", vous pouvez voir l'image en direct de la webcam et l'enregistrer dans un fichier après avoir cliqué sur "Instantané" ( code source disponible , veuillez noter que le compteur FPS dans le coin peut être désactivé):

snapshot

Le projet est portable (WinXP, Win7, Win8, Linux, Mac, Raspberry Pi) et ne nécessite aucun logiciel supplémentaire pour être installé sur le PC.

L'API est vraiment agréable et facile à apprendre. Exemple pour capturer une image et la sauvegarder dans un fichier PNG:

Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("test.png"));
76
Bartosz Firyn