我正在尝试重现麻省理工学院研究人员获得的these results。该代码可用here。
这些是我在运行脚本时得到的警告:
在17岁时重现结果
处理。\ data \ baby.mp4
警告:无法确定此文件中的帧数。
处理。\ data \ baby2.mp4
使用VideoReader / init时出错(第436行)
我试图直接使用VideoReader打开一个文件,这是我得到的警告:
>> videoObj = VideoReader('baby.mp4');
Warning: Unable to determine the number of frames in this file.
我按照建议from the MathWorks forum尝试了get()函数。这是输出:
>> get(videoObj)
General Settings:
Duration = 10.0333
Name = baby.mp4
Path = C:\Documents and Settings\Administrator\Desktop\EVM_Matlab-1.1\EVM_Matlab\data
Tag =
Type = VideoReader
UserData = []
Video Settings:
BitsPerPixel = 24
FrameRate = 30.0000
Height = 544
NumberOfFrames = []
VideoFormat = RGB24
Width = 960
我在Windows XP上运行MATLAB R2013a。
答案 0 :(得分:6)
VideoReader必须扫描整个文件,以确定某些文件格式文件中存在的帧数。它必须这样做的原因是因为一类具有可变帧速率的文件。
通常,帧计数在构造期间发生。但是,对于某些文件,它返回一个空。
要强制,VideoReader计算帧数,请使用
读取最后一帧data = read(vidObj, Inf);
numFrames = vidObj.NumberOfFrames;
希望这有帮助。
的Dinesh