Problème avec JMF

Fermé
CapnMuff - 12 avril 2010 à 15:41
 jabour - 13 avril 2010 à 14:33
Bonjour, je dois concevoir un serveur qui gère des sources d'images, caméra, webcam, simulation d'images, etc... et pour ce faire j'utilise le "Java Media Framework"

le problème est le suivant, j'arrive a utiliser la première webcam

code :

MediaLocator ml = new MediaLocator("vfw:Microsoft WDM Image Capture (Win32):0");
player = Manager.createRealizedPlayer(ml);
player.start();

mais lorsqu'une deuxième webcam doit être connecté

code :

MediaLocator ml = new MediaLocator("vfw:Video Blaster WebCam 3/WebCam Plus (VFW):1");
player = Manager.createRealizedPlayer(ml);
player.start();

le programme plante car il ne peut se connecter à la deuxième webcam,
la fonction Manager.createRealizedPlayer(...) semble être une fonction
qui ne peut être appelée plus d'une fois.

Quelqu'un à une idée comment contourner le problème ?

Merci beaucoup

2 réponses

J'"up" ce post, si vous avez une idée, n'importe quoi, ne soyez pas géné ! C'est assez urgent !

Merci
1
bonjour ,ce problème m'a arrivé car lors que le JMF détecte la caméra et donne les mèmes noms (caractéristiques) ,j'ai pas trouver une solution avec JMF mais j'ai trouver une avec DSJ (DirectShow Java wrapper).
http://www.humatic.de/htools/dsj/download.htm</code>

si vous avez des documentations sur le directshow ,vous ferez plaisir de me les envoyer a votre Mail:Ba_zoubir@hotmail.com , et merci beaucoups.
////////////
A. JMF (Java Media Framework) :
JMF est une API Java permettant de manipuler aisément toutes sortes de contenus
multimédia avec Java tels que du son ou de la vidéo. Elle offre les outils nécessaires pour faire de
l?acquisition, du traitement et du transport de médias basés sur le temps. L?avantage est de
pouvoir concevoir des applications utilisant des éléments multimédias (Webcam, micro,
vidéos...) et pouvant s?exécuter sur différentes plates-formes logicielles (principalement
Windows et Linux). La version actuelle de JMF est la 2.1.

Cette API est une initiative de SUN qui souhaite apporter une solution « time-based media
processing » (traitement de media basé sur un timeline) à Java. Les média basé sur le temps sont
des données qui changent par rapport au temps. Nous les retrouvons bien entendu dans les vidéos,
l?audio, les séquences MIDI et autres animations.
Pour plus de détails.

Cependant, JMF ne fait pas de distinction entre les différentes webcams installées sur la
machine, Il les prend toutes pour : « vfw:Microsoft WDM Image Capture (Win32):0 ». Du coup,
on ne peut en utiliser qu?une seule à la fois, sans même pouvoir la spécifier.
Nous nous sommes alors orientés vers une deuxième solution, l?API FMJ Project.
///////
B. FMJ Project (Freedom for Media in Java):
Projet Open-source dans le but de fournir une alternative à JMF. Comme il est compatible
avec JMF, on peut l?utiliser avec du code JMF existant. Cependant, certaines parties du projet
sont encore au cours de développement, donc il peut y arriver qu?on se trouve devant plus de travail à faire.
Pour plus de détails, voir http://fmj-sf.net/
Cette solution produisait des résultats partiellement satisfaisants dont on a pu détecter et
distinguer les différentes webcams installées sur la machine, mais le problème qu?on a rencontré
est que même si la webcam n?est pas branchée, on reçoive les informations la concernant (Pilotes,
formats supportés, ...). Nous avons donc laissé tomber cette API, et nous avons découvert l?API
DirectShow.
////////
C. DirectShow :

DirectShow (parfois abrégé en DS ou dshow), est une API multimédia développée par
Microsoft afin de permettre d?effectuer différentes opérations avec des données médias. Il
remplace l?antérieure technologie Vidéo For Windows de Microsoft.

Basé sur le framework Microsoft Windows Component Object Model (COM), DirectShow
fournit une interface commune pour les médias dans de nombreux langages de programmation.
1