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
Write AVI into a
C++-class. I don't
want to documentate the source code in detail, just add
Write AVI.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).
Download source - 4KB