The reason why I deal with AVI-Files is the following: I have a program that does any
(long) calculation, and the output is immediately displayed (a function graph). After each
step I can save the current window content as bitmap, and after the calculation I added
all the bitmaps to an AVI (using VFD.EXE). But the bitmaps take a lot of room, (up to some
G-Bytes). Therefore I wanted to create a AVI-File, and add the frames immediately when
they are displayed.
The vfw.h reads like a binary file, and so I have tried to press the sample WriteAVI
into a C++-class. I don’t want to documentate the source code in detail, just add
WriteAVI.cpp and WriteAVI.h to your project and use the class.
Some problems there are still with that class:
- The user will be prompted to select a compression method, it should be choosen
automatically or by parameter. - I create DIB’s (not compressed) for adding to an AVI-stream. The resulting AVI-File is
not compressed even when I choose a compression method. - The time for a frame is fix.
If anybody knows how to fix the problems please send me a mail, so that everybody can
benefit from it.
Then these few lines will create your own AVI-file:
CAVIFile avi("test.avi");
for (int i=0; i<=20; i++)
{
CBitmap bmp;
... // fill with data
avi.AddFrame(bmp);
}
if (avi.IsOK())
AfxMessageBox("AVI created");
else
AfxMessageBox("Error");
You see writing AVI-Files is easy (now).