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

조회 수: 6 (최근 30일)
Vitek Stepien
Vitek Stepien 2024년 12월 16일
댓글: Vitek Stepien 2024년 12월 30일
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
Gayathri
Gayathri 2024년 12월 23일
The video plays correctly in other video players, so the provided code appears to be fine.
Vitek Stepien
Vitek Stepien 2024년 12월 30일
Thanks for the feedback @Gayathri, I confess I didn't check any other players.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Audio and Video Data에 대해 자세히 알아보기

제품


릴리스

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by