Filter löschen
Filter löschen

Error using VideoWriter/writeVideo (line 344) Frame must be 434 by 343

162 Ansichten (letzte 30 Tage)
I getting error: Error using VideoWriter/writeVideo (line 344) Frame must be 434 by 343
Error in movie_trial5 (line 22) writeVideo(v,getframe(gca))
Here is my code:
nframes=50;
Frames=moviein(nframes);
x1=linspace(0,L,1000);
x2=linspace(L,2*L,1000);
figure
v = VideoWriter('E:\newfile.avi');
open(v)
for t=1:nframes
y1=sin(x1)*cos(20*t);
y2=sin(2*L-x2)*cos(20*t);
plot (x1,y1,x2,y2,'Linewidth',3)
writeVideo(v,getframe(gca))
end
close(gca)
close(v)
  1 Kommentar
Geoff Hayes
Geoff Hayes am 27 Feb. 2017
Perhaps the frame size is changing on an iteration of your for loop which leads to the error. Try doing
for t=1:nframes
y1=sin(x1)*cos(20*t);
y2=sin(2*L-x2)*cos(20*t);
myFrame = getframe(gca);
size(myFrame.cdata)
writeVideo(v,myFrame)
end
Does the size of the frame ever change?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 27 Feb. 2017
nframes=50;
Frames=moviein(nframes);
x1=linspace(0,L,1000);
x2=linspace(L,2*L,1000);
figure
v = VideoWriter('E:\newfile.avi');
open(v)
ax = gca();
for t=1:nframes
y1=sin(x1)*cos(20*t);
y2=sin(2*L-x2)*cos(20*t);
if t == 1
h = plot(ax, x1, y1, x2, y2, 'Linewidth',3);
set(ax, 'XLimMode', 'manual', 'YLimMode', 'manual');
else
set(h(1), 'YData', y1);
set(h(2), 'YData', y2);
end
drawnow();
writeVideo(v,getframe(ax))
end
close(gca)
close(v)
Besides being more efficient, this avoids the chance that the frame will change size.

Weitere Antworten (1)

venus
venus am 22 Jul. 2019
A simple solution is to keep the first figure with its size (with using hold on) and plot all the data in it.
nframes=50;
Frames=moviein(nframes);
x1=linspace(0,L,1000);
x2=linspace(L,2*L,1000);
myfig = figure();
hold on
v = VideoWriter('E:\newfile.avi');
open(v)
for t=1:nframes
y1=sin(x1)*cos(20*t);
y2=sin(2*L-x2)*cos(20*t);
plot (x1,y1,x2,y2,'Linewidth',3)
writeVideo(v,getframe(gca))
clf(myfig);
end
close(gca)
close(v)

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by