2012-03-09 25 views
2

私はOpenCVでビデオキャプチャの長さを見つけたいと思っています。OpenCVでビデオの長さを見つける方法は?

int frameNumbers = (int) cvGetCaptureProperty(video2, CV_CAP_PROP_FRAME_COUNT); 
int fps = (int) cvGetCaptureProperty(video2, CV_CAP_PROP_FPS); 
int videoLength = frameNumbers/fps; 

しかし、これは私に実際の答えよりも小さい結果を与えます。私は何をしなければならないのですか?

+1

cvGetCaptureの小道具の多くは動作しません - 彼らは正しい値を供給OS(VFW/DirectShowの)に依存しています。結果が重要な場合は、ffmpegを直接使用することもできます –

答えて

5

の数をキャプチャ実は、私はわかりません。ただし、このスニペットに問題があります。ここでは、1秒あたりのフレーム数が必ずしもそうでない整数値であると仮定しています。例えば、多くのビデオは29.97FPSでエンコードされており、このコードはint(29.97)= 29と仮定します。これは明らかにビデオの長さが秒単位で大きくなります。

計算では、私はそれらを切り捨てずに浮動小数点値(フロート)を使用する場合は私のために正常に動作するようです。

関連する問題