How to make number of frames equal of several videos having different length and having different number of frames?

11 views (last 30 days)
I have several videos of different lengths. Correspondilgy, every video has got different number of frames. I want to make every video equal in terms of number of frames. For eg. I have five videos having 21, 28, 8, 104 and 62 frames respectively. I want to make number of frames 32 for every video. Is there any solution for this problem?
  4 Comments

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 21 Oct 2020
This shows how to write the video with fixed number of frames
num_frames = 32; % number of frames in out.mp4
TotalTime = 2; % out.mp4 will be 2 seconds
v = VideoReader('xylophone.mp4');
frames = read(v, [1 inf]);
frames = permute(frames, [4 1 2 3]);
frames_out = uint8(interp1(linspace(0,1,size(frames,1)), double(frames), linspace(0,1,num_frames)));
frames_out = permute(frames_out, [2 3 4 1]);
V = VideoWriter('out.mp4', 'MPEG-4');
V.FrameRate = 32/TotalTime;
open(V);
writeVideo(V, frames_out);
close(V);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!