writeVideo records double the first frame and doesn't play last frame in VLS
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everyone,
I'm using writeVideo to save a simple animation. However I encounter two annoying problems: for one, the first frame is shown for two seconds in VLC, for a frame rate of 1 which works properly for other frames. Secondly, VLC stops playback at the second-to-last frame. I can manually drag it to the last frame, but that's not the point. Any ideas? See code below.
vidcounter = counter();
vid = VideoWriter("visualization test.mp4","MPEG-4");
vid.FrameRate = 1;
open(vid)
fig = figure;
fig.Position = [0 60 800 600];
tlo = tiledlayout(2,2,"TileSpacing","compact",Parent=fig);
set(fig,"Visible","on")
for CN = 1:5 % Loop through folders (Linewidths)
p1 = nexttile(tlo, 1);
surf(rand(5),'EdgeColor','none')
p2 = nexttile(tlo, 2);
surf(rand(5),'EdgeColor','none')
p3 = nexttile(tlo, 3);
surf(rand(5),'EdgeColor','none')
p4 = nexttile(tlo, 4);
surf(rand(5),'EdgeColor','none')
frame = getframe(fig)
writeVideo(vid, frame)
vidcounter.countUp;
end
% writeVideo(vid, frame) % I can circumvent the second issue by duplicating
% the last frame, but it's not a real solution
close(vid)
2 commentaires
Gayathri
le 23 Déc 2024
The video plays correctly in other video players, so the provided code appears to be fine.
Réponses (0)
Voir également
Catégories
En savoir plus sur Audio and Video Data dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!