该MATLAB代码实现了视频分辨率转换功能,将输入视频重新采样至2160×3840分辨率。程序首先读取原始视频信息,创建新的MPEG-4格式输出文件。通过循环逐帧处理:读取每帧图像后使用imresize函数调整分辨率,并写入新视频文件。处理过程中显示进度条,完成后关闭视频文件和进度条。该代码适用于需要批量转换视频分辨率的场景,保持原始帧率不变。
matlab
obj = VideoReader('35658336990-1-192.mp4');%原始视频
numFrames = obj.NumberOfFrames;% 帧的总数
%视频压缩
newPath = obj.Path;
newName = ['UD_',obj.Name];
newfps = obj.FrameRate;
newObj = VideoWriter([newPath,'\',newName], 'MPEG-4'); %创建一个avi视频文件对象,开始时其为空
newObj.FrameRate=newfps;
open(newObj);
hwait=waitbar(0,'正在转换视频分辨率...');
for i = 1:numFrames
frame = read(obj,i);
newFrame = imresize(frame,[2160 3840]);
if mod(i,numFrames/100) == 0
waitbar(i/numFrames,hwait);
end
%写视频
writeVideo(newObj,newFrame);
end
close(newObj);
close(hwait);