How can we use 'SPMD' for 'VideoReader'?
Show older comments
hi, I want to do do some video quality reduction fastly, I am using parallel computing , but this error is coming: 'Cannot call READ method after using READFRAME or HASFRAME methods or setting the CURRENTTIME property. Recreate the object to read a frame at a specific frame index'
my code is
videoSrc = VideoReader('rhinos.avi');
% v = VideoWriter('newfile.avi');
% open(v)
spmd
if labindex==1
v = VideoWriter('newfile.avi');
open(v)
for sr = 1:700
huo = read(videoSrc,sr);
RGB2 = imresize(huo, [300 NaN]);
writeVideo(v,RGB2)
% waitbar(sr / videoSrc.NumberOfFrames)
end
close(v)
else
R = rand(4,4);
end
end
Accepted Answer
More Answers (1)
Steven Lord
on 16 Jun 2016
0 votes
Writing video to a file seems like an inherently serial operation since you care about the order in which the frames are written to the file. So I wouldn't try to parallelize this.
Picture watching Star Wars if the Death Star exploded first, then Princess Leia was rescued, then Luke and Obi-Wan met Han Solo in the cantina, then Luke was flying his X-Wing toward the Death Star trench. It doesn't really make sense out of order, does it?
1 Comment
Categories
Find more on Parallel Computing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!