Movie Overview

A movie consists of a list of actors, each of which has their own animation defined by a number of keyframes.
An actor can be either an image or a text string.
Each keyframe in an animation has a time (in seconds) and can specify the position, scale, rotation, alpha and colour of the actor at that time, although not all of those values need to be specified in each frame.

Movie Size and Length

Movies work in screen / pixel coordinates with ( 0,0 ) in the top left corner.
All the original movies were created to fill an area 1095 x 600...it's not clear why, because 1095 is not a "nice" ratio like 16:9.
Goovie treat this as the "visible area" and draws a dotted rectangle around it. However, players with 4:3 screens will not see the very left and right hand sides, so Goovie also draws dotted lines to the indicate area visible on 4:3 screens.

The length of a movie is simply determined by the last (highest time) keyframe of any actor.

Times and Frame Rates

Strictly movies don't have a frame rate, you can enter any time you like into any keyframe, and when a movie is played the game will just display as many frames as it can.
However, to make life easier when creating movies and adding keyframes using the GUI, Goovie uses a "frame rate" which sets the time divisions on the time slider, this defaults to 20fps (0.05 second increments) on new movies.
Movie.binltl files don't have a "Frame Rate" encoded into them anywhere, and 2DBoy created the original movies in a whole range of different rates (from 11fps up to about 33fps).. so when Goovie loads a movie, it attempts to "divine" the original frame rate based on the times in the keyframes... this doesn't always work, but usually gives a reasonable approximation.

Notes about XML and binltl formats

The game stores the movie information in an encoded (not encrypted) format in files called .movie.binltl. These files consist mostly of binary and numeric information and are very difficult for puny humans to understand / interpret directly.
So an XML format was created to represent the information in "human-readable" form. The original format, created by davidc, was designed to hold all the information contained within the binltl files produced by 2D Boy.

Goovie uses a modified version of this XML format which has been tailored for the purpose of creating and editting movies. The Goovie format contains a number of additional attributes which cannot be stored within a binltl file, but which simplify the editing process.
If you open an original movie, Goovie checks whether an XML version exists. If it does not, Goovie decodes the movie.binltl into its XML format.
Goovie also creates a MovieName.text.xml to hold the information for any text actors. Like WooGLE, this information is put into the Global text.xml when you save and play... If you run GooTool, it will overwrite the global file, remove the text entries and your movie may crash when you play the game "normally" (outside GooVie)

Distributing your Movie : This is currently under review / discussion

Until the situation is resolved, goomods containing movies might NOT be published

At present there is no "Make Goomod" option for movies, because it doesn't really fit, and releasing a goomod which just contains a movie is a bit pointless. Unless you're XDBoy and just want to show off!
So if you want to include a new movie in a goomod you will have to do it manually.
You will need to... Export the Movie to binltl
Then include in your goomod...
override/res/movies/moviename/moviename.movie.binltl (and .binltl64 for Linux compatibility)
compile/res/movies/moviename/moviename.resrc.xml (decrypted)
Any custom graphics or sounds in the override folder, and add any movie text into text.xml

Future versions may have a "Make goomod folder" button, which will export everything into a goomod subfolder of the movie, so that you can easily copy it all into another goomod.

Getting your movie to play

This should be very simple, however at the moment... not so much.
Normally movies are played at the end of a level using the cutscene attribute in the [ island.xml ]
The addin.xml for a goomod can contain a <cutscene> tag for each level, however this does not work in the current version of GooTool, so you need to do it "manually" with a merge on the island.xml

However, even this is not quite as easy as it should be.
The simple approach would be to create a merge XSL file that locates the required level tag in the island.xml and adds the cutscene attribute to it. However, the merge files from the goomod are processed BEFORE GooTool has added the level info into the island.xml, so the level tag cannot be found, and this type of merge has no effect.

The only way I have found to make it work...
Create a merge XSL which adds its own complete copy of the <level> tag to the island.xml, and also includes the required cutscene attribute. GooTool will also add its tag for this level, however since your merge one was added first the game uses that, and the one added by GooTool is ignored.