1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
|
Project gap "GIMP Animation Package" 08. Dec. 2004 (pre)release 2.1.0
--------------------------------------------------------------------
Introduction
--------------------------------------------------------------------
The GIMP is a great program for creating and manipulating
pixelbased images of many types.
The plug-in concept and the procedural database
allows programmers to extend the GIMP's functions in many ways.
In the GIMP there are some plug-in's supporting animation features,
based on layers where each layer of the image is considered as one frame
of the animation.
GIMP-GAP is a collection of plug-ins that extends the
GIMP's animation capabilities
by supporting the creation of more complex animations.
Idea:
With the help of the GIMP-GAP plug-in collection
GIMP can operate on a series of images as if they were
a single one.
Each frame of an animation can have multiple layers.
The user can step from frame to frame by pressing an accelerator key
or can do image manipulations that are propagated automatically
to a selected range of frames.
Layeranimated images can be combined with frames (multiple images)
as you can see in the "Move Path" plug-in
or converted to frames and vice-versa.
General:
An animation consists of a series of images of the same size & type
(frames).
The concept of GIMP-GAP is to store each frame separate on disk, using a filename
convention that includes the frame number and extension.
Example: film_000001.xcf,
film_000002.xcf
..
film_000012.xcf
GIMP's xcf fileformat should be used to store the frames,
so that each frame can have more layers.
Sound is not supported in this concept, but will be handled
as sperate audiofiles at encoding time or in the playback module.
The playback framerate and other common information about the animation
are stored in an extra videoinfo textfile
film_vin.gap
This requires a lot of diskspace but offers much more flexibility
while working on the animation.
To save diskspace you may optional use gziped xcf frames
(takes extra time to un/compress) by using the extension .xcfgz
(gzip has to be installed on your system to do that)
If you can accept lossy compression you may also use
the xjt fileformat to store your frames on jpeg based compression.
The curent implementation of the xjt fileformat
is restricted to UNIX operating systems.
Input from videofile:
GIMP-GAP has features to access both audio and frames in
already encoded videofiles.
On way to deal with such videofiles is to extract
the frames. Each frame can be stored as numbered frame
image on disk in that case. GIMP-GAP has a built in
video extracting plug-in (based on ffmpeg and libmeg3).
## refere to (plug-in-gap-extract-video.txt) ##
On UNIX platforms GIMP-GAP also provides frontends
for the videoplayers
- mplayer
- xanim
those players are capable to extract frames from
common videofiel formats (avi, mpeg, quicktime, ....) .
Please note that xanim is old unmaintained software.
The frontend for xanim is still there and may even work if
you still have xanim exporting edition.
But mplayer is the better choice.
## refere to (plug-in-gap-mplayer-decode.txt) ##
## refere to (plug-in-gap-xanim-decode.txt) ##
The other methode can read the frames from one or more
videofiles and pass them to one of the GIMP-GAP video encoders
without the need to store the frames separately.
This methode requires a storyboard file.
The storyboard file describes
how to assemble videoclips, images and audiofiles
to one resulting output video.
Output to videofile:
GIMP-GAP provides video encoder plug-ins
to save a series of input frame images or videoclips
as videofile.
This process is called encoding an usually
does compresses the processed frames and audiodata.
GIMP-GAP encoder plug-ins can operate on
a series of numbered frame images or storyboard files
as input (encoding on the fly).
Another option is to convert the frames to one multilayerd image
that can be saved as MNG animation, animated-GIF
(or, in the future in other animation formats
when other load/save modules were added to the GIMP)
GIMP-GAP provides automated fileformat conversions for
the frames of an animation.
This conversions offer a way to use external
video encoder programs.
All GIMP-supported imagefileformats may be used.
On UNIX Platforms GIMP-GAP provides frontend dialog interfaces for
external software MPEG video encoder programs.
(mpeg_encode and mpeg2encode)
This methode and both encoders are old.
External encoders can NOT directly encode storyboard files,
and typically want input as series of single frames in PPM format.
This need much diskspace and extra time for converting
frames to PPM.
## refere to (plug-in-gap-mpeg-encode.txt) ##
## refere to (plug-in-gap-mpeg2encode.txt) ##
The Storyboard:
Storyboards are useful for the creation and cutting of longer videos.
GIMP-GAP provides the storyboard dialog to create and edit
simple storyboard files.
Storyboard files are textfiles and can be compared with playlists
for videoclips, images and audioclips.
In this release the storyboard dialog is limited to simple storyboard
features without soundsupport.
For encoding videos via storyboard files the soundsupport is
already implemented and there are some more features available.
See docs/reference/txt/STORYBOARD_FILE_DOC.txt
for the complete Syntax description.
Morphing:
Morphing can be used to render frames
between 2 scenes.
** Morphing is still an experimental feature and not fully documented yet **
## refere to (plug-in-gap-morph.txt) ##
Onionskin Layers
GIMP-GAP does support onionskin layers.
## refere to (plug-in-gap-onionskin-configuration.txt) ##
--------------------------------------------------------------------
How to use
--------------------------------------------------------------------
- Creating multiple frames (video frames)
- ---------------------------------------
- from an existing single image
Save your image as XCF file. (<Image>/File/Save as)
use a name that ends up in _000001.xcf (or _000001.xcfgz)
Then duplicate your image (<Image>/Video/Duplicate)
You'll be asked how much copies you need.
(Note: all copies are stored on disk immediate
without explicite save)
- from an existing layeranimated multilayer image
use
<Image>/Video/Split Img to frames
This will create frames, a series of images on disk,
with a name that ends up in _000001.xcf).
Optional you may use other extensions. (.xcfgz, .jpg ...)
WARNING: The extension defines the fileformat
of the frames. Most of the other formats
(than GIMP's .xcf format) can not save
multilayer frames, or frames with alpha channels.
- from outside the GIMP
You may rename and copy existing XCF images
according to the frame naming conventions.
<img>_000001.xcf
<img>_000002.xcf
...
Then load (only one of them) into the GIMP.
- Navigation (Goto)
- ------------------
It is recommanded to define some accelerator keys for quick
walk through the frames.
Here are my settings (excerpt from my $HOME/.gimp/menurc )
(menu-path "<Image>/Video/Goto/First Frame" "<control><alt>1")
(menu-path "<Image>/Video/Goto/Prev Frame" "<alt>1")
(menu-path "<Image>/Video/Goto/Next Frame" "<alt>2")
(menu-path "<Image>/Video/Goto/Any Frame" "<alt>3")
(menu-path "<Image>/Video/Goto/Last Frame" "<control><alt>2")
Alternatives:
- You may open the GIMP-GAP videoplayer
(menu-path: <Image>/Video/Playback...)
and use the player for visual positioning
(use the FrameNr Button or the GO-Button array for that task)
- You may open the GIMP-GAP video navigator dialog
(menu-path: <Image>/Video/VCR Navigator)
- Main render features
----------------------
GIMP-GAP provides features for rendering moving objects
and for automated modifying of multilple frames.
## refere to (plug-in-gap-move-path.txt) ##
## refere to (plug-in-gap-modify.txt) ##
- NO UNDO:
- --------
There is no Undo for the video frame based GIMP-GAP video plug-ins.
If you step to the next frame (menu: <image>/Video/Goto Next)
the current frame is saved to disk and the next frame
is loaded into the image.
All undo steps were cleared at this time.
- About Locks
- -----------
All the GIMP-GAP plug-ins are using a lock.
This lock disables to run other GIMP-GAP plug-ins (or the same plug-in twice)
on the same image at the same time,
while the current GIMP-GAP plug-in is working on that frame.
GIMP-GAP keeps a locktable (for the current session) that contains
the image_id's of all images currently locked by GIMP-GAP plug-ins.
If you cancel a running GIMP-GAP plug-in with the cancel button
in the progress window,
or kill it from your operating sytem the lock may remain.
(This should only happen to WINDOWS users, for UNIX users
locks are checked for dead process ids)
To unlock you can save the current frame image,
close all views to that image, then reload the frame image.
(or quit and restart the GIMP)
WARNING:
It is not recommanded to open more than one frame of
an animation at the same time.
(menu: File/Open "img_000001.xcf"
menu: File/Open "img_000002.xcf")
In this constellation both gap plug-ins may concurrent
in save/load to/from the same file.
Example:
call from "img_000001.xcf" Video/Delete Frames (range 000001 to 000003)
now img_000004.xcf is renamed to img_000001.xcf
img_000005.xcf is renamed to img_000002.xcf
then
call from "img_000002.xcf" Video/Goto First
the img_000002.xcf (its old content) is saved,
overwiting wht was img_000004.xcf before.
If you make the 2.nd call while the 1.st one is in progress,
you may trash your frames (2 writers on one file) and/or crash
your GIMP session.
======================================================
Internal PDB names and menu names of GIMP-GAP plug-ins
======================================================
plug_in_gap_layers_run_animfilter "<Image>/Filters/Filter all Layers"
plug_in_bluebox "<Image>/Video/Bluebox"
plug_in_filter_macro "<Image>/Filters/Filtermacro"
plug_in_gap_anim_crop "<Image>/Video/Frames Crop"
plug_in_gap_anim_resize "<Image>/Video/Frames Resize"
plug_in_gap_anim_scale "<Image>/Video/Frames Scale"
plug_in_gap_del "<Image>/Video/Delete Frames"
plug_in_gap_density "<Image>/Video/Frames Density"
plug_in_gap_dup "<Image>/Video/Duplicate Frames"
plug_in_gap_exchg "<Image>/Video/Exchange Frame"
plug_in_gap_modify "<Image>/Video/Frames Modify"
plug-in-gap-morph-layers "<Image>/Video/Morph"
plug_in_gap_move "<Image>/Video/Move Path"
plug_in_gap_navigator "<Image>/Video/VCR Navigator"
plug_in_gap_range_convert "<Image>/Video/Frames Convert"
plug_in_gap_range_flatten "<Image>/Video/Frames Flatten"
plug_in_gap_range_layer_del "<Image>/Video/Frames LayerDel"
plug_in_gap_range_to_multilayer "<Image>/Video/Frames to Image"
plug_in_gap_renumber "<Image>/Video/Frames Renumber"
plug_in_gap_reverse "<Image>/Video/Frame Sequence Reverse"
plug_in_gap_shift "<Image>/Video/Frame Sequence Shift"
plug_in_gap_split "<Image>/Video/Split Img to Frames"
plug-in-gap-storyboard-edit "<Image>/Video/Storyboard"
plug_in_gap_videoframes_player "<Image>/Video/Playback"
plug-in-gap-vid-encode-master "<Image>/Video/Encode/Master Videoencoder"
plug_in_gap_mpeg2encode "<Image>/Video/Encode/MPEG2 (mpeg2encode)"
plug_in_gap_mpeg_encode "<Image>/Video/Encode/MPEG1 (mpeg_encode)"
plug_in_gap_goto "<Image>/Video/Go To/Any Frame"
plug_in_gap_first "<Image>/Video/Go To/First Frame"
plug_in_gap_last "<Image>/Video/Go To/Last Frame"
plug_in_gap_next "<Image>/Video/Go To/Next Frame"
plug_in_gap_prev "<Image>/Video/Go To/Previous Frame"
plug_in_gap_onionskin_configuration "<Image>/Video/Onionskin/Configuration"
plug_in_gap_mplayer_decode "<Image>/Video/Split Video into Frames/MPlayer based extract"
plug_in_gap_xanim_decode "<Image>/Video/Split Video into Frames/XANIM based extract"
plug_in_gap_exctract_video "<Image>/Video/Split Video into Frames/Extract Videorange"
plug_in_gap_mplayer_decode_toolbox "<Toolbox>/Xtns/Split Video into Frames/MPlayer based extract"
plug_in_gap_xanim_decode_toolbox "<Toolbox>/Xtns/Split Video into Frames/XANIM based extract"
plug_in_gap_exctract_video_toolbox "<Toolbox>/Xtns/Split Video into Frames/Extract Videorange"
plug-in-gap-video-index-creator "<Toolbox>/Xtns/Videoindex creation"
script-fu-selection-to-anim-image "<Image>->Script-Fu->Animators->Sel To AnimImage"
plug_in_gap_get_animinfo ** NON_INTERACTIVE batchscript API
plug_in_gap_move_path_ext ** NON_INTERACTIVE batchscript API
plug_in_gap_move_path_ext2 ** NON_INTERACTIVE batchscript API using a controlpoint file
plug_in_gap_set_framerate ** NON_INTERACTIVE batchscript API
plug_in_gap_video_edit_clear ** NON_INTERACTIVE batchscript API
plug_in_gap_video_edit_copy ** NON_INTERACTIVE batchscript API
plug_in_gap_video_edit_paste ** NON_INTERACTIVE batchscript API
plug-in-gap-enc-avi1 ** NON_INTERACTIVE video encoder
plug-in-gap-enc-ffmpeg ** NON_INTERACTIVE video encoder
plug-in-gap-enc-singleframes ** NON_INTERACTIVE video encoder
|