How can I decrease the frame rate of a video?

4 views (last 30 days)
Janely Medina
Janely Medina on 22 Oct 2021
Commented: Janely Medina on 25 Oct 2021
I'm displaying a video, but it's automatically speeding it up. The default frame rate is 30, How can I decrease the frame rate? If this is not possible, what are ways to go around it? I've tried slowing down the input video itself before loading it with no luck.
Here is the code:
%% Play a Video File
% Read video from a file and set up player object.
videoReader = VideoReader('testing.mov')
videoPlayer = vision.VideoPlayer('Name','Testing');
% Play video. Every iteration reads another frame.
while hasFrame(videoReader)
frame = readFrame(videoReader);
step(videoPlayer,frame);
end
% Close the video player.
release(videoPlayer);

Accepted Answer

Dave B
Dave B on 23 Oct 2021
Each iteration is going as fast as MATLAB can, you can slow it down with pause:
videoReader = VideoReader('viplanedeparture.mp4');
videoPlayer = vision.VideoPlayer;
while hasFrame(videoReader)
frame = readFrame(videoReader);
step(videoPlayer,frame);
pause(0.1) % pause for 100ms between frames
end
Playing at a precise framerate is a little tricky. You could approximate 30fps by:
pause(1/30) % pause for 1/30th of a second, so 30fps
But that's not exact, because there's some time neaded for readFrame and step. It looked to me like on my computer those are pretty fast, but your mileage may vary. An idea to get a little bit closer (if it's important to you):
while hasFrame(videoReader)
tic
frame = readFrame(videoReader);
step(videoPlayer,frame);
pause(1/30 - toc)
end
  1 Comment
Janely Medina
Janely Medina on 25 Oct 2021
The pause function worked perfectly. I paused for 50ms and it plays very closely to the actual speed of the video, TYSM!!

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 23 Oct 2021
You could write a new video with the same frames but specify a different frame rate property.
I'm attaching a demo of how to create a new movie from an existing one but I don't change the frame rate so you'd have to add that line of code.

Community Treasure Hunt

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

Start Hunting!