[JAVA] Problème createPlayer JMF

Résolu
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009
- 11 mai 2009 à 11:14
 misterjoidf - 19 juil. 2011 à 11:09
Bonjour,

je suis actuellement en stage et je dois réaliser une applet affichant la vidéo d'une caméra IP. Pour cela j'ai vu que la seule bibliothèque JAVA était la JMF. Je m'y suis donc attelé.

J'ai regardé quelques tuto et j'ai programmé un premier jet. Seulement j'ai un soucis lors de la création du player :

package view;

import java.io.IOException;

import javax.media.CaptureDeviceInfo;
import javax.media.IncompatibleSourceException;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoDataSourceException;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.format.JPEGFormat;
import javax.media.protocol.DataSource;
import javax.swing.JPanel;
import model.Model;
import com.sun.image.codec.jpeg.*;
import com.sun.media.MediaPlayer;

public class View extends JPanel{
    private Model model_;
    private VideoThread videoThread_;
    private MediaLocator mediaLocator_;
    private Player player_;
    
    
    public View(Model model){
        model_ = model;
        if(model_.getUrl() != null){
            mediaLocator_ = new MediaLocator(model.getUrl());
            if(mediaLocator_ == null)
                System.out.println("Impossible de trouver le media.");
            else{
                try {
                    player_ = Manager.createPlayer(mediaLocator_);
                } catch (NoPlayerException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}


Au moment de l'appel à "Manager.createPlayer(...)" j'ai une NoPlayerException de lancée. J'ai beau chercher je ne trouve pas la solution. J'ai tenté avec un DataSource ou même un CaptureDeviceInfo mais rien ne fait...

Merci d'avance.

24 réponses

cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
11 mai 2009 à 11:58
Salut,

Mets la stack trace complète car là on va pas pouvoir faire grand chose.
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

11 mai 2009 à 13:39
Autant pour moi, voilà l'erreur que je reçoit systématiquement :

javax.media.NoPlayerException: Cannot find a Player for :http://192.168.54.130:13900/axis-cgi/mjpg/video.cgi
at javax.media.Manager.createPlayerForContent(Manager.java:1412)
at javax.media.Manager.createPlayer(Manager.java:417)
at view.View.(View.java:34)
at Launcher.init(Launcher.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

11 mai 2009 à 13:41
Là où c'est bizarre c'est que même lorsque j'indique cette url dans JMFStudio, il me dit qu'il ne peut pas créer de player pour cette adresse.

Je commence à désespérer.
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
11 mai 2009 à 13:49
Ok, c'est très certainement un codec qu'il ne gère pas ! JMF est assez limité en nombre de codecs qu'il arrive à utiliser !

Je te conseille d'utiliser un plugin de JMF pour pouvoir gérer plus de codecs : Fobs4JMF par exemple.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

11 mai 2009 à 14:36
Merci je vais essayer cela.

Par contre j'ai vu que pour installer Fobs4JMF il faut copier un fichier dans le système.

Est-ce que chaque utilisateur devra faire cela avant de lancer l'applet de chez lui ?
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

11 mai 2009 à 14:56
J'ai tenté de configurer JMStudio en ajoutant les codecs,... via JMRegistery comme indiqué sur le site. Cepedant j'avais toujours un "could not add item" lorsque je cliquais sur "add".

J'ai donc remplacer le jmf.properties de ma jmf installée par celui de fobs4jmf. J'ai donc maintenant tous ce qu'il faut dans JmfRegistery mais cela ne change rien du tout au niveau de mon programme (ni de JMStudio qui ne veut toujours pas lire mon url...).
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
11 mai 2009 à 14:59
C'est quel format de vidéo que tu veux lire ?

Il existe un autre plugin pour JMF mais je me rappelle plus le nom.
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

11 mai 2009 à 15:04
C'est un format mjpg, c'est un streaming d'une caméra IP Axis 211M.
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
11 mai 2009 à 15:21
Sinon essaye de lire une simple vidéo MPEG avec ton programme pour voir si ca vient de ton programme ou bien du format de la vidéo.

Je ne connais pas ce format de vidéo, et après une petite recherche sur google, il semblerait que tu ne sois pas le seul à ne pas arriver à lire ce format !

Essaye de voir avec cà :
http://www.commentcamarche.net/forum/affich-2551928-recuperer-video-vam-flux-video-avec-jmf
Bien qu'apparement cà ne s'appliquer par pour des caméras AXIS, mais c'est peut-être une piste...

Après une solution, si ton but est juste de lire une vidéo et non de lire une vidéo spécialement dans ce format, est de la réencoder dans un autre format avec un logiciel (SUPER par exemple).
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
13 mai 2009 à 10:11
Salut,

C'est la dll de Fobs qu'il ne trouve pas : un 'native livrary' veut dire une librairie système.

Essaye de placer la dll de fobs dans le répertoire system32 de windows.
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

13 mai 2009 à 10:16
Je galère vraiment avec la mise en page sur ce forum, je reécris mon message en espérant que cette fois-ci ce sera bon :


Bon alors effectivement JMStudio n'arrive pas à lire une vidéo MPEG-4.

J'ai vu qu'en copiant les fichier jmf.jar, jmf.propertie, fobs4jmf.jar et fobs4jmf.dll dans un dossier "lib" que l'on ajoute ensuite par eclipse, ca devrait fonctionner.

C'est ce que j'ai fait mais maintenat j'ai d'autres erreurs :

java.io.IOException: File Not Found
java.io.IOException: File Not Found
javax.media.NoPlayerException: Error instantiating class: com.sun.media.protocol.file.DataSource : java.io.IOException: File Not Found
at javax.media.Manager.createPlayerForContent(Manager.java:1362)
at javax.media.Manager.createPlayer(Manager.java:417)
Fobs4JMF - Native shared library found	at javax.media.Manager.createRealizedPlayer(Manager.java:553)
at view.View.(View.java:33)
at Launcher.init(Launcher.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at view.View.(View.java:44)
at Launcher.init(Launcher.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

OpenError: File open error



En gros y'a un fichier qu'il ne trouve pas mais je ne sais pas lequel...
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

13 mai 2009 à 10:18
Salut,

Mon .dll était déjà dans System32, il est à la fois dans "lib" et dans "System32".

Le truc que éclipse écrit "Native shared library found" donc il trouve le dll non ?
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
13 mai 2009 à 11:35
Tu es sous quel browser ? SOus chrome, si tu utilises la mega-hypra-super freetextbox, les retours à la lignes ne sont pas pris en compte :(

La solution : passer à la textbox classique, c'est moche et limité, mais au moins ca marche !

Vive le progrès !
3
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

11 mai 2009 à 15:36
Ok merci, j'ai déjà parcouru des dizaines de fois les forums sans trouver de réponse... Je vais essayer la vidéo locale.

Merci quand même.
0
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

13 mai 2009 à 10:05
Bon alors effectivement JMStudio n'arrive pas à lire une vidéo MPEG-4.

J'ai vu qu'en copiant les fichier jmf.jar, jmf.propertie, fobs4jmf.jar et fobs4jmf.dll dans un dossier "lib" que l'on ajoute ensuite par eclipse, ca devrait fonctionner.

C'est ce que j'ai fait mais maintenat j'ai d'autres erreurs :

java.io.IOException: File Not Found
Fobs4JMF - Native shared library found
OpenError: File open error
java.io.IOException: File Not Found
javax.media.NoPlayerException: Error instantiating class: com.sun.media.protocol.file.DataSource : java.io.IOException: File Not Found
at javax.media.Manager.createPlayerForContent(Manager.java:1362)
at javax.media.Manager.createPlayer(Manager.java:417)
at javax.media.Manager.createRealizedPlayer(Manager.java:553)
at view.View.(View.java:29)
at Launcher.init(Launcher.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at view.View.(View.java:40)
at Launcher.init(Launcher.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


En gros y'a un fichier qu'il ne trouve pas mais je ne sais pas lequel...
0
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

13 mai 2009 à 10:29
L'autre plugin dont du parlais, ce ne serai pas FFMPEG par hasard ?

Je vois qu'ils en parlent pas mal sur le site de Fobs4Jmf mais je ne saisi pas trop si c'est une bibliothèque ou un plugin.
0
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
13 mai 2009 à 10:39
Oui c'est bien cà : FFMPEG ! C'est un plugin pour JMF aussi, mais il me semble que j'ai jamais réussi à le faire fonctionner :(
0
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

13 mai 2009 à 10:46
En fait c'est un logiciel complet, ce n'est pas un plugin... J'avais un espoir mais non, il faut que je me contente de JMF.

Je ne comprends vraiment pas comment ça se fait que j'ai ces erreurs là...
0
cs_Mousk
Messages postés
16
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
29 mai 2009

13 mai 2009 à 10:48
Y'a quand même une bonne nouvelle, fobs4jmf permet lui de lire des vidéos en MPEG-4, j'ai testé avec jmfStudio contenu dans l'archive fobs4Jmf et ça fonctionne.

Me reste plus qu'à réussir à l'intégrer dans éclipse... là c'est pas gagné.
0
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
13 mai 2009 à 10:58
Oui Fobs4JMF permet de lire quasiment tout les formats (quasiment !).

Fais voir ton code qui pose problème, on ne sais jamais, peut-être que j'aurais une piste.
0