QTCaptureView : fixer le nombre d'images par seconde pour l'acquisition

Bonjour


 


J'utilise QTCaptureView pour capturer des séquences video à  partir de webCam. Cependant, je me suis aperçu que lorsque je visionnais ensuite les acquisitions enregistrées, elles n'avaient pas toutes le même nombre d'images par seconde. Parfois, j'ai 30 IPS parfois 14 IPS ou autre encore.


Du coup, j'aimerais savoir si il y a un moyen de fixer ce nombre d'IPS (de préférence à  30) lors de l'acquisition ?


Merci d'avance


 


Réponses



  • Bonjour


     


    J'utilise QTCaptureView pour capturer des séquences video à  partir de webCam. Cependant, je me suis aperçu que lorsque je visionnais ensuite les acquisitions enregistrées, elles n'avaient pas toutes le même nombre d'images par seconde. Parfois, j'ai 30 IPS parfois 14 IPS ou autre encore.


    Du coup, j'aimerais savoir si il y a un moyen de fixer ce nombre d'IPS (de préférence à  30) lors de l'acquisition ?


    Merci d'avance




     


    Vu sur github, a voir https://github.com/sanaihyeon/MacCapture/blob/master/QTMediaCaptureManager/KNVideoCaptureDevice.m

  • Merci devulder


     


    Voici ce que j'ai fais au sein de la construction de ma session : 



    NSSize captureSize = NSMakeSize(640, 480);
    QTCaptureDecompressedVideoOutput* videoOutput = [[QTCaptureDecompressedVideoOutput alloc] init];
    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithDouble: captureSize.width], (id)kCVPixelBufferWidthKey,
    [NSNumber numberWithDouble: captureSize.height], (id)kCVPixelBufferHeightKey,
    //[NSNumber numberWithInt:kCVPixelFormatType_32ARGB],(id)kCVPixelBufferPixelFormatTypeKey,
    nil];

    [videoOutput setPixelBufferAttributes:attributes];
    videoOutput.minimumVideoFrameInterval = 1.0 / 10.;
    [videoOutput setDelegate:self];
    success = [mCaptureSession addOutput:[videoOutput autorelease] error:&error];

    if (!success) {
    [[NSAlert alertWithError:error] runModal];
    return;
    }

    Mais ça ne marche pas. J'ai toujours cette même variation d'fps en fonction de la luminosité


    Pour info : je ne passe pas ds l'alerte d'erreur donc normalement ça devrait être bon mais....


     


    Qu'est ce que j'ai raté ????


     


    Merci d'avance

  • Alors en fait, j'ai placé la ligne suivante ds la création d'une session de que l'on trouve ds tous les exemples au niveau de QTCaptureMovieFileOutput :



    // Create the movie file output and add it to the session

    mCaptureMovieFileOutput = [[QTCaptureMovieFileOutput alloc] init];

    //compresser à  30 immages/sec
    mCaptureMovieFileOutput.minimumVideoFrameInterval = 1.0 / 10.;// 10 fps

    success = [mCaptureSession addOutput:mCaptureMovieFileOutput error:&error];
    if (!success) {
    // Handle error
    }

    [mCaptureMovieFileOutput setDelegate:self];

    Il se passe bien quelque chose, mais c'est l'inverse que ce que j'attendais. Mon exemple voulait que le minimum de frames soit de 10 mais en fait, c'est l'inverse : ça ne dépasse jamais 10 (même si j'ai un super éclairage qui aurait dû m'amener à  30)


     


    Quelqu'un connait il un moyen d'obtenir ce que je cherche ???


    Merci d'avance

Connectez-vous ou Inscrivez-vous pour répondre.