Logo Filter for VirtualDub
(Version 1.7)

[Place this HTML file in the VirtualDub plugins directory to make it available via the Help button on the filter configuration dialog box.]

This filter provides the ability to overlay a logo contained in a bitmap file. The position of the bitmap may be specified. To obtain a "free-floating" logo effect, you can use either an alpha mask file or a transparent color with configurable tolerance. Selectable opacity allows variable merging of the rendered bitmap with the source video. Animated logos can be created by defining a series of bitmaps. Filter preview is supported.

This filter is ideal for unobtrusively placing a logo on the video as is done on many cable TV channels.

Test bitmaps and an animated bitmap sequence are provided in the zip file.

How to Make a Static Logo

Create a 24-bit-depth windows bitmap file with the desired size and with a transparent color zone if desired. The transparency color may be arbitrarily selected and then configured in the filter configuration. (You can also use a corresponding alpha mask bitmap file instead; refer to the detailed option descriptions below for details.)

In the filter configuration dialog box, enter the input file. If the specified bitmap file cannot be found, or if it is not a bitmap file, or if it is of the wrong depth, you will be warned about it by a popup message box. Set the desired X and Y coordinates, the starting frame and the duration (in frames). Set the desired opacity and transparent color.

How to Make an Animated Logo

To make an animated logo, create a series of bitmap files named name0000.bmp, name0001.bmp, name0002.bmp, etc. (you can replace "name" with desired text). Specify the first one as the input file and check the 'Animation sequence' checkbox. Set the duration to be the number of frames to display each bitmap file before moving to the next one. Set the loop count to the number of repetitions desired for the sequence. Set the other parameters as described for static logos.

A sample sequence is provided that produces a spinning earth. To run it, set the duration to 1, loops to 0, and enable a transparent color of 0/0/0.

Warning About Use of Filter Preview

The Logo filter can be fussy about the logo and mask BMPs, i.e., they must actually be BMP files, have 24-bit depth, etc. If you make a mistake in loading the logo or mask BMPs, the filter throws an exception and prints an error message in the VirtualDub status bar. The error messages give enough information to allow you to correct the error. The problem is that all existing versions of VirtualDub (currently at 1.6.12) have a bug such that when the filter preview is active, no error messages are printed in the status bar, leaving the user baffled about what could be going on. To avoid this, always load your files and verify correct operation without filter preview. When the files are loaded and no error messages are received, then you can start using filter preview if required.

Detailed Option Descriptions

The following options are provided:

Input file: Specifies the full pathname of the bitmap file to be used.

Animation sequence: Check this to enable an animated sequence.

X: This option determines the X offset of the start of the bitmap on the video.

Y: This option determines the Y offset of the start of the bitmap on the video.

Starting frame: The frame number on which to begin displaying the logo.

Duration: For a static bitmap, the number of frames for which to display the logo. For animated bitmaps, the number of frames to display each bitmap before moving to the next bitmap. To display a bitmap for the whole clip length, select 0.

Loops: For static logos, this has no effect. For animated logos, the number of repetitions of the bitmap sequence. To loop forever, select 0.

Opacity: This option determines the final blending of the rendered bitmap with the source video. For full bitmap and no source video, use the value 255. As this value is reduced toward 0, more and more of the source video is blended in. An opacity of about 100-128 gives a nice unobtrusive overlay.

Fade: These options allow for the logo to be faded in and/or out. For fade-in, the starting frame number of the fade is determined by the logo starting frame. The length of the fade is determined by the In Len value. For fade-out, the ending frame number of the fade is determined by the Out End value. The length of the fade is determined by the Out Len value. If fade-in and fade-out overlap, fade-out overrides. Even if the logo is otherwise enabled such that it would appear beyond the end of a fade-out if the fade-out were not there, the logo will be suppressed after the fade-out. Finally, if you put silly values in the fade boxes, you will get what you deserve.

Alpha mask: Check this if you are providing additional alpha mask BMP(s) to define the rendering of the bitmap(s). Alpha masking allows for anti-aliased rendering of the logo.

An alpha mask BMP must be the same size and format as the logo BMP. It must have the same name as the logo BMP but with the letter 'A' appended before the ".bmp". For example, if the logo BMP is "MyLogo.bmp", then the associated alpha mask BMP must be "MyLogoA.bmp". If the logo is animated, the same rule applies, e.g., if the first logo BMP is "MyLogo0000.bmp", the corresponding alpha mask BMP must be "MyLogo0000A.bmp".

The alpha mask BMP's blue color channel value is taken as the alpha blend amount (the red and green are ignored, so you can use a gray scale if you want, i.e., you can put the same value in the red, green, and blue). For a given pixel of the logo BMP, the blue value of the corresponding alpha mask BMP controls how the logo and source video are mixed for that pixel. E.g., if the blue value is 0, just the source video will be used; if the value is 255, just the bitmap will be used; intermediate values will mix the bitmap with the source video by alpha blending.

Transparent color: Check this if you have made a transparent color zone in your bitmap. Then select the transparent color in the Red, Green, and Blue edit boxes. Full source video shows in the transparent areas. The tolerance box allows you to specify a 'sloppiness' factor for the match to the transparent color. As long as the difference between each color channel (red, green, or blue) and the corresponding specified transparent color is not greater than the specified tolerance, then the color will be considered to be transparent. For example, if the tolerance is 10 and the specified transparent color is 37:45:10, then a color 39:44:5 will be considered transparent, while a color 39:56:11 will not be transparent (because one color channel's difference exceeds tolerance).

For additional information, version updates, and other filters, please go to the following web site:

Filters for VirtualDub
http://neuron2.net/index.html

Donald A. Graft
(C) Copyright 2000-2006, All Rights Reserved