2012-04-22 20 views
1

私はopenCVを使ってビデオをフレームに分割しています。そのためには、fpsと持続時間が必要です。これらの値は両方とも、cvGetCapturePropertyを介して要求するときに1を返します。iOSのopencv cvGrabFrameフレームレート?

私はAVURLAssetを使用してfpsと期間を取得するハックを作成しましたが、これをopenCVと組み合わせると部分的なビデオしか得られません。フレームが欠落しているようです。

これが今の私のコードです:

while (cvGrabFrame(capture)) { 
    frameCounter++; 

    if (frameCounter % (int)(videoFPS/MyDesiredFramesPerSecond) == 0) { 
     IplImage *frame = cvCloneImage(cvRetrieveFrame(capture)); 
     // Do Stuff  
    } 

    if (frameCounter > duration*fps) 
    break; // this is here because the loop never stops on its own 
} 

にはどうすればいいのiOS上でのOpenCVを使用してビデオのすべてのフレームを得ることができますか? (opencv 2.3.2)

答えて

2

documentationによれば、ビデオシーケンスの最後にヌルポインタが返された場合は、cvRetrieveFrame()によって返される値をチェックする必要があります。その後、FPS * frame_numberの精度に頼るのではなく、ループが壊れます。

関連する問題