How to make number of frames equal of several videos having different length and having different number of frames?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Ameer Hamza
2020-10-21
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);
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!