problem with videoWriter not closing
2 views (last 30 days)
Show older comments
Hi folks,
I am creating a video and having trouble with the videoWriter not closing, or taking a very long time to close.
May I please ask how to fix this? The code is as follows:
writerObj = VideoWriter(mainVideoName);
writerObj.FrameRate = 10;
open(writerObj);
for j = 1 : numMainImages
mainImg = imread([imageMainFolder imageMainFiles(j).name]);
mainImg = mainImg(:,:,1:3);
cropImg = imread([cropsFolder cropFiles(j).name]);
threshImg = im2uint8(imread([threshFolder threshFiles(j).name]));
h = figure;
h(1) = subplot(2, 2, 1);
image(cropImg, "Parent", h(1));
h(2) = subplot(2, 2, 2);
image(threshImg, "Parent", h(2));
h(3) = subplot(2, 2, 3:4);
image(mainImg, "Parent", h(3));
myText = ['Temperature = ', num2str(myTemp(j)), '^{o}C'];
annotation('textbox', [0.4, 0.55, 0,0], 'string', myText, "FitBoxToText","on");
h(2).Colormap = gray(256);
for k = 1:3
h(k).XAxis.Visible = "off";
h(k).YAxis.Visible = 'off';
end
thisFrame = getframe(gca);
writeVideo(writerObj, thisFrame);
end
close(writerObj);
5 Comments
Jan
on 24 Mar 2022
@Teshan Rezel: Do not remove this question. Simply ask your new question and insert a link to this thread to avoid confusions. You can add a linl to the new question here also. Then everything is fine.
Accepted Answer
yanqi liu
on 15 Mar 2022
yes,sir,may be use image replace frame to test,such as
writerObj = VideoWriter(mainVideoName);
writerObj.FrameRate = 10;
open(writerObj);
for j = 1 : numMainImages
mainImg = imread([imageMainFolder imageMainFiles(j).name]);
mainImg = mainImg(:,:,1:3);
cropImg = imread([cropsFolder cropFiles(j).name]);
threshImg = im2uint8(imread([threshFolder threshFiles(j).name]));
h = figure;
h(1) = subplot(2, 2, 1);
image(cropImg, "Parent", h(1));
h(2) = subplot(2, 2, 2);
image(threshImg, "Parent", h(2));
h(3) = subplot(2, 2, 3:4);
image(mainImg, "Parent", h(3));
myText = ['Temperature = ', num2str(myTemp(j)), '^{o}C'];
annotation('textbox', [0.4, 0.55, 0,0], 'string', myText, "FitBoxToText","on");
h(2).Colormap = gray(256);
for k = 1:3
h(k).XAxis.Visible = "off";
h(k).YAxis.Visible = 'off';
end
thisFrame = frame2im(getframe(gca));
writeVideo(writerObj, thisFrame);
end
close(writerObj);
2 Comments
Rik
on 23 Mar 2022
I haven't read the rest of the thread, but can you explain what is different between what you need and what this suggestion does? Yanqi might be able to help you if you make it clear what should be different.
In general users with sufficient reputation points to delete posts, are not fans of doing that for legitimate content.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!