fezzik.ini: workaround scaling resolution limitation with swscale filter by making...
[melted] / docs / inigo.txt
index 6749ee5..854c1c1 100644 (file)
@@ -1,8 +1,8 @@
 Inigo Documentation
 
-Copyright (C) 2004 Ushodaya Enterprised Limited
+Copyright (C) 2004-2009 Ushodaya Enterprised Limited
 Author: Charles Yates <charles.yates@pandora.be>
-Last Revision: 2004-03-20
+Last Revision: 2009-01-21
 
 
 INIGO
@@ -20,14 +20,41 @@ Preamble:
 
 Usage:
 
-       inigo [ -group [ name=value ]* ]
-             [ -consumer id[:arg] [ name=value ]* ]
-             [ -filter id[:arg] [ name=value ] * ]
-             [ -transition id[:arg] [ name=value ] * ]
-             [ -blank frames ]
-             [ -track | -hide-track | -hide-video | -hide-audio ]
-             [ producer [ name=value ] * ]+
-             [ -serialise file.inigo ]
+    inigo [options] [producer [name=value]* ]+
+    Options:
+      -attach filter[:arg] [name=value]*       Attach a filter to the output
+      -attach-cut filter[:arg] [name=value]*   Attach a filter to a cut
+      -attach-track filter[:arg] [name=value]* Attach a filter to a track
+      -attach-clip filter[:arg] [name=value]*  Attach a filter to a producer
+      -audio-track | -hide-video               Add an audio-only track
+      -blank frames                            Add blank silence to a track
+      -consumer id[:arg] [name=value]*         Set the consumer (sink)
+      -debug                                   Set the logging level to debug
+      -filter filter[:arg] [name=value]*       Add a filter to the current track
+      -group [name=value]*                     Apply properties repeatedly
+      -help                                    Show this message
+      -join clips                              Join multiple clips into one cut
+      -mix length                              Add a mix between the last two cuts
+      -mixer transition                        Add a transition to the mix
+      -null-track | -hide-track                Add a hidden track
+      -profile name                            Set the processing settings
+      -progress                                Display progress along with the position
+      -remove                                  Remove the most recent cut
+      -repeat times                            Repeat the last cut
+      -query                                   List all of the registered services
+      -query "consumers" | "consumer"=id       List consumers or show info about one
+      -query "filters" | "filter"=id           List filters or show info about one
+      -query "producers" | "producer"=id       List producers or show info about one
+      -query "transitions" | "transition"=id   List transitions or show info about one
+      -serialise [filename]                    Write the commands to a text file
+      -silent                                  Do not display position/transport help
+      -split relative-frame                    Split the last cut into two cuts
+      -swap                                    Rearrange the last two cuts
+      -track                                   Add a track
+      -transition id[:arg] [name=value]*       Add a transition
+      -verbose                                 Set the logging level to verbose
+      -version                                 Show the version and copyright message
+      -video-track | -hide-audio               Add a video-only track
 
 
 General rules:
@@ -163,6 +190,91 @@ Groups:
        $ inigo -group in=0 out=49 clip* -group -filter greyscale
 
 
+Attached Filters:
+
+       As described above, the -filter switch applies filters to an entire track. To
+       localise filters to a specific clip on a track, you have to know information
+       about the lengths of the clip and all clips leading up to it. In practise, 
+       this is horrifically impractical, especially at a command line level (and not
+       even that practical from a programing point of view...).
+
+       The -attach family of switches simplify things enormously. By default, -attach
+       will attach a filter to the last service created, so:
+
+       $ inigo clip1.dv clip2.dv -attach greyscale clip3.dv
+
+       would only apply the filter to clip2.dv. You can further narrow down the area of
+       the effect by specifying in/out points on the attached filter.
+
+       This might seem simple so far, but there is a catch... consider the following:
+
+       $ ingo clip1.dv -attach watermark:+hello.txt -attach invert
+
+       The second attached filter is actually attached to the watermark. You might 
+       think, yay, nice (and it is :-)), but, it might not be what you want. For example
+       you might want to attach both to clip1.dv. To do that, you can use:
+
+       $ ingo clip1.dv -attach-cut watermark:+hello.txt -attach-cut invert
+
+       As you shall see below, there are still another couple of gotchas associated to 
+       -attach, and even another variant :-).
+
+
+Mixes:
+
+       The -mix switch provides the simplest means to introduce transitions between
+       adjacent clips.
+
+       For example:
+
+       $ inigo clip1.dv clip2.dv -mix 25 -mixer luma -mixer mix:-1
+
+       would provide both an audio and video transition between clip1 and clip2.
+
+       This functionality supercedes the enforced use of the -track and -transition
+       switches from earlier versions of inigo and makes life a lot easier :-).
+
+       These can be used in combination, so you can for example do a fade from black
+       and to black using the following:
+
+       $ inigo colour:black out=24 clip1.dv -mix 25 -mixer luma \
+               colour:black out=24 -mix 25 -mixer luma 
+       
+       while this may not be immediately obvious, consider what's happening as the 
+       command line is being parsed from left to right:
+
+       Input:                  Track
+       ----------------------- -----------------------------------------------------
+       colour:black out=24     [black]
+       clip1.dv                [black][clip1.dv]
+       -mix 25                 [black+clip1.dv][clip1.dv]
+       -mixer luma             [luma:black+clip1.dv][clip1.dv]
+       colour:black out=24     [luma:black+clip1.dv][clip1.dv][black]
+       -mix 25                 [luma:black+clip1.dv][clip1.dv][clip1.dv+black]
+       -mixer luma             [luma:black+clip1.dv][clip1.dv][luma:clip1.dv+black]
+
+       Obviously, the clip1.dv instances refer to different parts of the clip, but 
+       hopefully that will demonstrate what happens as we construct the track.
+
+       You will find more details on the mix in the framework.txt.
+
+
+Mix and Attach:
+
+       As noted, -attach normally applies to the last created service - so, you can 
+       attach a filter to the transition region using:
+
+       $ inigo clip1.dv clip2.dv -mix 25 -mixer luma -attach watermark:+Transition.txt
+
+       Again, nice, but take care - if you want the attached filter to be associated
+       to the region following the transition, use -attach-cut instead.
+
+
+Splits, Joins, Removes and Swaps:
+
+       COMPLEX - needs simplification....
+
+
 Introducing Tracks and Blanks:
 
        So far, all of the examples have shown the definition of a single
@@ -238,7 +350,7 @@ Transitions:
 
 Reversing a Transition:
 
-       When we visualise a track definition, we also see situtations
+       When we visualise a track definition, we also see situations
        like:
        
        +-------+              +----------+