DWI's bgchanges can display DivX-encoded .avi movies, still images (like your simfile's background image), or combinations of the two. Visualizations are also accepted, and although I've had no experience using them, they should work basically the same as movies and stills.
Here's the basic script format:
Code:
#BACKGROUND:
A:MOVIE:movie1.avi STARTAT:0.0 LAYER:0;
B:MOVIE:.\Movies\movie2.avi STARTAT:0.0 LAYER:0;
C:MOVIE:.\Movies\Random\movie3.avi STARTAT:0.0 LAYER:0;
D:FILE:file1.png LAYER:0;
E:FILE:.\Anim\file2.png LAYER:0;
F:FILE:.\Anim\SongName\file3.png LAYER:0;
SCRIPT:0...A.......B.......C.......DEF0;
#END;
This example uses both videos and still images. #BACKGROUND denotes the beginning of the script. The letters A through F tell DWI what files of what type it's going to use and where those files are located. SCRIPT is just that, the order and timing in which the files will be played. #END is the end of the script.
The letters A through F are 'file handles'. Basically a shortcut for DWI to whatever file is called for. MOVIE and FILE tell DWI whether it's a video or a still image; VIS in the case of visualizations. After that is the file location and subtags depending on what type of file is declared.
You can have the movies and images wherever you want, but you have to understand how to tell DWI where to look. Let's assume you've got DWI installed in C:\DWI.
* movie1.avi is located directly in the simfile's directory, say, C:\DWI\Songs\Random Mix\SongName.
* movie2.avi is located in C:\DWI\Movies.
* movie3.avi is located in C:\DWI\Movies\Random.
.\ tells DWI to look in its base directory, C:\DWI. If you don't include this, DWI will just look in the simfile directory. Either way is fine.
Same thing with the still images.
* file1.png is directly in the simfile directory.
* file2.png is in C:\DWI\Anim
* file3.png is in a folder specifically designated for this simfile, C:\DWI\Anim\SongName; this doesn't mean that other simfiles can't use these images, but it makes it easier to keep track of files.
As you can see, it doesn't matter where the files are, as long as you correctly tell DWI where to look. The filename needs to be correct as well, although DWI is case-insensitive.
For the movies, the subtag STARTAT tells DWI to start that movie X number of seconds into the movie. This is useful for when you can't correctly 'position' the movie in the script; for example, you need to start the video sooner than the script can actually begin, so you simply tell DWI to start playing the video further in. A positive value will begin the video further in; a negative value will actually loop back around to the end of the video and begin from there.
The LAYER subtag tells DWI where to place the file visually. This is mainly for the still images, for when you want certain images to be displayed above other images. See BMR's Max Externity for a good example of image usage.
SCRIPT is what tells DWI what file to play and when. This is coded identically to the code for the steps, except that you're using periods and the file handles you designated instead of stepcode. Think of the periods as being equivalent to the 0's that represent 1/8th notes. A script like this: A.B.A.B. would change the background movie on every 1/4th note. Regardless of what files you use or what the script does, it starts at the same time as your code.
Use this to your advantage; if you want a particular movie to start on a particular arrow, just make the script even with the stepcode. Keep in mind that you can also use (), {}, [], and `' in the script, just like in the stepcode, to fine-tune when a movie starts.
In the script above, the simfile starts out on just the background. On the fifth 1/8th note (or where it would be if one doesn't exist), movie1.avi will start playing. Eight 1/8th notes after movie1.avi starts, movie2.avi will take its place. And so on with the remaining movies and files.
Script changes in DWI are instantaneous; there's no fade-in or fade-out or other special effects.
The number of individual files you can use in any given script is 35: you can use A-Z (case insensitive; a=A, so don't think you can use both. I would know; I've tried.

) and 1-9 as file handles; 0 is reserved for the simfile background image.
After the script, all that's left is to tell DWI that it's finished, with #END; Once you've written your script, just paste it anywhere into the simfile and save, make sure the files have the right names and are in the expected locations, and you're good to go.
If you're just starting out writing scripts, a good idea would be to take an existing script that you know works and edit it to suit your needs; i.e. replace filenames, change file 'positioning' in the script, etc. until you become more familiar with scripting.
If you have problems getting scripts to appear, make sure you've got scripts turned to ON (duh). Make sure you've got the latest version of DivX installed on your computer. Make sure file names are correct, files are where they should be, make sure there's no errors in the script.
For older video cards, you may need to run DWI with the command line option /altmovies to get movies to show up (you'll know whether or not you need to if you get a solid pink/purple background when a movie tries to play).