如何在OpenCV中查找视频的长度?

Mil*_*d R 3 c++ 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;
Run Code Online (Sandbox Code Playgroud)

但这给了我一个不如真实答案的结果.我需要做什么?

小智 5

实际上,我不确定您今天尝试过的功能是否存在任何问题.但是,此代码段存在问题.这里,假设每秒帧数是一个整数值,但并非总是如此.例如,许多视频以29.97 FPS编码,并且此代码假设int(29.97)= 29,这显然导致视频长度的秒值更大.

如果我使用浮点值(浮点数)而不截断它们,计算似乎对我来说很好.