0
이 코드를 사용하여 일부 비디오의 모든 프레임 (각 프레임에는 약 13000 프레임 포함)을 추출하려하지만 모든 프레임을 추출하는 데 너무 오래 걸립니다. 더 빠른 방법이 있습니까?matlab을 사용하여 비디오 프레임을 추출하는 중
filename = 'S.avi';
mov = VideoReader(filename);
% Output folder
outputFolder = fullfile(cd, 'S');
mkdir(outputFolder);
%getting no of frames
framee=100000;
numberOfFrames = mov.NumberOfFrames;
numberOfFramesWritten = 0;
for frame = 1:12525
thisFrame = read(mov, frame);
framee=framee+1;
outputBaseFileName = sprintf('%3.3d.png', framee);
outputFullFileName = fullfile(outputFolder, outputBaseFileName);
imwrite(thisFrame, outputFullFileName, 'png');
% progressIndication = sprintf('Wrote frame %4d of %d.', frame,numberOfFrames);
% disp(progressIndication);
numberOfFramesWritten = numberOfFramesWritten + 1;
end
progressIndication = sprintf('Wrote %d frames to folder "%s"',numberOfFramesWritten, outputFolder);
disp(progressIndication);
Matlab 대신 ffmpeg를 사용할 수 있습니다 ... – Rotem
matlab에 더 최적화 된 함수가 있는지 모르겠습니다. 하지만이 작업은 확실히 병렬 처리가 가능하므로 처리 시간이 다소 단축됩니다. –