test not only if header frei0r.h exists, also use an item
[mlt-frei0r-support.git] / shotcut / README
blob1f6f5f61b44078d87c614e39ca02f5205f6dc33b
1 README
2 ------
4         The applications defined in this project are as follows:
6         * shotcut-wm      : The shotcut window manager
7         * shotcut-server  : The main shotcut server
8         * shotcut-inject  : Transmit westleys without modification
9         * shotcut-preview : A media player
10         * shotcut-editor  : A text editor tailored for westley documents
11         * shotcut-nle     : The shotcut non-linear editor
14 PRE-REQUISITES
15 --------------
17         The shotcut suite is dependent on the following:
19         * mlt
20         * mlt++
21         * fltk 1.1.x
23         Some of the default behaviour relies on:
25         * gnome-terminal
26         * mc
27         * mactor
28         * mcmlt
30         It's not essential for these to be installed though.
33 INSTALLATION
34 ------------
36         To configure and build the environment, run:
38                 ./configure
39                 make
40                 sudo make install
42         To set up an environment for use, please read the rest of this document.
45 GENERAL
46 -------
48         Most shotcut applications have a server in them. These servers allow input to
49         be received in the form of MLT westley documents. 
51         When a document is received, they typically carry out an action - for example
52         the text editor will show the document and allow you to edit it, the preview
53         will play it and the shotcut server will pop up a dialog asking what you want 
54         to do with the document by presenting a list of possible destinations.
56         The usage of the tools and details on how to integrate other tools into the 
57         shotcut framework is provided below.
60 TERMINOLIGY AND CLASSIFICATION
61 ------------------------------
63         For the purpose of this document, the following terminoligy will be used:
65         client         : Any application which generates the DVCP PUSH
66         server         : Any application which responds to the DVCP PUSH
67         window manager : The window manager in use (not necessarily shotcut-wm)
69         All MLT applications which allow the use of the 'valerie' consumer are 
70         clients.
73 SHOTCUT-WM
74 ----------
76         The shotcut window manager provides a system administrator with the option to 
77         set up a totally closed session for use of the shotcut tools. Since it is very
78         light on resources and imposes a bare minimum of start up processes, this is a
79         good option for production use of shotcut.
81         It provides:
83         * a multi-workspace window manager
84         * a mechanism for specifying start up applications and their workspace
85         * a never obscured utility panel (for switching workspace and logout)
87         NB: shotcut-wm does not provide any mlt specific functionality - it is neither
88         a server nor a client. Its usage is not a pre-requisite for using the shotcut
89         tools.
91         To use it, you need to carry out the following steps:
93         1) Create a new user which uses the shotcut-wm
94         2) Customise the start up profile
96         The following creates a new user for Mandrake 10 - other distros may require
97         slightly different operations:
99                 cd shotcut
100                 sudo /usr/sbin/useradd shotcut -m -k home
101                 sudo passwd shotcut
103         To test the user while still running your original X session, run:
105                 gdmflexiserver
107         IMPORTANT NOTES:
109         1) Make sure that no shotcut servers are running in your current X session 
110            first. The ports the tools run on may clash and hence cause your new 
111            users tools to fail to start or start incorrectly.
113         2) You can switch back to the original X session by using Ctrl Alt F7 and
114            you will automatically return when you logout of the session. Note that 
115            the original session will present you with a back screen - this is OK,
116            just press a key or move your mouse to be presented with a dialog to 
117            redisplay the original session.
119         3) You may not get audio in the second session due to permissions on the 
120            dsp and/or alsa devices. Try: chmod a+w /dev/dsp /dev/snd/*
122         When you login, you will be presented with the default session - this isn't
123         a well managed session as no window geometries are specified.
125         You should find:
127         * Workspace 1 contains a maximised mainactor;
128         * Workspace 2 contains a terminal with mc running, preview and text editor;
129         * Workspace 3 contains the NLE.
130         * Workspace 4 is empty.
132         You can switch between workspaces using:
134         * Using the buttons on the panel
135         * Ctrl-F1 to Ctrl-F4
136         * Ctrl-Alt-Left and Ctrl-Alt-Right
138         There is also a 'hidden' shotcut-wm menu which can be activated by:
140         * Alt-Escape
141         * Ctrl-Alt-Escape will activate the menu as per the original flwm behaviour
143         The windows created on start up are managed via $HOME/profiles/shotcut.  You 
144         can edit this file to specify which tools are autostarted. 
146         An example profile is as follows:
148                 0=gnome-terminal &
149                 .workspace=2
150                 .windows=1
152                 1=shotcut-server &
153                 .workspace=2
154                 .windows=2
156                 2=shotcut-nle &
157                 .workspace=3
158                 .windows=1
160                 3=mactor &
161                 .workspace=1
163         Note that you need to specify the workspace the tool appears on and the number 
164         of windows the tool creates when it starts up - the shotcut-wm will wait for 
165         these windows to appear before moving on to the next command. If the last tool 
166         starts on workspace 1 (as in the example above), then the number of windows is 
167         unimportant since the window manager will remain on the first workspace.
169         You may specify starting geometry for the tools using the command line switches
170         of the tool. 
172         Shotcut tools typically take a -g WxY+x+y geometry argument, though 
173         shotcut-server is a special case - it has its own profile and you need to 
174         specify its tools and geometry there. Take care when customising shotcut-server
175         since you will need to specify the number of windows it generates in this 
176         profile.
179 SHOTCUT-SERVER
180 --------------
182         This process is designed to control your desktop.  It acts as a proxy for a 
183         configurable collection of miracle server applications.
185         Typically, shotcut will run on the default miracle port (5250) and the default
186         behaviour for all clients will be to send documents to this process.
188         To run shotcut in its default mode, you would simply run:
190                 shotcut-server
192         The default behaviour is to:
194         * start the shotcut-server on port 5250
195         * start a basic gui profile with the following tools
196                 * shotcut-preview on port 5251 
197                 * shotcut-editor on port 5252
199         To quickly test your environment, try:
201                 shotcut-inject noise:
203         and select a destination from the menu provided. Notice that the menu always
204         appears immediately under the mouse and has the keyboard focus. You can use 
205         the cursor keys to move between the options, and pressing 'space' will 
206         select it.
208         You can configure the tools that the server creates and feeds by creating a 
209         'profile' and specifying this when you start the server.
211         An example profile might contain something like:
213                 # Defines the number of tools
214                 tools=5
216                 # Define each tool using the following syntax:
217                 #
218                 # n=Name
219                 # .command=command
220                 # .port=port|server|server:port
221                 #
222                 # Note that commands should background themselves (include a trailing & if 
223                 # the process doesn't fork automatically). You don't need to include a 
224                 # command, but a port is needed. 
226                 0=Preview 1
227                 .command=shotcut-preview -g 330x283+610+20 --on-top
228                 .port=5251
230                 1=Preview 2
231                 .command=shotcut-preview -g 330x283+970+20 --on-top
232                 .port=5252
234                 2=Editor
235                 .command=shotcut-editor -g 670x400+610+390
236                 .port=5253
238                 3=NLE
239                 .port=5260
241                 4=Miracle
242                 .port=playout
244         This profile defines two previews, a text editor and links to a running
245         instance of shotcut-nle and a miracle instance running on another server 
246         (the default action is to append the westley to unit 0's playlist).
248         To use this, you would save the file somewhere and run shotcut as:
250                 shotcut-server --profile=/path/to/your-profile
252         It is possible to have multiple shotcut-servers running, each controlling
253         their own set of tools and allowing connections to be established between
254         them in either way. To do this, you should specify a different port using
255         the --port=XXXX switch on the second instance and register the servers as
256         tools in their profiles as required - this facilitates multiple window 
257         manager work spaces having their own controlling server.
260 SHOTCUT-INJECT
261 --------------
263         The shotcut-inject utility is a lightweight client.
265         The simplest example of use is:
267                 shot-inject clip.dv
269         This will send an westley which refers to the clip to the default server. 
270         You may target a specific server via the --port=XXX switch if you wish.
273 SHOTCUT-PREVIEW
274 ---------------
276         This server provides immediate playback of all documents received. There is 
277         transport functionality to allow you to pause, fast forward, rewind or scrub.
279         Note that when you submit documents with the same 'title' property, the 
280         position and playout speed don't change.
282         The default behaviour of shotcut-preview is to open a small window directly 
283         under the mouse pointer, but this can be overridden by specifying a geometry 
284         via the -g switch.
286         It can be controlled via:
288         * The transport controls and scrub control situated at the bottom of the 
289           window;
290         * The left and right cursor keys can be used to do frame accurate scrubbing.
292         Note that when you switch from normal playback, the display will show a low
293         quality image. This is done to ensure minimal cpu usage. It will also 
294         automatically pause when you switch workspace.
296         Other switches are:
298     * --name=name to specify how the server identifies itself;
299         * --port=XXXX to specify the port to listen on;
300     * --on-top to indicate that you want to start the preview as 'always on top';
301         * --maximize to indicate that you want to start the preview maximized.
303         The preview also has drag n drop support. Currently, only nautilus has been
304         tested, but other file managers should also work.
307 SHOTCUT-EDITOR
308 --------------
310         The shotcut-editor is a text editor provided in the fltk demo directory. It's 
311         been adapted to handle westley syntax colouring and other features.
313         On receipt of a new document, the editor will either place the new document in
314         the text buffer directly, or, if the current contents have been manually 
315         changed, you will be presented with a dialog to accept, save or cancel.
317         Another feature is the ability to transmit a modified document into another 
318         process - by default, shotcut sets this up so that it fires the doc back to 
319         the main shotcut server and the options are all but the Editor itself (ie: you
320         can select Preview or Cancel).
323 SHOTCUT-NLE
324 -----------
326         This tool provides the main multitrack editing environment and is both a server
327         and a client. It is designed to run in its own workspace.
329         The main screen consists of 4 areas:
331         +-------------+---------------+-------------+
332         |Browser      |Preview        |Panel        |
333         |             |               |             |
334         +-------------+---------------+-------------+
335         |Multitrack                                 |
336         +-------------------------------------------+
338         The workflow is as follows:
340         * All westley documents submitted to the NLE will appear in the browser - 
341           these are decorated with a thumbnail and sorted by order of addition
343                 * Above the browser, there are four 'light' buttons labelled as Projects,
344                   Stories, Audio and Stills. When the light is on, input of that type
345                   is shown, when off, they're removed from the view. Double clicking
346                   on a button will turn off all other buttons.
347                 * Below the browser is a button labelled 'Clean' - this will remove 
348                   all items in the currently selected view which do not exist in the 
349                   project.
351         * Selection from the browser by dragging allows you to immediately place a 
352           clip on the multitrack (dropping the clip anywhere other than on the 
353           multitrack acts as a cancel)
355         * Selection from the browser by clicking will cause the selected clip 
356           to open in the preview
358                 * Cursor up and down cause the next and previous item to be shown in
359                   the preview.
360                 * Ctrl-enter key will attempt to insert the item in to the selected 
361                   track of the multitrack, and will cause the timeline position to move
362                   to the end of the inserted item. The next item in the browser is
363                   automatically selected.
365         * The preview provides playback by use of the 'transport buttons' below the
366           display area. Play and pause can also be toggled by pressing the space bar.
368                 * At the bottom of the preview is a 'cutting' tool - this will allow you to
369                   cut the clip by specifying in and out points, and from there, you can
370                   drag the cut on to the multitrack
371                 * Any cuts from that clip which are already on the multitrack will be 
372                   highlighted as a dull red, thus allowing easy reselection - reselection
373                   will cause the reselected cut to turn bright red
374                 
376         * The Panel allows you to edit attributes, titles and obscuring masks for the 
377           current cut - these become attached to the cut and are automatically applied
378           to the timeline
379         
380         * The default timeline consists of 4 manipulable tracks (1 for the main 
381           video/audio, 1 for 'super text' and another 2 for audio mixing). Instances 
382           of cuts from the currently selected clip are highlighted and a special 
383           highlight is used to indicate the position of the current cut. Neighbouring 
384           cuts from different clips have a transition between them.
386         * You may also select to 'publish' the current project (push it to a specific
387           miracle server for playout) or switch to another project.
389         TO BE CONTINUED...
392 MISCELLANEOUS
393 -------------
395         You can configure your environment so that the default consumer is 'valerie':
397                 export MLT_CONSUMER=valerie
399         So when you run a command like:
401                 inigo "+Hello World.txt"
403         The normal behaviour is to send it to the default server. You can override this 
404         by specifying a -consumer switch if needed.
406         Further to this, you can configure your file manager to default double clicks
407         on media to 'inigo -consumer valerie' (or simply inigo if you set MLT_CONSUMER
408         in your shell profile) or shotcut-inject. This provides nice integration with 
409         existing tools such as nautilus, mc or konqueror.
411         Standard JKL key bindings can be turned on by running:
413                 export SHOTCUT_JKL=true
415         prior to starting shotcut-nle.