并行处理视频文件

Process video file in parallel

我正在尝试在 Matlab 中读取一个 25 秒长的视频文件并尝试使用 parfor 并行处理它。我试图将它分成 5 个较短的视频,每个视频时长 5 秒。这是代码:-

mov = VideoReader('movie.avi');

parfor i=1:5

    vd(i)=read(mov,[(i-1)*5+1, (i)*5]);
    current_frame=0;
    while hasFrame(vd(i))
        current_frame=current_frame+1;            
        vidFrame = readFrame(vd(i));
        fprintf('%d part, frame no %d\n',i,current_frame);
    end
end

我一直在 parfor 循环的第一行收到这个错误。

Subscripted assignment dimension mismatch

如何将读取函数的内容检索到帧变量 vd

您正在尝试将某些东西 that is not a scalar (read(mov, [start, stop])) 存储到 标量 (vd(i)) 的东西中。您可能希望将 vd 设为元胞数组,以便每个元素都可以包含任意 size/dimension.

的内容
vd{k} = read(mov, [(k-1)*5+1, (k)*5]);