mismatch between calculated and reported Framerate using VideoReader

1 次查看(过去 30 天)
I am trying to process video data (wmv format) recorded using a standard consumer grade camera using Matlab (R2014a, on Linux/Ubuntu) using VideoReader
vr = VideoReader('my_movie_file.wmv')
frames = read(vr); % read all frames
size(frames, 4) % gives 4025
vr.NumberOfFrames % gives 4025
vr.Duration % gives 134.7950
vr.FrameRate % gives 15
Now, this does not compute!
I.e,
round(vr.FrameRate*vr.Duration) % gives 2022,
which is half the size of vr.NumberOfFrames -- which means that the reported FrameRate is 1/2 the "calculated" value!
What am I missing?? All help will be appreciated.
  5 个评论
Walter Roberson
Walter Roberson 2016-3-22
Is the file variable framerate? If so then the reported framerate might be the last one in the file (the one in effect at the time you queried)
KV
KV 2016-3-23
Yes, Walter -- the file does have variable frame rate. Is there any way I can get information about "timestamps" on a per-frame basis?

请先登录,再进行评论。

回答(0 个)

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by