Rechercher une page de manuel
inigo
Langue: en
Version: 03/30/2009 (debian - 07/07/09)
Section: 1 (Commandes utilisateur)
Sommaire
NAME
inigo - multitrack command line oriented video editorSYNOPSIS
inigo [options] [producer [name=value]*]+DESCRIPTION
inigo was developed as a test tool for the MLT framework. It can be thought of as a powerful, if somewhat obscure, multitrack command line oriented video editor.The following details the usage of the tool and as a result, provides a lot of insight into the workings of the MLT framework.
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
- 1.Order is incredibly important;
- 2.Error checking on command line parsing is weak;
- 3.Please refer to services.txt for details on services available;
- 4.The MLT framework, from which inigo has inherited its naming convention, is very mlt-centric. Producers produce MLT frame objects and consumers consume MLT frame objects. The distinction is important - a DV producer does not produce DV, it produces MLT frames from a DV source, and similarly a DV consumer does not consume DV, it consumes MLT frames and produces DV frames.
TERMINOLOGY
Producers typically refer to files but may also indicate devices (such as dv1394 input or video4linux). Hence, the more generic term is used [the more generic usage is out of scope for now...].Filters are frame modifiers - they always guarantee that for every frame they receive, they output precisely one frame. Never more, never less, ever. Nothing says that a filter cannot generate frames though
Transitions collect frames from two tracks (a and b) and output 1 modified frame on their 'a track', and 1 unmodified frame on their 'b track'. Never more, never less, ever.
Consumers collect frames from a producer, do something with them and destroy them.
Collectively, these are known as services.
All services have properties associated to them. These are typically defaulted or evaluated and may be overriden on a case by case basis.
All services except consumers obey in and out properties.
Consumers have no say in the flow of frames [though they may give the illusion that they do]. They get frames from a connected producer, use them, destroy them and get more.
BASICS
To play a file with the default SDL PAL consumer, usage is:-
$ inigo file
You can also specify the producer directly, for example:
-
$ inigo avformat:file.mpeg
PROPERTIES
Properties can be assigned to the producer by adding additional name=value pairs after the producer\:-
$ inigo file in=50 out=100 something="something else"
MULTIPLE FILES
Multiple files of different types can be used:-
$ inigo a.dv b.mpg c.png
-
$ inigo a.dv in=50 out=100 b.mpg out=500 c.png out=500
FILTERS
Filters are frame modifiers - they can change the contents of the audio or the images associated to a frame.-
$ inigo a.dv -filter greyscale
Again, in and out properties are common to all, so to apply a filter to a range of frames, you would use something like:
-
$ inigo a.dv -filter greyscale in=0 out=50
GROUPS
The -group switch is provided to force default properties on the following services. For example:-
$ inigo -group in=0 out=49 clip*
Note that the last -group settings also apply to the following filters, transitions and consumers, so:
-
$ inigo -group in=0 out=49 clip* -filter greyscale
To shed the group properties, you can use any empty group:
-
$ 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
This might seem simple so far, but there is a catch... consider the following:
-
$ ingo clip1.dv -attach watermark:+hello.txt -attach invert
-
$ ingo clip1.dv -attach-cut watermark:+hello.txt -attach-cut invert
Mixes:
The -mix switch provides the simplest means to introducer transitions between adjacent clips.
For example:
-
$ inigo clip1.dv clip2.dv -mix 25 -mixer luma -mixer mix:-1
This functionality supercedes the enforced use of the -track and -transtition 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
-
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]
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
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 playlist, or more accurately, track.When multiple tracks exist, the consumer will receive a frame from the highest numbered track that is generating a non-blank frame.
It is best to visualise a track arrangement, so we'll start with an example:
$ inigo a.dv -track b.dv in=0 out=49
This can be visualised as follows:
-
+------------------+ |a | +-------+----------+ |b | +-------+
This rule also applies to audio only producers on the second track, for example, the following would show the video from the a track, but the audio would come from the second track:
-
$ inigo a.dv -track b.mp3 in=0 out=49
-
$ inigo a.dv out=49 -track -blank 49 b.dv
-
+-------+ |a | +-------+-------------------+ |b | +-------------------+
TRANSITIONS
Where tracks become useful is in the placing of transitions.Here we need tracks to overlap, so a useful multitrack definition could be given as:
-
$ inigo a.dv out=49 \ -track \ -blank 24 b.dv \ -transition luma in=25 out=49 a_track=0 b_track=1
-
+-------+ |a | +---+---+--------------+ |b | +------------------+
REVERSING A TRANSITION
When we visualise a track definition, we also see situtations like:-
+-------+ +----------+ |a1 | |a2 | +---+---+--------------+----+-----+ |b | +-----------------------+
In this scenario, we define a command line as follows:
-
$ inigo a.dv out=49 -blank 49 a2.dv \ -track \ -blank 24 b.dv out=99 \ -transition luma in=25 out=49 a_track=0 b_track=1 \ -transition luma in=100 out=124 reverse=1 a_track=0 b_track=1
SERIALISATION
Inigo has a built in serialisation mechanism - you can build up your command, test it via any consumer and then add a -serialise file.inigo switch to save it.The saved file can be subsequently used as a clip by either miracle or inigo. Take care though - paths to files are saved as provided on the command line....
A more expressive serialisation can be obtained with the westley consumer - this will provide an xml document which can be used freely in inigo and miracle.
See westley.txt for more information.
MISSING FEATURES
Some filters/transitions should be applied on the output frame regardless of which track it comes from - for example, you might have a 3rd text track or a watermark which you want composited on every frame, and of course, there's the obscure filter....inigo only supports this in two invocations - as a simple example:
-
$ inigo a.dv -track -blank 100 b.dv -consumer westley:basic.westley $ inigo basic.westley -filter watermark:watermark.png
AUTHOR
Charles Yates <charles.yates@pandora.be>COPYING
Copyright (C) 2004 Ushodaya Enterprised LimitedContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre