Video compression code working - Please explain the code

22 vues (au cours des 30 derniers jours)
naveen V
naveen V le 5 Mai 2014
Commenté : Walter Roberson le 26 Nov 2022
ImFolder=uigetdir;
pngFile = dir(strcat(ImFolder,'\*.png'));
S = [pngFile(:).datenum];
[~,S] = sort(S);
pngFiles = pngFile(S);
VideoFile=strcat(ImFolder,'\Video');
writeObj = VideoWriter(VideoFile);
fps= 15;
writeObj.FrameRate = fps;
open(writeObj);
for t= 1:length(pngFiles)
Frame=imread(strcat(ImFolder,'\',pngFiles(t).name));
writeVideo(writeObj,im2frame(Frame));
end
close(writerObj);
Above is the code i have used to compress the video,
Execution Steps:
1) Initially i recorded a video of 10seconds(Resolution - 160*120) size of video 8mb
2) I extracted all the frames from the video and saved in a folder
3) In this step i used above code
After executing above code i selected the directory where all the frames had been stored
4) After execution i got a video file of size 550Kb and of the same length as the original video
So original video is reduced to 550kb from 8mb, code is working good for my project, please help me the analyze the above code, how actually the compression is done by the code.
Thank You
  11 commentaires
ei
ei le 26 Nov 2022
hi please i want to video compression code
Walter Roberson
Walter Roberson le 26 Nov 2022
For video compression,
writeObj = VideoWriter(VideoFile, 'MPEG-4');
now writeVideo the frames.

Connectez-vous pour commenter.

Réponses (3)

Walter Roberson
Walter Roberson le 5 Mai 2014
writerObj = VideoWriter(filename) constructs a VideoWriter object to write video data to an AVI file with Motion JPEG compression.
So it is going to use Motion JPEG in an AVI container.

kushagra parashar
kushagra parashar le 24 Juil 2016
??? Undefined function or method 'VideoWriter' for input arguments of type 'char'.
Error in ==> Untitled at 7 writeObj=VideoWriter(VideoFile);
i am getting this error...what should i do
  1 commentaire
Walter Roberson
Walter Roberson le 24 Juil 2016
VideoWriter was introduced in R2010b. Which MATLAB release are you using?

Connectez-vous pour commenter.


chandra sekhar uppu
chandra sekhar uppu le 27 Mar 2017
Modifié(e) : Walter Roberson le 27 Mar 2017
my video after expansion its size increases from 3 mb to 56 mb and its length increases from 1 min to 2 min the video has slow down.. i have used code
vid=VideoReader('w.mp4');
no=vid.NumberOfFrames;
for i=1:1:no
frames=read(vid,i);
base=sprintf('Image%d.png',i);
ful=fullfile(pwd,base);
imwrite(frames,ful);
im(i)=image(frames);
end
after i got frames i saved in a folder and apply this codee.. but i got 2 min and size of 50 mb
  2 commentaires
Walter Roberson
Walter Roberson le 27 Mar 2017
Notice that the code posted in the Question has
fps= 15;
writeObj.FrameRate = fps;
You should adjust that 15 to the rate you need.
With regards to the size: if you are creating a .mp4 output file then you should consider
writeObj = VideoWriter(VideoFile, 'MPEG-4');
Sliver Gaming
Sliver Gaming le 4 Oct 2021
How do i code it :/

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by