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

How to find the length of a video in OpenCV?

本文关键字:视频 查找 OpenCV      更新时间:2023-10-16

我想在OpenCV中查找视频捕获的长度;

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

但这给了我一个不太真实的答案。我该怎么办?

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

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

请参阅这篇类似的文章。OpenCV(尚未)正确捕获的帧数

OpenCV只捕获视频文件中的一小部分帧