Accueil > Forum > > > > Capture webcam avec JMF, les formats de capture
Capture webcam avec JMF, les formats de capture
mercredi 13 avril 2005 à 18:54:25 |
Capture webcam avec JMF, les formats de capture

elawem
|
Bonjour à tous, je dois afficher les flux vidéos de plusieurs webcams pour un jeu de belote en réseau.
Grâce aux différents tutoriaux et exemples du site j'ai réussi à
acquérir le flux et l'afficher dans un JPanel, cependant comme cela est
destiné à un jeu de belote, je dois obtenir ce flux dans un format bien
précis: du 160*120 en RGB.
Voici le code que j'ai mis en oeuvre pour récupérer les périphériques video de la machine:
[code]
videoFormat = new VideoFormat(VideoFormat.RGB, new Dimension(160, 120), 230400, Format.byteArray, 20f);
deviceList = CaptureDeviceManager.getDeviceList(new VideoFormat(VideoFormat.RGB));
webcam = (CaptureDeviceInfo)deviceList.get(i);
[/code]
Je pensais que l'object VideoFormat ainsi crée allait me donner un flux
en 160*120. En fait il ne permet que de selectionner les peripheriques
supportant ce mode.
Je ne trouve pas comment modifier la taille de ce flux apres acquisition du CaptureDeviceInfo.
J'ai bien trouvé qu'apres avoir crée un Player on pouvait accéder à une
interface de tyep Control pour modifier le flux mais je voudrai que ca
soit automatique.
Pour résumer, je cherche un moyen de spécifier la taille du rendu vidéo avant de faire un:
player.start();
sans solliciter une action de l'utilisateur.
|
|
mercredi 13 avril 2005 à 18:57:33 |
Re : Capture webcam avec JMF, les formats de capture

elawem
|
Petit rectificatif, j'ai mal copié mon code source, le voila:
[code]
videoFormat = new VideoFormat(VideoFormat.RGB, new Dimension(160, 120), 230400, Format.byteArray, 20f);
deviceList = CaptureDeviceManager.getDeviceList(new VideoFormat(videoFormat));
webcam = (CaptureDeviceInfo)deviceList.get(0);
[/code]
|
|
jeudi 14 avril 2005 à 22:12:24 |
Re : Capture webcam avec JMF, les formats de capture

frank_sauvage
|
bonjour,
effectivement, le fait de specifier un format lors de la recuperation du CDI, ne permet pas d'obtenir un flux dans ce meme format.
pour cela, il vous faudra utiliser un Processor. et specifier ce format en tant que format de sortie grace à, si mes souvenirs sont bons, la methode setOutputFormat.
si je puis me permettre, vous semblez vous attaquer à la JMF depuis peu, et ce que vous cherchez à faire n'est pas des plus simples. quel est votre delai de livraison ?
sinon pour vous aiguiller un peu dans vos recherches, vous devrez utiliser quelque chose du type :
CDI -> DataSource -> processor -> CloneableDataSource-> RTPManager |_______| RTPManager -> Player. (la cloneable datasource vous servant a utiliser une seconde fois le flux pour l'affichage local) pour votre transmission reseau il vous sera neccessaire d'utiliser le protocole RTP grace à : -soit l'implémentation par defaut. - soit definir votre propre support à RTP grace à l'interface RTPConnector.
si effectivement, il vous sera probablement apparent qu'il est plus rapide d'utiliser l'implementation par defaut, sachez que cette derniere suit à la lettre le RFC 1889/1890 ( mis à jour vers le 3550 ?? pas sur, mais non essentiel), et que donc vous serez pas à meme de passer les NAT et les firewalls dans la diffusion de vos flux. c'est donc la que vous devrez trouver un autre moyen de passer, soit en implementant vous meme STUN (toujours pas porté sur JAVA), soit en bidouillant votre propre protocole.
donc pour résumer : - la premiére etape est de vous familiariser avec les objets de la JMF sus-cités. - la seconde étant un travail sur la partie reseau pour la transmission des flux.
il s'agit ici de visio-conférence temps réelle, c'est une partie interressante mais ardue de la JMF. cependant, si votre but n'est que la possibilité pour les differents participants de pouvoir se voir, il existe neanmoins une autre possibilité : l'utilisation de capture d'image et leur publication via HTML. si l'idée peut paraitre saugrenue, elle est malgré tout rapidement realisable. pour cela utilisez le GrabFrameControl..cette interface ne posséde qu'une seule methode grabFrame qui renvoi un buffer. il vous suffit ensuite d'utiliser la classe BufferToImage et de la serializer vers le serveur ou autre.
cette fois ci c'est donc plutot :
CDI -> DataSource -> Player -> GrabFrameControl -> Buffer -> BufferToImage -> Image.
Voila, en esperant que cela vous aidera a diriger vos travaux.
Cdlt; FSA;
|
|
vendredi 15 avril 2005 à 10:44:27 |
Re : Capture webcam avec JMF, les formats de capture

elawem
|
Le jeu constitue mon projet de langage Java en école d'ingénieur, il ne
sera testé que sur le réseau local donc les flux n'ont pas besoin de
passer a travers des firewalls. C'est un peu triste de passer par la
facilité, mais comme il y a 5 autres projets à rendre dans un mois il
va falloir aller vite avec le streaming.
Merci pour votre aide, elle est précieuse et va nous permettre d'avancer après 2 jours de galere :)
|
|
vendredi 15 avril 2005 à 17:09:05 |
Re : Capture webcam avec JMF, les formats de capture

frank_sauvage
|
oh un collégue étudiant :)
je suis moi même en licence d'informatique à paris 5..donc je suis plus où moins dans les mêmes conditions actuellement ;)
sinon pour revenir à votre probléme, si vous n'avez qu'à le faire marcher en reseau local..
sachez que la version 2.1.1 de la JMF implemente desormais le protocole
RTSP (streaming multicast) ce qui sera probablement alors encore plus
simple pour vous.
P.S. la documentation de la JMF en ligne n'est pas à jour si vous y acceder via le site de sun..
le mieux est donc de telecharger les sources et de regenerer les javadocs localement.
il est aussi possbile d'avoir accés à une mise à jour mais cette fois
il vous faudra passer par ce lien :
http://java.sun.com/products/java-media/jmf/2.1.1/apidocs/index.html
voila en esperant que cela vous aidera dans votre projet.
Cdlt;
FSA;
|
|
mardi 10 mai 2005 à 14:56:53 |
Re : Capture webcam avec JMF, les formats de capture

madjonk
|
Salut,
Je travaille aussi dans mon projet avec l'API JMF avec lequel je débute. J'aurais besoin de quelques éclaircissements... voila mon probleme:
Je récupère des datas frame d'une video, grace à l'API JMF, que j'envoie dans le réseau. A l'autre bout du réseau, je les récupère et je voudrais les remettre dans le format de départ.
Mon problème réside dans le fait que l'API JMF ne me permet pas de construire un fichier de sortie .avi me contenant tous les frames de la vidéo. C'est à dire un fichier .avi contenant les bon headers, etc..(Les frames arrivent dans l'ordre à l'autre bout du réseau.) Y t-il moyen avec l'api JMF de générer le fichier .avi (avec les bon headers et le bon format)
Merci de votre aide.
|
|
mercredi 11 mai 2005 à 15:29:14 |
Re : Capture webcam avec JMF, les formats de capture

frank_sauvage
|
Bonjour,
je ne suis pas sur de comprendre ce que vous voulez faire exactement..
Comment faites vous pour recuperer les dataFrame ? a partir de quel
classe et quel type de flux en entrée.. pour l'envoi reseau.comment
faites vous ? utilisez vous le RTPManager ?  
par contre, en ce qui concerne l'enregistrement dans un fichier, et
plus particulierement un AVI, la jmf le permet sans trop de
difficultées normalement..
en fait pour ca, vous devez utiliser un processeur et un datasink..
pour specifier le format des pistes utilisez la methode setFormat()
pour pouvoir specifier le format en sortie du processeur, utilisez la methode : setContentDescriptor()
par exemple : (tres simplifié au niveau de la gestion des tracks)
this.track = processeur.getTrackControls();
this.track[0].setFormat(new Format(VideoFormat.CINEPAK));
processeur.setContentDescriptor(new ContentDescriptor
(FileTypeDescriptor.MSVIDEO)));
par contre..si vous voulez que ca marche bien..n'oubliez pas un detail
: vous devrez toujours stopper le processeur avant le datasink.
bon..n'etant pas sur de ce que vous vouliez..
en cas de PB, je reste sur ce forum..
Cdlt;
FSA;
|
|
lundi 8 août 2005 à 07:47:55 |
Re : Capture webcam avec JMF, les formats de capture

salvucho
|
Bonjour à tous, je suis un pt nouveau en programmation, et je dois afficher les flux vidéos de plusieurs webcams connectées sur des USB d'un seul PC. J'arrive à voir le flux d'une webcam, mais quand je connecte la 2ème il bug ! Quelqu'un pourrait m'aider ? ? Voici un bout de code String str1 = "vfw:Logitech USB Video Camera:0"; String str2 = "vfw:Microsoft WDM Image Capture(Win32):0"; captDeviceInfo = CaptureDeviceManager.getDevice(str2); medialocator = new MediaLocator( "vfw://0" ); try { this.player = Manager.createRealizedPlayer(medialocator); this.player.start(); this.componentWebCam = this.player.getVisualComponent(); } catch (Exception e) { System.out.println( "ERREUR : WebCam..." ); e.printStackTrace(); }
|
|
vendredi 3 mars 2006 à 12:17:01 |
Re : Capture webcam avec JMF, les formats de capture

PhoeniXX52
|
Ce post m'a bien aidé ... Bonne continuation à tous
Simon.
Pourvu que ca dure ...
[url]www.eagendas.be[/url]
|
|
jeudi 19 juillet 2007 à 12:15:40 |
Re : Capture webcam avec JMF, les formats de capture

hakim8086
|
Bonjour a tous:
Je travaille aussi dans mon projet avec l'API JM
, je veus afficher un flux video sur mon ardinateur et en meme je l'envoyer ds le reseau . le probleme est : si j'onvoyer le flux
sur le reseau
je peut pas l'afficher sur mon ordinateur et le contraire et lors de l'execution il affiche un erreur d'exception "java.io.IOException: Capture device in use" c_ad le data source de webcam est utilise par un autre player ou autre processor ?????? alors je veut recupere le flux video et je l'affiche dans sur mon ordinateur dans un panel et en meme temps j'envoyer sur le reseau . Est ce que je peut dupliquer l'affichage d'un seul player dans 2 panel ou + ????? Est ce je peut creer + d'un player pour un seul data source ????? Merci de votre aide .
|
|
Cette discussion est classée dans : flux, capture, rgb, webcam, videoformat
Répondre à ce message
Sujets en rapport avec ce message
JMF redimension du flux video et capture d'image HELP!! [ par vivi_2701 ]
Bonjour,Est-ce que quelqu'un pourrait m'aider ???? Voila je récupère le flux video de ma webcam grace à l'api JMF. La taille de ce flux est de 352*288
Récupération d'un flux vidéo à partir d'une webcam WIFI [ par Karras_Le_Fou ]
Bonjour, Je suis nouveau sur ce site et commence également en JAVA. Je travaille actuellement sur un projet consistant à récupérer un flux vidéo
Java JMF flux ASF [ par pottop ]
Bonjour,je travaille actuellement sur un projet permettant de récupérer le flux vidéo d'une webcam (ou plusieurs) après permettre de transformer cette
API JMF [ par zaka2005 ]
salut a tous. en fait,je veux capture a partir d'une webcam ,mais sans passer par le CaptureDialog pour regler les proprietes de l'audio et video,
Flux video a partir d une webcam [ par fraclot ]
Salut tout le monde, Je souhaite creer un flux video a partir de ma webcam. J y suis plus ou moins arrive avec JMF, mais j ai trouve JMF pas tres soup
Récupération du flux vidéo d'une webcam en java [ par romain_seb ]
Bonjour tout le monde!Nous sommes deux étudiants qui devont faire un projet pour nos études. On cherche notamment a récupérer le flux d'une webcam bra
probleme applet de capture image de webcam [ par paddy04 ]
Bonjour a tous,J'ai un petit probleme. j'ai realisé une applet qui permet de capturer des images a partir d'une webcam en utlisant l'api JMF. Mais j'a
je recherche des exemples de flux xmpp [ par eclipse2007 ]
bonsoir,je recherche des exemples de flux xml pouvant être transmis entre deux serveurs utilisé a des fins d'échange d'état,implémentant ainsi le prot
traiter/filter les images d'une webcam et afficher la video [ par GNurdin ]
Bonjour à tous,J'aimerais réaliser une petite application en java qui capturerait l'image d'une webcam et qui avant de l'afficher la traiterait.Je pen
Java Sound [ par jbond008 ]
Bonjour,Je souhaite lire dans mon application Java un flux de données binaires (généré octet par octet par l'application).Je connais à l'avance le for
Livres en rapport
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|