while hasFrame(reader)
img = readFrame(reader);
writeVideo(writer,img);
end
close(writer);
Create AVI File from Animation
Write a sequence of frames to a compressed AVI file by generating a sequence
of frames, creating a video object for the file to write to, and then writing the frames to
the video file.
Setup the axes and figure properties to generate frames for the video.
Z = peaks;
surf(Z);
axis tightmanual
set(gca,'nextplot','replacechildren');
Create a video writer object for the output video file and open the object for
writing.
v = VideoWriter('peaks.avi');
open(v);
Generate a set of frames, get the frame from the figure, and then write each frame to
the file.
for k = 1:20
surf(sin(2*pi*k/20)*Z,Z)
frame = getframe(gcf);
writeVideo(v,frame);
end
close(v);
Input VideoWriter object. Use VideoWriter to create the
object.
img — Values representing grayscale or RGB color images 2-D array | 3-D array | 4-D array
Values representing grayscale or RGB color images, specified
as a 2-D, 3-D, or 4-D array:
For a single grayscale, monochrome, or indexed image, img must
be two dimensional: height-by-width
For a single truecolor (RGB) image, img is
three dimensional: height-by-width-by-3.
For a sequence of grayscale images, img is
four dimensional:. height-by-width-by-1-by-frames. The height and
width must be consistent for all frames within a file.
For a sequence of RGB images, img is
four dimensional: height-by-width-by-3-by-frames. The height and width
must be consistent for all frames within a file.
When creating AVI or MPEG-4 files:
img is an array of single, double,
or uint8 values representing one or more grayscale
or RGB color images, which writeVideo writes as
one or more RGB video frames.
Data of type single or double must
be in the range [0,1], except when writing indexed
AVI files.
When creating Motion JPEG 2000 files:
img is an array of uint8, int8, uint16,
or int16 values representing one or more monochrome
or RGB color images.
Data Types: single | double | int8 | int16 | uint8 | uint16
frame — Frame data 1-by-1 structure array | 1-by-F array of structures
Frame data, specified as a 1-by-1 structure array representing
a single frame, or a 1-by-F array of structures
representing multiple frames. Each frame contains two fields: cdata and colormap.
The frame array is typically returned by the getframe function.
If colormap is not empty, then each element
of cdata should be a 2-D (height-by-width) array.
The height and width must be consistent for all frames within a file.
colormap can contain a maximum of 256 entries.
Each element of colormap must be in the range [0,1].
When you create a VideoWriter object. the profile input
and the size of cdata determine how writeVideo uses frame.
profile of VideoWriter object
Size of each element of cdata
Behavior of writeVideo
'Indexed AVI'
2-D (height-by-width)
Use frame as provided.
'Grayscale AVI'
2-D (height-by-width)
Use frame as provided. colormap should be
empty.
All other profiles
2-D (height-by-width)
Construct RGB image frames using the colormap field
3-D (height-by-width-by-3)
Ignore the colormap field. Construct RGB
image frames using the cdata field
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.