簡體   English   中英

如何使用EmguCV獲取視頻文件的幀數?

[英]How to get frames count of a video file with EmguCV?

我正在使用以下代碼從視頻文件中獲取所有幀。 但是,當我為示例視頻運行代碼時, double FramesCount1402402並在第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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM