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 :

[Video] OpenCV arrive à lire une vidéo AVI mais pas une autre


Sujet :

Multimédia Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 11
    Points
    11
    Par défaut [Video] OpenCV arrive à lire une vidéo AVI mais pas une autre
    Bonjour,

    Je pense être dans la section des forums la plus appropriée pour parler de ce problème :
    J'ai écrit un programme Java utilisant OpenCV pour ouvrir une vidéo et en faire des captures (images).
    Le programme fonctionne parfaitement avec une première vidéo AVI, mais pas avec une seconde vidéo AVI.
    L'erreur a lieu dans VideoCapture.read(Mat) qui renvoie false au lieu de renvoyer true.
    Auriez-vous une idée de ce qui pourrait entrainer ce problème ? Je ne pense pas qu'il vienne du code mais peut-être de l'encodage de la seconde vidéo...

    Le code (au cas où) :
    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
    public static void main(String[] args) throws IOException{
    		//opening video
    			System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
    			String fileName = folder + "video2.avi";
    			VideoCapture cap = new VideoCapture(fileName);
    		//testing video format
    		    int width = (int)cap.get(Highgui.CV_CAP_PROP_FRAME_WIDTH);
    		    System.out.println("width "+width);
    		    int height = (int)cap.get(Highgui.CV_CAP_PROP_FRAME_HEIGHT);
    		    System.out.println("height "+height);
    		    double frameRate = cap.get(5);
    		    System.out.println("frameRate "+frameRate);
    		    Mat img = new Mat();
    		    boolean readen = cap.read(img); //est ce que la vidéo est lue ?
    		    System.out.println("readen "+readen);
    	    //capture pictures from video
    		    int i=0;
    		    Boolean fini = false;
    		    while(!fini){
    			    if(cap.read(img)){
    			    	BufferedImage image;
    					image = mat2Img(img);
    		            savePicture(image, folder+"capture\\"+i);			
    		            i++;
    			    }else{
    			    	System.out.println("erreur donc fin");
    			    	fini = true;
    			    }
    }
    Pour la vidéo 1, j'ai en sortie :
    width 656
    height 520
    frameRate 10.0
    readen true
    et le dossier "capture" se remplit bien avec les captures ;

    Pour la vidéo 2, j'ai en sortie :
    width 0
    height 0
    frameRate 0.0
    readen false
    erreur donc fin
    sans aucune image sauvegardée dans le dossier "capture".

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    PS :
    J'ai essayé de convertir la vidéo AVI avec d'autres codecs :



    Mais cela n'a pas résolu le problème.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    J'ai trouvé une demi-solution en attendant, elle me permet de travailler, mais c'est vraiment une solution très peu élégante :

    Il se trouve que la video1.avi (celle qui fonctionnait) avait été produite par le logiciel de capture vidéo "HyperCam".
    J'ai donc filmé la video2.avi avec HyperCam pour produire une video3.avi du même format que video1.avi, et mon programme Java a pu lire cet enregistrement...

    Comme vous voyez, c'est une solution très décevante.
    La vraie réponse au problème rencontré m'intéresse toujours, donc n'hésitez pas à partager vos idées !

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut besoin d'aide
    Citation Envoyé par Monsieur Griboux Voir le message
    PS :
    J'ai essayé de convertir la vidéo AVI avec d'autres codecs :



    Mais cela n'a pas résolu le problème.
    bonjour mr griboux j'espere que vous aller bien svp es ce que vous pouvez m'aider svp comment je fais pour récupérer le flux vidéo de ma cam j'utilise eclipse et opencv voila mon email repondez moi svp j'ai besoin d'aide. yousfi_samira@hotmail.fr

Discussions similaires

  1. intégrer une vidéo YOUTUBE mais pas dans un site
    Par Yepazix dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 02/03/2014, 13h20
  2. Réponses: 1
    Dernier message: 30/08/2013, 10h59
  3. Lire une vidéo .avi ou .mov depuis un swf
    Par apou_the_indian dans le forum Flash
    Réponses: 1
    Dernier message: 24/04/2010, 04h15
  4. Lire une vidéo AVI dans Firefox
    Par Space Cowboy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/11/2007, 11h38
  5. Lire une vidéo AVI ou MPEG ?
    Par kidpaddle2 dans le forum Windows
    Réponses: 9
    Dernier message: 13/12/2006, 14h44

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