writeVideo records double the first frame and doesn't play last frame in VLS

4 vues (au cours des 30 derniers jours)
Vitek Stepien
Vitek Stepien le 16 Déc 2024
Commenté : Vitek Stepien le 30 Déc 2024
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
Gayathri le 23 Déc 2024
The video plays correctly in other video players, so the provided code appears to be fine.
Vitek Stepien
Vitek Stepien le 30 Déc 2024
Thanks for the feedback @Gayathri, I confess I didn't check any other players.

Connectez-vous pour commenter.

Réponses (0)

Produits


Version

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by