mismatch between calculated and reported Framerate using VideoReader

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 件のコメント

Matthew Eicholtz
Matthew Eicholtz 2016 年 3 月 22 日
I tried this with one of the built-in videos ('xylophone.mp4') and could not reproduce your error. Sorry.
KV
KV 2016 年 3 月 22 日
You think it may be related to a wmv file?
Matthew Eicholtz
Matthew Eicholtz 2016 年 3 月 22 日
I just tried it with a .wmv file I had on my machine and still had no problem.
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 件)

製品

質問済み:

KV
2016 年 3 月 22 日

コメント済み:

KV
2016 年 3 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by