问题遇到的现象和发生背景
为何用matlab将视频每帧提取出来,再合成,新的视频文件会变大?如何使视频文件大小不变?并且文件格式从mp4变为avi,尽管输出视频的代码写为VideoWriter('视频',MPEG-4'),文件依旧变大并且打不开。
问题相关代码,请勿粘贴截图
obj = VideoReader('text.mp4');%输入视频位置
rateFrames = obj.FrameRate;
numFrames = obj.NumberOfFrames;% 帧的总数
for o=1:numFrames
frame = read(obj,o);
imwrite(frame,strcat('tqz',num2str(o),'.jpg'),'jpg');% 保存帧
end
writerObj=VideoWriter('text_1');
open(writerObj);
for s=1:numFrames
frame=imread(strcat('tqz',num2str(s),'.jpg'),'jpg');
writeVideo(writerObj,frame);
end
close(writerObj);
writerObj.FrameRate=rateFrames;
运行结果及报错内容
运行出来的文件格式是.avi,经过视频转换器将格式转为mp4,文件还是变大了。
我想要达到的结果
如何使输出的视频文件大小不变。