在 MATLAB 中获取视频帧数的最快方法是什么?

What's the fastest way to get a video frame count in MATLAB?

使用此代码翻阅 1423 帧(192X1080 分辨率)的视频耗时 63 秒:

vidObj = VideoReader(videoname);
nFrames = 0;
while hasFrame(vidObj)
    readFrame(vidObj);
    nFrames = nFrames + 1;
end

加载同一视频仅需 4 秒即可返回帧数。

如何加快视频帧计数?

您所要做的就是从 VideoReader 对象中获取 NumberOfFrames property

vidObj = VideoReader(videoname);
nFrames = vidObj.NumberOfFrames;