AviJoin 0.1.0.1

AviJoin is a small program that tries to provide all the functions of Peck's Power Join and some of the functions from VirtualDub. The interface is inspired from these two programs. I've also taken some code from VirtualDub. As it's main purpose is to join acquired clips from TV/VCR sources, it'll not have any support to change/mix/add audio tracks and it'll accept only AVI files that are already having an audio stream.

AviJoin is developed as a Main Form on top of wich different child forms are displayed. You can select any of these forms by using the Left-Top buttons.

Adding & Removing Files

The FilesForm lets you select the AVI you want to join and the order in which they are joined. You can preview the input AVI (from the list box from the left corner) or any of the already selected AVI.

Here you can also select the order of the AVIs.

Managing Files

The Timeline Form

The TimelineForm lets you select what segment of an individual AVI you want to use.

The top track bar lets you navigate in the current avi and select the range of frames. Upper triangles and the blue bar shows start and stop of this range. Lower ones show the position of cut frames.

The bottom track bar lets navigate in the final avi. The uper triangles show were the constituent avis start. The lower triangles show were the final avi is going to be cut. This bar is always blue: this means that all frames visible by navigating with this bar are going to be saved.

Buttons:
[Top] Start/Stop the playing of the current avi. You can play all frames, not only the selected range.
[Bottom] Start/Stop the playing of the final avi. Actually not the final, but the selected frames from all files.
[Top] Jump to first frame of the current avi.
[Bottom] Jump to the first frame of the final avi.
[Top] Jump to last frame of the current avi.
[Bottom] Jump to the last frame of the final avi.
[Top] Jump to prev frame of the current avi.
[Bottom] Jump to the prev frame of the final avi.
[Top] Jump to next frame of the current avi.
[Bottom] Jump to the next frame of the final avi.
[Top] Jump to prev key frame of the current avi.
[Bottom] Jump to the prev key frame of the current avi. If needed, swicth to previous avi and search there for a key frame.
[Top] Jump to next key frame of the current avi.
[Bottom] Jump to the prev key frame of the current avi. If needed, swicth to next avi and search there for a key frame.
[Top only] Jump to the start of the selected region of the current file.
[Top only] Jump to the end of the selected region of the current file.
[Top only] Set the start of the selected region of the current file.
[Top only] Set the end of the selected region of the current file.
[Bottom only] Jump to the begining of the selected frames from the current avi. If already there, jump to the begining of the selected frames from the previous avi.
[Bottom only] Jump to the begining of the selected frames from the next avi.
[Bottom only] Set or uset the cuts. Cuts are frames were the final avi is going to be splited. This can be useful if the final avi is too big. The splits are represented as triangles in the lower part of the bars. If a cut is outside the selected range, it is shown only in the top bar.
[Bottom only] Jumps to previous split from the bottom bar.
[Bottom only] Jumps to next split from the bottom bar.

FormTimeline Screenshot

Scalling & Resizing

The ScaleCropForm allows selection of the final frame size. Scalling and cropping is done in two steps: first we scale, then we crop. If we impose some constraints for the cropp size and the size is bigger than the size given by scaling, then black borders are going to be added.

The navigation buttons from bottom will let you make scalling and cropping on a frame of your choice. The zoom combo will modify only what you are viewing: the avi size is not affected by this.

In the working area, depending of your setting you may see:

Scaling & Cropping

The Audio Compressor Selector

With this form you'll be able to select the Audio Compressor (codec). The form looks like a combination between VirtualDub's Audio->Compression and Audio->Interleaving.

If the current project contains at least an AVI, then you'll be able to view all formats available or only those compatible with the AVIs from the project.

Some improvements over the VirtualDub's Audio->Compression are the separation of format atributes in columns and the ability to sort them. This is a bit hackish and it requires a bit more time than the original. On the other hand, I've always wanted to be able to sort those atributes, so I couldn't miss the chanse :-)

Selecting audio codec

The Video Compressor Selector

Again, this is very similar with VirtualDub one.

Notable improvements:

Selecting video codec

Joining files

When there is at least one file selected and the audio codec and video codec are compatible with the audio input and cropping size, respectively, you can open the Join dialog.

Limitations:

In the left side you'll be briefly reminded on your current settings.

In the right side, you can enter the name of the outputfile (directly or using a Save File dialog box). If Warn on overwrite is checked, you'll be prompted with a dialog box before deleting the old file.

To start the writing, simply press Start. You can always abort by pressing Abort. After starting the compression, you can suspend and resume it by using the Suspend button.

Joining files

The Configuration Toolbox

Here I'll put some general AviJoin configuration stuff. These settings change the way AviJoin behaves, not the resulting AVI.

The Thumbnail Size frame box controls the size of the thumbnails displayed on the Files Frame.

With the Adding New Files frame we can control the way AviJoin lets us add new files.

Configuration Toolbox

License

AviJoin is distributed under GPL (GNU Public License).

NOTE: AviJoin is developed with Borland C++ Builder 5 and depends on Borland's VCL and therefore the code is linked with some of the VCL libs. Seeing the trouble KDE folks are into, I have thought for some time that I might have a similar one: after all VCL is non free stuff. But after reading again and again the GPL, I believe I am not violating it in any way because I am covered by the following exception clause from Section 3):

                                     ...  

	compilation and installation of the executable.  However, as a
	special exception, the source code distributed need not include
	anything that is normally distributed (in either source or binary
	form) with the major components (compiler, kernel, and so on) of the
	operating system on which the executable runs, unless that component
	itself accompanies the executable.

                                     ...  
    

VCL is distributed with the Borland C++ Builder and BCB is a compiler, a major part of the operating system.

Misc

I'm looking for a job. Who doesn't ? Till now I've been a physicist, but lately I've realized I don't like physics any more. On the other hand I love computers. So if you like this program and think you can offer me some nice job, just hit me with your offer.

Downloads, Mailing Lists and More...

AviJoin is distributed as a Setup file. The setup will also install the AviJoin source code in {app}\Source, where {app} is the directory you selected for AviJoin during Setup. This html file can be found in {app}\Doc. SourceForge Logo