[英]How to get frames count of a video file with EmguCV?
我正在使用以下代碼從視頻文件中獲取所有幀。 但是,當我為示例視頻運行代碼時, double FramesCount
為1402402
並在第467
號幀上彈出錯誤。
PS:我認為實際幀數約為〜467,因為視頻文件只有15秒(15秒* 30fps =〜450幀)
_capture = new Capture(OpenFile.FileName);
FramesCount = (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_COUNT);
for(int i = 0; i < FramesCount - 1; i++)
{
FramesArray.Add(_capture.QueryGrayFrame().Resize(ImageWidth, ImageHeight, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR));
}
如何獲得確切的幀數?
該代碼:
int framecount = (int)Math.Floor(capt.GetCaptureProperty(CapProp.FrameCount)); //get count of frames
double framerate = capt.GetCaptureProperty(CapProp.Fps); //get fps
如果仍然有用,對我來說很好。 我喜歡21,6666667秒的視頻,它返回的幀數正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.