Bonjour.

J'ai récemment essayé quelques exemples de base en lecture de videos (.avi) à l'aide d'opencv.

Apparemment, il semble que le fait que je sois sous linux cause des problèmes: en effet, sur une vidéo qui compte 400 frames et des poussières, je n'en lit que 68, ceci avec un certain nombre de saut de frames avant de recevoir une frame nulle (le tout à l'aide de cvQueryFrame).

D'autre partl la fonction cvGetCaptureProperty avec comme second argument CV_CAP_PROP_FRAME_COUNT sensée renvoyer le nombre de frames renvoie toujours zéro. j'ai toutefois pu contourner le problème à l'aide de la fonction ci dessous :
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
int getAVIFrames(char * fname) {
    char tempSize[4];
    // Trying to open the video file
    std::ifstream  videoFile( fname , std::ios::in | std::ios::binary );
    // Checking the availablity of the file
    if ( !videoFile ) {
      std::cout << "Couldn’t open the input file " << fname << std::endl;
      return 0;
    }
    // get the number of frames
    videoFile.seekg( 0x30 , std::ios::beg );
    videoFile.read( tempSize , 4 );
    int frames = (unsigned char ) tempSize[0] + 0x100*(unsigned char ) tempSize[1] + 0x10000*(unsigned char ) tempSize[2] +    0x1000000*(unsigned char ) tempSize[3];
    videoFile.close(  );
    return frames;
}
enfin, la fonction cvSetCaptureProperty qui devrait normalement changer le numéro de la frame en cours n'a strictement aucun effet sur le flux vidéo, même lorsque l'argument de position est à une valeur fixe comme 0 ou 1 (les frames se déroulent les unes après les autres).

J'ai l'impression que cela est lié à un problème de codecs, mais je ne vois absolument pas comment résoudre ce problème ou éventuellement quel for mat utiliser pour que-ceux-cis n'aient pas lieu.

J'ai également rendu la video "propre" (format uncompressed et autre à l'aide de MEncoder:
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
mencoder tree.avi -ovc raw -vf format=i420 -o tree2.avi
Si vous avez une idée...

D'autre part, je ne sais pas si ce sujet répond de ce forum ou du forum linux... peut-être des deux....

Cordialement ...