MATLAB Answers

0

How to skip the no of frames in a video

Asked by MJ Thangaraj on 4 Mar 2016
Latest activity Commented on by Walter Roberson
on 23 Jan 2019
Suppose i want to read only one of every 10 frames of a Video

  2 Comments

hi, does the answer really tell how to read every 10th frame of the video? as in frame 10,20,30,40...etc
You can loop passing in one frame index at a time to the read() method. Or you can fetch the estimate of the number of frames and calculate 10:10:NumbeOfFrames as the index for the read() method. Watch out for the fact that the number of frames is only an estimate.

Sign in to comment.

Products

1 Answer

Answer by B.k Sumedha on 4 Mar 2016

Use read option to read only particular frames.Remaining files will be discarded automatically.
v = VideoReader('xylophone.mp4');
%Read only the first video frame.
video = read(v,1);
%Read only the last video frame.
video = read(v,Inf);
%Read frames 5 through 10.
video = read(v,[5 10]);
%Read from the 50th frame to the end of the video file.
video = read(v,[50 Inf]);

  1 Comment

Using read() is no longer recommended for reading frames from VideoReader objects. The recommendation now is to use readFrame(), which can read one frame at a time. You can loop discarding frames if you want. See http://www.mathworks.com/help/matlab/import_export/read-video-files.html

Sign in to comment.