フィルターのクリア

VideoReader framerate is not matching total number of frames

11 ビュー (過去 30 日間)
Hazem
Hazem 2014 年 11 月 7 日
コメント済み: Walter Roberson 2018 年 1 月 31 日
I use VideoReader command to find the frames per second (FPS) for a recorded video
Obj=VideoReader('Movie1');
Here are some of the data of interest I get
Obj.Duration=120.9370 % total video duration
Obj.FrameRate=29.4492 % Frame rate Meta data
Obj.NumberOfFrames=3552 % Total frames
The problem is that the
Obj.FrameRate=29.4492 is not equal to
Obj.NumberOfFrames/Obj.Duration=29.3707.
This difference is very significant for my problem,so
1- Which value is more reliable?
2- What is the reason behind this inconsistency?
Many Thanks,

回答 (2 件)

Tommaso Lucarelli
Tommaso Lucarelli 2016 年 12 月 19 日
Hello Hazem,
I'm working on a project and I have found exactly the same issue, I'm facing this problem and I don't know how to find a solution.
Did you find a way to fix it at the end? This difference is very significant for my problem.
Thanks a lot, have a nice evening,
Tommaso

Kris Fedorenko
Kris Fedorenko 2018 年 1 月 31 日
I believe "FrameRate" is not guaranteed to be constant throughout the playback. This should give you a more accurate value:
vobj = VideoReader('mymovie.avi');
numFrames =vobj.NumberOfFrames
vobj = VideoReader('mymovie.avi'); % need to re-instantiate after computing NumberOfFrames
  1 件のコメント
Walter Roberson
Walter Roberson 2018 年 1 月 31 日
NumberOfFrames is estimated from the known duration and initial frame rate, and is known to have round-off problems even for fixed framerate images.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeImages についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by