How can I decrease the frame rate of a video?
96 views (last 30 days)
Show older comments
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);
0 Comments
Accepted Answer
Dave B
on 23 Oct 2021
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
More Answers (1)
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.
0 Comments
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!