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

avec Java Discussion :

header d'un avi erreur dans le programme


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut header d'un avi erreur dans le programme
    bonjour tout le monde
    j'ai un petit problème pour lire le header d'un fichier avi.
    je me suis aidé de cette page : http://www.fastgraph.com/help/avi_header_format.html
    Mais mon programme de marche pas le but étant de récupérer le nombre de frame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DataInputStream lect=new DataInputStream(new FileInputStream("monfichier.avi"));
                        //je passe les 32 premier bytes comme indiquer sur la page.
                        for (int i=0;i<32;i++) lect.readByte();
     
                        //je vais a la place du nombre de frame
                        for (int i=0;i<16;i++) lect.readByte();
     
                        // je lis le nombre de frame
                        int frame=lect.readInt();
                        System.out.println(frame);
    le problème c'est que la sorti est : 336134144
    alors que avidemux me dit qu'il n'y en a que 2323.

    merci pour le future coup de main.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    C'est curieux, mais es tu sur de la manière dont tu lit ton int?

    Dans la doc de DataInput, il est écrit:
    Reads four input bytes and returns an int value. Let a be the first byte read, b be the second byte, c be the third byte, and d be the fourth byte. The value returned is:


    (((a & 0xff) << 24) | ((b & 0xff) << 16) |
    ((c & 0xff) << 8) | (d & 0xff))
    Hors, si ma mémoire est bonne, les int en mémoire x86, qui sont probbablement mappés directement dans le fichier, sont stocké en gérant l'endiance, ce qui implique un formule comme çà (si ma mémoire est bonne hein)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     (((c & 0xff) << 24) | ((d & 0xff) << 16) |
      ((a & 0xff) << 8) | (b & 0xff))

    bref tu va devoir y aller à la main je pense, DataInput est prévu pour faire des stockages indépendant de la plateforme. Les formats windows sont tout sauf indépendant

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Donc si j'ai bien compris, je dois faire un tableaux de quatre bytes et les "convertir" en un entier.

    Le problème c'est que je ne sait pas comment faire cette conversion.

    edit : grace a ton aide, j'ai trouvé en tatonnant qui va à quel place

    la bonne réponse était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (((d & 0xff) << 24) | ((c & 0xff) << 16) | 
    ((b & 0xff) << 8) | (a & 0xff))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exo, erreur dans le programme - AIDE
    Par GENgis_- dans le forum C++
    Réponses: 6
    Dernier message: 28/10/2006, 14h11
  2. [Help] Erreurs dans mon programme
    Par Tacha dans le forum Langage
    Réponses: 13
    Dernier message: 02/10/2006, 13h57
  3. erreur dans un programme
    Par krole57 dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/06/2006, 14h30
  4. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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