IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Multimédia Java Discussion :

Qualité flux webcam ?


Sujet :

Multimédia Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut Qualité flux webcam ?
    Bonjour,

    j'utilise l'API JMF pour récupérer le flux de ma webcam et afficher la video dans une petite fenetre de mon application. Cependant la qualité n'est pas superbe et est bien en dessous des performances de la webcam.

    Je dois agir sur quel objet ? Mon Processor ? Mon datasourcE ?

  2. #2
    Membre averti
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut
    Salut,
    Peux tu m'envoyer ton code pour le tester.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.media.format.* ;
    import java.util.* ;
    import javax.media.* ;
    import javax.media.protocol.* ;
    import javax.swing.JOptionPane; 
    import jmapps.util.StateHelper;
    import org.videolan.jvlc.*;
     
    public class Webcam extends JInternalFrame
    {
    		private VideoFormat formatVideo ;
    		private Vector peri ;
    		private Processor processeur ;
    		private CaptureDeviceInfo  info ;
    		private MediaLocator ml ;
    		private DataSource sourceCamera ;
    		private JPanel panneauBas ;
    		private JCheckBox muet ;
     
     
    		public Webcam() //CONSTRUCTEUR DE LA FENETRE WEBCAM LOCALE
    		{
    			super("Webcam locale",false, true) ;
     
    			panneauBas = new JPanel() ;
    			muet = new JCheckBox("Micro muet") ;
    			panneauBas.add(muet, BorderLayout.WEST) ;
     
     
     
    	        this.setSize(170,200);
    	        this.setVisible(true);
    	        this.setLocation(20,20);
     
     
     
    			//ON SPECIFIEZ UN FORMAT VIDEO ICI YUV
    			formatVideo = new VideoFormat(VideoFormat.RGB, new Dimension(640,480),Format.NOT_SPECIFIED, Format.byteArray, (float)15.00015);
     
    			//ON RECUPERE LA LISTE DES PERIPHERIQUES DE CE FORMAT
    			peri = CaptureDeviceManager.getDeviceList(formatVideo);
     
    			if (peri.size() <= 0)
    			{
    				JOptionPane.showMessageDialog(this, "Aucune webcam detéctée" + peri.toString(), "Erreur", JOptionPane.ERROR_MESSAGE) ;
    			}
     
    			info = (CaptureDeviceInfo) peri.elementAt(0) ;		
    			ml = info.getLocator();
     
    			try
    			{	
    				sourceCamera = Manager.createDataSource(ml);
    				sourceCamera = Manager.createCloneableDataSource(sourceCamera);				
    				processeur = Manager.createProcessor(sourceCamera) ;
     
    				StateHelper playhelper = new StateHelper(processeur);
    				playhelper.configure();
    				processeur.setContentDescriptor(null);
    				playhelper.realize();
    				Control control = processeur.getControl("javax.media.control.FormatControl");
     
    				if (control== null)
    				JOptionPane.showMessageDialog(this, "Pas ce controle", "Erreur", JOptionPane.ERROR_MESSAGE) ;	
     
    				processeur.start(); 
     
    				this.getContentPane().add(processeur.getVisualComponent(), BorderLayout.CENTER);
    				this.getContentPane().add(panneauBas, BorderLayout.SOUTH);
    			}
    			catch(Exception e)
    			{
    				System.out.println("Erreur") ;
     
    			}
     
     
     
    		}
     
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    c'est bon j'ai trouvé voici mon code :

    on récupère dabord tous les formats supporté par la webcam dans un tableau puis on les test tous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    info = (CaptureDeviceInfo) peri.elementAt(0) ;		
    			ml = info.getLocator();
    			formats = info.getFormats() ;	
    			formatVideo = (VideoFormat) formats[1] ;
     
     
    			try
    			{	
    				sourceCamera = Manager.createDataSource(ml);
    				sourceCamera = Manager.createCloneableDataSource(sourceCamera);				
    				processeur = Manager.createProcessor(sourceCamera) ;
     
    				StateHelper playhelper = new StateHelper(processeur);
    				playhelper.configure();
    				processeur.setContentDescriptor(null);
    				playhelper.realize();
     
    				FormatControl control = (FormatControl)processeur.getControl("javax.media.control.FormatControl");
     
    				if (control== null)
    				JOptionPane.showMessageDialog(this, "Pas ce controle", "Erreur", JOptionPane.ERROR_MESSAGE) ;	
    				control.setFormat(formatVideo);
    				processeur.start(); 
     
    				this.getContentPane().add(processeur.getVisualComponent(), BorderLayout.CENTER);
    				this.getContentPane().add(panneauBas, BorderLayout.SOUTH);
    			}
    			catch(Exception e)
    			{
    				System.out.println("Erreur") ;
     
    			}

Discussions similaires

  1. Envoyer un flux webcam
    Par Kaneda Shotaro dans le forum C#
    Réponses: 2
    Dernier message: 01/04/2009, 13h21
  2. media element et flux webcam
    Par dfiad77pro dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 17/03/2009, 23h40
  3. Intégrer Flux Webcam
    Par mxh77 dans le forum 4D
    Réponses: 1
    Dernier message: 24/09/2008, 11h49
  4. Afficher flux Webcam
    Par beral dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 17/12/2007, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo