プロジェクトでaviを処理するためにjavacvを使用しました。ビデオは通常よりも速く表示されます。ビデオの速度を設定するために fps を取得したいと考えています。しかし、grabber.getFrameRate() は 0 を返します。これは、grabber.getLengthInFrames() およびgrabber.getSampleRate() と同じです。だれかが理由を教えてもらえますか? 以下のコード スニペット:
FrameGrabber grabber = new OpenCVFrameGrabber("sample.avi");
double fps=grabber.getFrameRate();
System.out.println(fps);
//int n=grabber.getLengthInFrames();
//int f=grabber.getSampleRate();
CvMemStorage storage = CvMemStorage.create();
grabber.start();
grabbedImage = grabber.grab();
while (frame.isVisible() && (grabbedImage = grabber.grab()) != null)
{
BufferedImage bfimg = grabbedImage.getBufferedImage();
frame.showImage(bfimg);
frame.waitKey((int)(1000/fps));
cvClearMemStorage(storage);
}
grabber.stop();