wwj1700002514 2022-09-09 15:45 采纳率: 100%
浏览 60
已结题

为何用matlab将视频每帧提取出来再合成,新的视频文件会变大?

问题遇到的现象和发生背景

为何用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,文件还是变大了。

我想要达到的结果

如何使输出的视频文件大小不变。

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 9月9日