HandyAvi Software
A Handy AVI File Utility
(And its Free...)

For an advanced version of HandyAvi with MANY new features please visit:
http://www.AZcendant.com

Introduction

I used a ToUcam webcam to shoot AVI files of Mars in 2003 during its close approach.  I would shoot 1000 frames and process the results with RegiStax.  The size of the frames I was capturing were 640X480.  Mars filled only one fifth of the frame at most.  RegiStax handled the frames but, because of the size of the frames, it ran more slowly than it would have had the frames been smaller.  Also, it appeared to examine all frames during its operation.  I was unable to tell if it was able to sort the frames and simply deal with a subset of the frames comprising the "best" frames.  Turns out that determining the "best" frames is an interesting problem in itself.  I also was faced with saving the Mars AVI files that I made.  I have something like 75 GigaBytes of Mars AVI files stored now on DVD ROM.  HandyAvi would have allowed me to crop those files and store the planetary images in 15 GigaBytes.  I also could have selected the 100 best images from each AVI file, created  new AVI files and submitted those files to RegiStax.  RegiStax would then have run very quickly.  I am looking forward now to taking images of Saturn and Jupiter this winter and using HandyAvi and RegiStax.

I wrote HandyAvi to do the AVI file pre-processing.  It allows me to crop the images, select a bunch of the "best" images (or save all of the images), and store them in a new AVI file for long-term storage or subsequent processing by RegStax. 

HandyAvi currently allows you to:

  1. Read AVI files (including some of  the newer "compressed" AVI files.)
  2. Crop and save cropped AVI files
  3. View any frame of an AVI file
  4. Save any selected AVI file frame as a bmp file
  5. Sort AVI file frames according to image quality
  6. Select the image quality criterion (to minimize image noise effects)
  7. View the image quality control’s effect on an image to help choose its value
  8. Save selected frames of an AVI file into a new AVI file
  9. Handle some newer compressed AVI files if you have DirectX installed
HandyAvi has a help file with a tutorial.  Please see the help file.

Example:  Best and worst images as determined automatically by HandyAvi from a 1000 frame AVI clip taken on 25 Dec 03:

       
                                Best                                                                             Worst
   

Download free version:  SetupHandyAvi1.7.exe (3302 KB) 


Notes:

Version 1.7 - 22 Feb 04

1.  Frame selection was still selection on "selected" frames instead of "checked" frames.  Corrected.

2.  Discovered and corrected potential problem with single-frame AVI files read with DirectX.

Version 1.6 - 22 Feb 04

1.  Revised behavior of Frame Selector item selection subsystem.  Please see the tutorial in the help file to see how to select/unselect blocks of items.

2.  Deinterlacing preference setting was not being recalled properly when the program was invoked.  Corrected.

Version 1.5 - 24 Jan 04

1.  This version will work for "standard" AVI files whether or not you have DirectX installed.  It determines whether DirectX is available and uses DirectX methodology if it is present.  If it is not present, it reverts to using an older methodology for handling AVI files.  For newer AVI files containing compressed images, you will need to have DirectX version 9 or better installed.  (See http://www.microsoft.com/downloads/ to obtain a current version of DirectX.   It is free.)  No one has yet sent me any AVI sample files that cannot be handled by the current version of HandyAvi with DirectX installed.  Please do send me one if you have one...

2.  Added support for deinterlacing interlaced images.  The ToUcam does not produce interlaced images but there are some cameras out there that do.  (Note cautions in the HandyAvi help file under the Tutorials/Preferences:  Interlaced Video Images.) 

3.  Improved rectangle selection box algorithm so that the rectangle can be created by setting any corner and dragging to any other corner.  (Previously, it was requiring the upper left hand corner to be set and then the lower right-hand corner.)

Version 1.4 - 18 Jan 04

1.  Added support for reading compressed AVI files.  This should allow you to convert files to a "standard" uncompressed form so they can be read with other software programs such as Registax.   I totally reworked the AVI file-read subsystems to allow these "other" types of AVI files to be read.  HandyAvi still outputs "standard" AVI files.   Much thanks to "Russ" who kindly responded to my request for one of these "other" types of AVI files to use in testing.  HandyAvi will now read Russ's files.  No one else responded so I hope the changes I made will handle all common "other" types of AVI files...

2.  General cleanup of file requesters, error handling for illegal or ill-formed files, etc.  Program should now be a little more "robust".  However, I am leaving Version 1.3 out there just in case.  I made massive changes to the subsystems involved in reading AVI files.

3.  DirectX Dependency - This version, unlike previous versions, requires that the Microsoft DirectX system be present on your machine when you try to read an AVI file.  DirectX is normally present within Windows operating systems such as Windows 2000 and Windows XP.  HandyAvi was compiled with DirectX 9.0. You  can obtain DirectX from  http://www.microsoft.com/downloads/.  The download there will update your system to the current version of DirectX.  (I had thought when I put this version out that HandyAvi was completely self-contained.  Then I learned of its dependency on DirectX.  Time permitting, I will modify HandyAvi so that if you do not have DirectX, it will revert to another method of handling AVI files that does not depend on DirectX.  I fear at the moment that HandyAvi might shut down if you do not have a current version of DirectX installed.  I did not see that behavior on my machine since I, of course as part of my software development environment, have a current version of DirectX installed on my machine.)  Note:  I have run HandyAvi on a machine with DirectX 8.1 and it worked for "standard" AVI files but would not read the compressed file I've been using as a test case.  Compressed files will require DirectX 9.  When I tried HandyAvi in a Windows 98 SE environment with DirectX 6, nothing worked...


Version 1.3 - 09 Jan 04   
(This version does not require Microsoft's DirectX)

Received a report that HandyAvi was changing the file association of .avi files to "HandyAvi.document".  Traced to a bug in Microsoft's Visual Studio 2003 rendition of the MFC routine RegisterShellFileTypes where they changed an "= =" to a "!=" in a line of code.  The Microsoft code used to say, in effect:  "if the file type your program is using is registered to you, go ahead and update the file associations."  The code now says, in effect:  "if the file type your program is using is NOT registered to you, go ahead and update the file associations."  Further testing shows that this was happening every time the program was run.  Calling RegisterShellFileTypes is part of the Microsoft generated code.  I commented it out so no file association operations whatsoever should now be performed by HandyAvi.  Your existing file associations should now be safe and HandyAvi should no longer change them.  Microsoft has been notified regarding this bug in their MFC code and presumably will correct it at some point in the future.  In the meantime, any program compiled with Visual Studio 2003 is likely to have this problem...


Version 1.2 - 11 Dec 03

Received Email that the "File Save" dialog window for saving .bmp files was actually a file open window.  The bmp files were being saved with a default suffix of .avi.  They were actually .bmp files but they really should have the .bmp suffix.  Corrected these problems.

Version 1.1 - 9 Dec 03:
Received a report that "MFC70.DLL" could not be found.  Immediately realized I had not set the compiler switch "Use MFC in a static library".  Unfortunately the default is to not set the switch so the program looks for this DLL and others on your machine.  If you were lucky and had this DLL already then everything was cool.  If you didn't, then the program would not execute.  I changed the compiler switch, recompiled, and posted version 1.1 which should now run everywhere since it is entirely self-contained.  Sorry for any inconvenience...

Version 1.0 - 7 Dec 03:
I was surprised to learn that nearly all AVI file-handling software cannot handle AVI files bigger than approximately 2 GigaBytes.  I see that the ToUcam camera is capable of creating larger files but, so far, I don't see a way to handle them in HandyAvi.  So far, this has not been a problem for me...  Let me know if you have a solution that you would be willing to share.

Copyright 2003 Howard C. Anderson
RETURN TO HOME PAGE