AVI animation creator, AVI dumper/patcher

0. Contents

   1. Purpose
   2. Usage
   3. Povray example
   4. Limits
   5. TGA is not bad (tip!)
   6. Nonlimits
   7. Under development
      7.1. Streamability
      7.2. Multiple stdins
   8. To do
   9. Copying
   10. Contribute!
   11. Requirements
   12. Installation
   13. Downloading

1. Purpose

Creates an unindexed raw AVI from a list or stream of uncompressed Targa files (the ones generated by POV-Ray are accepted perfectly).

After having a raw AVI file generated by animmaker, you can encode it to DivX with MPlayer, like this:

mencoder foo.avi -o foo2.avi -divx4opts br=800:q=5:key=25
Or if you prefer libavcodec instead of divx4linux and two-pass encoding (enhances the quality/size ratio), you can do it like this:
mencoder foo.avi -o foo2.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800:vhq:vpass=1
mencoder foo.avi -o foo2.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800:vhq:vpass=2
Refer to the mencoder documentation to see how you can add audio, use different codecs, tune the compression parameters etc. Note that not all codecs support two pass encoding, which is completely optional anyway.

From Arpi <arpi@...>
Date: Mon, 11 Nov 2002 15:32:59 +0100
Subject: animmaker+mencoder
did you notice that mencoder can encode from TGA sequence directly? :)
('-mf on *.tga' or even '-mf on file%03d.tga' too)
Oops. Didn't know that :P
But since I implemented the tga streaming, this program regained its usefulness.

2. Usage

This is animmaker-0.5.0
Copyright (C) 1992,2006 Bisqwit (http://iki.fi/bisqwit/)

Usage: animmaker [<option> [<...>]] <file> [<...>]

This software assumes the files are uncompressed rgb24 tga files.

  -h, --help             This help.
  -V, --version          Displays version information.
  -o, --outfile <file>   Specify the output file.
  -f, --fps <number>     Frame rate (default: 25).
  -X, --xflip            Flip horizontally (not default)
  -Y, --yflip            Flip vertically (default)
  -@, --list <file>      Read input file names from the given file.
  -a, --audio <file>     Specify raw audio source (can be a pipe).
  -u, --buffer <integer> Specify the output buffer size in kB.
  -n, --mono             Audio is mono (default: stereo).
  -b, --byte             Audio is 8-bit (default: 16-bit).
  -r, --rate <rate>      Specify audio rate in hertz (default: 44100).
  -s, --audiochunksize <s> Specify audio spacing in seconds.

You can also give the tga files in stdin, example:
 cat *.tga | animmaker -ogruu.avi -

No warranty whatsoever.
The program uses the colour depth and pixel resolution of the first image in the sequence (autodetected) as the parameters of the whole animation.

3. Povray example

This is an example of making an animation in povray as DivX.
$ cat >animmakerdemo.pov <<EOF
plane { y,-1 pigment { checker rgb 1, rgb .5 } }
sphere { 0,1 pigment { rgbf .8 } finish { specular 0.3 ambient 0.3 } interior { ior 1.3 } }
camera { location x*10 look_at 0 angle 35            rotate y*360*clock    }
light_source { 0, 1 fade_power 2 fade_distance 10
               looks_like { sphere { 0,0.2 pigment { rgb 1 } finish { ambient 1 } } }
               translate <6,1,0> rotate y*360*clock*-4
$ povray +w320 +h200 +kff300 +ft +ianimmakerdemo.pov
$ animmaker -f20 -oanimmakerdemo.avi animmakerdemo???.tga
$ mencoder animmakerdemo.avi -o animmakerdemo1.avi -ovc lavc -lavcopts vbitrate=400:vpass=1
$ mencoder animmakerdemo.avi -o animmakerdemo2.avi -ovc lavc -lavcopts vbitrate=400:vpass=2
(See options for divx4linux in the previous section if you don't like libavcodec)
Result is a nice looping animation (link removed due to bandwidth concerns).
(Time for render total: 357 seconds; time for encode total: 239 seconds.)

If you wish to include audio with your animation, you can either use --audio option in animmaker or add -audiofile <filename> to your mencoder commandlines.
See the manual pages of each programs regarding the use of them.

4. Limits

  • All input tga files must be the same resolution.
  • Only uncompressed bgr24/bgr16/bgr15 tga files are accepted.
  • The resulting avi will not contain index.
  • Resulting avi may not be bigger than 2 GB.
  • Only raw audio is accepted, and the soundtrack can only have 1 or 2 channels and can only be 8-bit or 16-bit.

5. TGA is not bad (tip!)

If you have jpeg files instead of tga, no problem!
Have ImageMagick installed, and do this:
for s in *.jpeg;do convert ./"$s" tmp.tga;cat tmp.tga;done | animmaker -Y -o tmp.avi -

This will produce an avi from jpeg files.

6. Nonlimits

  • Any frame rate can be selected between 0.00023 and 1000000 fps.
  • Any number of frames is accepted (though the OS may limit the number of parameters).
  • tga files can be read from stdin too.

7. Under development

This is my program! I make what I want! :)
So these features are mostly for my own use, but it might be worth documenting them. Here goes...

7.1. Streamability

I'm working on streamability.
This works:
cat *.tga \
| animmaker -o- -f25 - \
| mencoder - -o tmptmp.avi -ovc lavc -lavcopts vbitrate=400:vhq
What use can this be for?
Well, now programmers have a nice way to produce compressed video clips by simply popen'ing that kind of command.
Now, as mencoder doesn't support named pipes or multiple stdins, see the next item.

7.2. Multiple stdins

So if you want to give the tga stream and audio both from stdin, try this:
cat *.tga | animmaker -otest.avi -f25 - '-a-#3' 3<test.raw
Okay, the syntax isn't pretty, but it works :)
-a-#3 here means "read audio from file #3", and 3<test.raw tells the shell that test.raw should be redirected into file #3 of animmaker.
The same syntax also works for the tga stream fd and output filename.
What use can this be for?
Well, you can use this feature to stream audio and video simultaneously, if you are a developer.

8. To do

These features might be implemented some day:
  • Runtime conversion of any image format (using ImageMagick, obsoletes the requirement of tga files)
  • libavcodec support
  • mp3 audio input support

9. Copying

animmaker has been written by Joel Yliluoma, a.k.a. Bisqwit,
and is distributed under the terms of the General Public License (GPL).
Some features contributed by Warp.

If you happen to see this program useful for you, I'd appreciate if you tell me :) Perhaps it would motivate me to enhance the program.

10. Contribute!

You can contribute!
  • Add new features, fix bugs! Modify the program (the source code!) and send me the patches.
  • If you have a nice short (6-8 lines) povray animation scene to replace that crappy one of mine here on this page, you can send it to me too :)
  • Tell me what you do with this program. I am interested.
My email address:3Ay7Joels8hgdce.v Ylial@u/1frpnluomre@j@8ea <biewpi@sqwie4@t@ikqdmi.fi>

11. Requirements

GNU make is probably required.

12. Installation

$ make
$ su
# make install
If you do not want to install libargh (included in the archive), do not use "make install" and edit Makefile and enable the STATIC linking instead of DYNAMIC.

13. Downloading

Downloading help

  • Do not download everything - you only need one file (newest version for your platform)!
  • Do not use download accelerators or you will be banned from this server before your download is complete!

Date (Y-md-Hi) acc        Size Name                
2006-0505-1143 r--       35199 animmaker-0.5.1.tar.bz2
2006-0505-1143 r--       36130 animmaker-0.5.1.tar.gz
2006-0505-1143 r--        2798 patch-animmaker-0.5.0-0.5.1.bz2
2006-0505-1143 r--        2618 patch-animmaker-0.5.0-0.5.1.gz
2006-0221-1950 r--       35010 animmaker-0.5.0.tar.bz2
2006-0221-1950 r--       35717 animmaker-0.5.0.tar.gz
2006-0221-1950 r--       26194 patch-animmaker-
2006-0221-1950 r--       28025 patch-animmaker-
2006-0221-1950 r--       28390 patch-animmaker-0.4.3-0.5.0.bz2
2006-0221-1950 r--       31194 patch-animmaker-0.4.3-0.5.0.gz
2006-0221-1945 r--       28201 patch-animmaker-0.4.3-0.4.5.bz2
2006-0221-1945 r--       30918 patch-animmaker-0.4.3-0.4.5.gz
2006-0221-1948 r--       28190 patch-animmaker-0.4.3-0.4.4.bz2
2006-0221-1948 r--       30940 patch-animmaker-0.4.3-0.4.4.gz
2004-0503-0129 r--       40620 animmaker-
2004-0503-0129 r--        5878 patch-animmaker-
2004-1124-2147 r--       14558 patch-animmaker-
2003-1201-2107 r--       40627 animmaker-
2003-1201-2107 r--        2184 patch-animmaker-0.4.3-
2003-1129-0120 r--       40618 animmaker-0.4.3.tar.bz2
2003-1129-0120 r--       17734 patch-animmaker-0.4.2-0.4.3.bz2
2003-0101-2150 r--       35443 animmaker-0.4.2pre1.tar.bz2
2003-0101-2136 r--          14 patch-animmaker-
2003-0101-2136 r--        3066 patch-animmaker-0.4.1-0.4.2.pre.1.bz2
2003-0618-1748 r--       39186 animmaker-
2003-0618-1748 r--        3359 patch-animmaker-
2003-0415-1209 r--       38793 animmaker-
2003-0415-1209 r--        2521 patch-animmaker-
2003-0407-0402 r--       38554 animmaker-
2003-0407-0402 r--        4200 patch-animmaker-
2003-0407-0237 r--       38215 animmaker-
2003-0407-0237 r--       11502 patch-animmaker-
2003-0406-1927 r--        6650 patch-animmaker-0.4.2-
2003-0109-2104 r--       36286 animmaker-0.4.2.tar.bz2
2003-0109-2104 r--       18238 patch-animmaker-
2003-0109-2104 r--       10955 patch-animmaker-0.4.1-0.4.2.bz2
2002-1111-1643 r--       34026 animmaker-
2002-1111-1643 r--        2955 patch-animmaker-0.4.1-
2002-1111-1523 r--       33779 animmaker-0.4.1.tar.bz2
2002-1111-1523 r--        9268 patch-animmaker-0.4.0-0.4.1.bz2
2002-0825-2250 r--        7955 patch-animmaker-0.3.0-0.4.0.sh.bz2
2002-0825-2250 r--       34681 animmaker-0.4.0.tar.bz2
2002-0825-2250 r--        7636 patch-animmaker-0.3.0-0.4.0.bz2
2002-0825-0554 r--        8134 patch-animmaker-0.2.7-0.3.0.sh.bz2
2002-0825-0554 r--       32289 animmaker-0.3.0.tar.bz2
2002-0825-0554 r--        7991 patch-animmaker-0.2.7-0.3.0.bz2
2002-0813-1358 r--       28679 animmaker-0.2.7.tar.bz2
2002-0813-1358 r--        5161 patch-animmaker-0.2.6-0.2.7.bz2
2002-0812-1733 r--       27395 animmaker-0.2.6.tar.bz2
2002-0812-1733 r--        6166 patch-animmaker-0.2.5-0.2.6.bz2
2002-0514-1731 r--       26234 animmaker-0.2.5.tar.bz2
2002-0514-1731 r--        5875 patch-animmaker-0.2.4-0.2.5.bz2
2002-0504-2340 r--       23407 animmaker-0.2.4.tar.bz2
2002-0504-2340 r--        1099 patch-animmaker-0.2.3-0.2.4.bz2
2002-0504-2245 r--       23278 animmaker-0.2.3.tar.bz2
2002-0504-2245 r--        3511 patch-animmaker-0.2.2-0.2.3.bz2
2002-0417-0505 r--       23314 animmaker-0.2.2.tar.bz2
2002-0417-0505 r--        1453 patch-animmaker-0.2.1-0.2.2.bz2
2002-0417-0413 r--       23155 animmaker-0.2.1.tar.bz2
2002-0417-0413 r--         779 patch-animmaker-0.2.0-0.2.1.bz2
2002-0417-0402 r--       24068 animmaker-0.2.0.tar.gz
2002-0417-0402 r--        7364 patch-animmaker-0.1.1-0.2.0.bz2
2002-0417-0354 r--       22760 animmaker-0.1.1.tar.bz2
2002-0417-0354 r--       15492 patch-animmaker-0.1.0-0.1.1.bz2
2002-0417-0333 r--       10894 animmaker-0.1.0.tar.bz2
Back to the source directory index at Bisqwit's homepage