Create new Audio/Video Interleaved (AVI) file

    Note:   avifile has been removed. Use VideoWriter instead.


aviobj = avifile(filename)
avifile(filename, ParameterName, ParameterValue)


aviobj = avifile(filename) creates an avifile object, giving it the name specified in filename, using default values for all avifile object properties. If filename does not include an extension, avifile appends .avi to the file name. AVI is a file format for storing audio and video data.

avifile returns a handle to an AVI file object aviobj. Use this object to refer to the AVI file in other functions. An AVI file object supports properties and methods that control aspects of the AVI file created.

aviobj = avifile(filename, ParameterName, ParameterValue) accepts one or more comma-separated parameter name/value pairs. Set parameter values before any calls to addframe. The following table lists the available parameters and values.

Parameter Name




An m-by-3 matrix defining the colormap for indexed AVI movies, where m is no more than 256 (236 for Indeo compression).

Valid only when the 'compression' is 'MSVC', 'RLE', or 'None'.

No default


A text string specifying the compression codec to use. To create an uncompressed file, specify a value of 'None'.

On UNIX® operating systems, the only valid value is 'None'.

On Windows® systems, valid values include:

  • 'MSVC'

  • 'RLE'

  • 'Cinepak' on 32-bit systems.

  • 'Indeo3' or 'Indeo5' on 32-bit Windows XP systems.

Alternatively, specify a custom compression codec on Windows systems using the four-character code that identifies the codec (typically included in the codec documentation). If MATLAB® cannot find the specified codec, it returns an error.

'Indeo5' on Windows systems.

'None' on UNIX systems.


A scalar value specifying the speed of the AVI movie in frames per second (fps).

15 fps


For compressors that support temporal compression, the number of key frames per second.

2.1429 key frames per second


A number from 0 through 100. Higher quality numbers result in higher video quality and larger file sizes. Lower quality numbers result in lower video quality and smaller file sizes.

Valid only for compressed movies.



A descriptive name for the video stream, no more than 64 characters.



Create the AVI file example.avi:

aviobj = avifile('example.avi','compression','None');

t = linspace(0,2.5*pi,40);
fact = 10*sin(t);
[x,y,z] = peaks;
for k=1:length(fact)
    h = surf(x,y,fact(k)*z);
    axis([-3 3 -3 3 -80 80])
    axis off
    caxis([-90 90])

    F = getframe(fig);
    aviobj = addframe(aviobj,F);
aviobj = close(aviobj);


Use VideoWriter rather than avifile to create AVI files. VideoWriter supports files larger than 2 GB, and by default, creates files with Motion JPEG compression, which all platforms support.

More About

collapse all


  • On some Windows systems, including all 64-bit systems, the default Indeo® 5 codec is not available. MATLAB issues a warning, and creates an uncompressed file.

  • On 32-bit Windows XP systems, MATLAB can create AVI files compressed with Indeo 3 and Indeo 5 codecs. However, Microsoft® Windows XP Service Pack 3 (SP3) with Security Update 954157 disables playback of Indeo 3 and Indeo 5 codecs in Windows Media® Player and Internet Explorer®. Consider specifying a compression value of 'None'.

  • avifile cannot write files larger than 2 GB.

  • You can use dot notation to set avifile object properties. For example, set the quality property to 100:

    aviobj = avifile('myavifile');
    aviobj.quality = 100;

    All property names of an avifile object are the same as the parameter names, except for the keyframe parameter, which corresponds to the KeyFramePerSec property. For example, change keyframe to 2.5:

    aviobj.KeyFramePerSec = 2.5;

Introduced before R2006a

Was this topic helpful?