How to rewind in VideoReader?

If I have read several frames in VideoReader, how can I rewind to the first frame? In this example, let's say I stop the replay after 5 frames (enter 0 when prompted at the 5th frame). After that I want to rewind to the 1st frame, for example if I want to display the first frame again. How do I rewind?
vidObj = VideoReader('xylophone.mp4'); % Make a video object of an example video on everyone's path
iStop = []; % Stop the frame display if this is not empty
while hasFrame(vidObj) & isempty(iStop) % Loop through all frames
vidFrame = readFrame(vidObj);
imagesc(vidFrame);
iStop = input('0 to stop, return to continue ');
end

4 Comments

You can set
vidObj.CurrentTime;
to specify the time in seconds from which you would read the next frame. You can also get the 'NumberOfFrames' and 'FrameRate' settings if you need to calculate the time (if it were something other than the start).
Not sure if that helps or not. I am not familiar with VideoReader myself so I just looked at the help documentation.
K E
K E on 10 Mar 2016
Edited: K E on 10 Mar 2016
The problem is that my original sequence starts at a time offset (vidObj.CurrentTime), and I would like to rewind back to the first frame in that sequence. It seems like you should be able to rewind frames by 'resetting' vidObj so the next readFrame call starts back at the first frame in the sequence but I don't know how.
time_to_remember = vidObj.CurrentTime;
.... do some things that read frames ...
vidObj.CurrentTime = time_to_remember; %position back to where we were
Put these comments in the "Answers" section.

Sign in to comment.

 Accepted Answer

time_to_remember = vidObj.CurrentTime;
.... do some things that read frames ...
vidObj.CurrentTime = time_to_remember; %position back to where we were

More Answers (0)

Community Treasure Hunt

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

Start Hunting!