3 <title>Secrets of Cinelerra
</title>
4 <meta http-equiv=
"Content-Type" content=
"text/html">
5 <meta name=
"description" content=
"Secrets of Cinelerra">
6 <meta name=
"generator" content=
"makeinfo 4.8">
7 <link title=
"Top" rel=
"top" href=
"#Top">
8 <link href=
"http://www.gnu.org/software/texinfo/" rel=
"generator-home" title=
"Texinfo Homepage">
9 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
10 <style type=
"text/css"><!--
11 pre
.display
{ font-family:inherit
}
12 pre
.format
{ font-family:inherit
}
13 pre
.smalldisplay
{ font-family:inherit
; font-size:smaller
}
14 pre
.smallformat
{ font-family:inherit
; font-size:smaller
}
15 pre
.smallexample
{ font-size:smaller
}
16 pre
.smalllisp
{ font-size:smaller
}
17 span
.sc
{ font-variant:small-caps
}
18 span
.roman
{ font-family:serif
; font-weight:normal
; }
19 span
.sansserif
{ font-family:sans-serif
; font-weight:normal
; }
23 <h1 class=
"settitle">Secrets of Cinelerra
</h1>
27 Next:
<a rel=
"next" accesskey=
"n" href=
"#ABOUT-CINELERRA">ABOUT CINELERRA
</a>,
28 Up:
<a rel=
"up" accesskey=
"u" href=
"#dir">(dir)
</a>
32 <h2 class=
"unnumbered">Secrets of Cinelerra
</h2>
34 <h2 class=
"chapter">1 SHORT CONTENTS
</h2>
37 <li><a accesskey=
"1" href=
"#ABOUT-CINELERRA">ABOUT CINELERRA
</a>: Cinelerra in brief.
38 <li><a accesskey=
"2" href=
"#INSTALLATION">INSTALLATION
</a>: Making Cinelerra work on your system.
39 <li><a accesskey=
"3" href=
"#CONFIGURATION">CONFIGURATION
</a>: Adjusting the behavior of Cinelerra.
40 <li><a accesskey=
"4" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>: The most often used user interface.
41 <li><a accesskey=
"5" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>: Moving media between disk and Cinelerra.
42 <li><a accesskey=
"6" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>: Moving around the media.
43 <li><a accesskey=
"7" href=
"#EDITING">EDITING
</a>: Moving the media in time.
44 <li><a accesskey=
"8" href=
"#USING-EFFECTS">USING EFFECTS
</a>: Altering the media.
45 <li><a accesskey=
"9" href=
"#SETTING-PROJECT-ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>: Changing the way the media is displayed.
46 <li><a href=
"#COMPOSITING">COMPOSITING
</a>: Overlaying different sources of video.
47 <li><a href=
"#KEYFRAMES">KEYFRAMES
</a>: Making effects change over time.
48 <li><a href=
"#CAPTURING-MEDIA">CAPTURING MEDIA
</a>: Moving media from the real world to disk.
49 <li><a href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>: Making Cinelerra run better on Linux.
50 <li><a href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>: Problems with Cinelerra.
51 <li><a href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>: Unusual applications of Cinelerra to common problems.
52 <li><a href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>: Secrets of the more complicated effects.
53 <li><a href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>: How to write new effects.
54 <li><a href=
"#KEYBOARD-SHORTCUTS">KEYBOARD SHORTCUTS
</a>: How to accelerate most commands with the keyboard.
57 <div class=
"contents">
58 <h2>Table of Contents
</h2>
60 <li><a name=
"toc_Top" href=
"#Top">Secrets of Cinelerra
</a>
61 <li><a name=
"toc_Top" href=
"#Top">1 SHORT CONTENTS
</a>
62 <li><a name=
"toc_ABOUT-CINELERRA" href=
"#ABOUT-CINELERRA">2 ABOUT CINELERRA
</a>
64 <li><a href=
"#ABOUT-THIS-MANUAL">2.1 ABOUT THIS MANUAL
</a>
66 <li><a name=
"toc_INSTALLATION" href=
"#INSTALLATION">3 INSTALLATION
</a>
68 <li><a href=
"#INSTALLING-AN-RPM">3.1 INSTALLING AN RPM
</a>
69 <li><a href=
"#COMPILING-FROM-SCRATCH">3.2 COMPILING FROM SCRATCH
</a>
70 <li><a href=
"#RUNNING-CINELERRA">3.3 RUNNING CINELERRA
</a>
72 <li><a name=
"toc_CONFIGURATION" href=
"#CONFIGURATION">4 CONFIGURATION
</a>
74 <li><a href=
"#ENVIRONMENT-VARIABLES">4.1 ENVIRONMENT VARIABLES
</a>
75 <li><a href=
"#PLAYBACK">4.2 PLAYBACK
</a>
77 <li><a href=
"#AUDIO-OUT">4.2.1 AUDIO OUT
</a>
79 <li><a href=
"#COMMON-SOUND-DRIVER-ATTRIBUTES">4.2.1.1 COMMON SOUND DRIVER ATTRIBUTES
</a>
80 <li><a href=
"#OSS">4.2.1.2 OSS
</a>
81 <li><a href=
"#OSS-Envy24">4.2.1.3 OSS Envy24
</a>
82 <li><a href=
"#ALSA">4.2.1.4 ALSA
</a>
83 <li><a href=
"#ESOUND">4.2.1.5 ESOUND
</a>
84 <li><a href=
"#RAW-1394">4.2.1.6 RAW
1394</a>
85 <li><a href=
"#DV-1394">4.2.1.7 DV
1394</a>
86 <li><a href=
"#IEC-61883">4.2.1.8 IEC
61883</a>
88 <li><a href=
"#VIDEO-OUT">4.2.2 VIDEO OUT
</a>
90 <li><a href=
"#COMMON-VIDEO-DRIVER-ATTRIBUTES">4.2.2.1 COMMON VIDEO DRIVER ATTRIBUTES
</a>
91 <li><a href=
"#X11">4.2.2.2 X11
</a>
92 <li><a href=
"#X11_002dXV">4.2.2.3 X11-XV
</a>
93 <li><a href=
"#BUZ">4.2.2.4 BUZ
</a>
94 <li><a href=
"#RAW-1394-VIDEO-PLAYBACK">4.2.2.5 RAW
1394 VIDEO PLAYBACK
</a>
95 <li><a href=
"#DV-1394-VIDEO-PLAYBACK">4.2.2.6 DV
1394 VIDEO PLAYBACK
</a>
96 <li><a href=
"#IEC-61883-VIDEO-PLAYBACK">4.2.2.7 IEC
61883 VIDEO PLAYBACK
</a>
99 <li><a href=
"#RECORDING">4.3 RECORDING
</a>
101 <li><a href=
"#AUDIO-IN">4.3.1 AUDIO IN
</a>
102 <li><a href=
"#VIDEO-IN">4.3.2 VIDEO IN
</a>
104 <li><a href=
"#PERFORMANCE">4.4 PERFORMANCE
</a>
106 <li><a href=
"#BACKGROUND-RENDERING">4.4.1 BACKGROUND RENDERING
</a>
107 <li><a href=
"#RENDERFARM">4.4.2 RENDERFARM
</a>
109 <li><a href=
"#INTERFACE">4.5 INTERFACE
</a>
110 <li><a href=
"#ABOUT">4.6 ABOUT
</a>
112 <li><a name=
"toc_THE-MAIN-WINDOWS" href=
"#THE-MAIN-WINDOWS">5 THE MAIN WINDOWS
</a>
114 <li><a href=
"#VIEWER">5.1 VIEWER
</a>
115 <li><a href=
"#COMPOSITOR">5.2 COMPOSITOR
</a>
117 <li><a href=
"#PROTECT-VIDEO">5.2.1 PROTECT VIDEO
</a>
118 <li><a href=
"#MAGNIFYING-GLASS">5.2.2 MAGNIFYING GLASS
</a>
119 <li><a href=
"#MASKS-TOOL">5.2.3 MASKS TOOL
</a>
120 <li><a href=
"#CAMERA">5.2.4 CAMERA
</a>
121 <li><a href=
"#PROJECTOR">5.2.5 PROJECTOR
</a>
122 <li><a href=
"#CROP-TOOL">5.2.6 CROP TOOL
</a>
123 <li><a href=
"#EYEDROPPER">5.2.7 EYEDROPPER
</a>
124 <li><a href=
"#TOOL-INFO">5.2.8 TOOL INFO
</a>
125 <li><a href=
"#SAFE-REGIONS-TOOL">5.2.9 SAFE REGIONS TOOL
</a>
127 <li><a href=
"#PROGRAM">5.3 PROGRAM
</a>
128 <li><a href=
"#RESOURCES">5.4 RESOURCES
</a>
129 <li><a href=
"#SOUND-LEVEL-METERS">5.5 SOUND LEVEL METERS
</a>
130 <li><a href=
"#OTHER-WINDOWS">5.6 OTHER WINDOWS
</a>
132 <li><a name=
"toc_LOADING-AND-SAVING-FILES" href=
"#LOADING-AND-SAVING-FILES">6 LOADING AND SAVING FILES
</a>
134 <li><a href=
"#SUPPORTED-FILE-FORMATS">6.1 SUPPORTED FILE FORMATS
</a>
136 <li><a href=
"#QUICKTIME">6.1.1 QUICKTIME
</a>
137 <li><a href=
"#MPEG_002d4-AUDIO">6.1.2 MPEG-
4 AUDIO
</a>
138 <li><a href=
"#IMAGE-SEQUENCES">6.1.3 IMAGE SEQUENCES
</a>
139 <li><a href=
"#STILL-IMAGES">6.1.4 STILL IMAGES
</a>
141 <li><a href=
"#OPEN-EXR-IMAGES">6.1.4.1 OPEN EXR IMAGES
</a>
142 <li><a href=
"#RAW-DIGITAL-CAMERA-IMAGES">6.1.4.2 RAW DIGITAL CAMERA IMAGES
</a>
144 <li><a href=
"#AVI">6.1.5 AVI
</a>
145 <li><a href=
"#MPEG-FILES-CONTAINING-VIDEO">6.1.6 MPEG FILES CONTAINING VIDEO
</a>
146 <li><a href=
"#DVD-MOVIES">6.1.7 DVD MOVIES
</a>
147 <li><a href=
"#MPEG-1-AUDIO">6.1.8 MPEG
1 AUDIO
</a>
148 <li><a href=
"#OGG-THEORA_002fVORBIS">6.1.9 OGG THEORA/VORBIS
</a>
149 <li><a href=
"#EDIT-DECISION-LIST">6.1.10 EDIT DECISION LIST
</a>
151 <li><a href=
"#LOADING-FILES">6.2 LOADING FILES
</a>
153 <li><a href=
"#INSERTION-STRATEGY">6.2.1 INSERTION STRATEGY
</a>
154 <li><a href=
"#LOADING-MULTIPLE-FILES">6.2.2 LOADING MULTIPLE FILES
</a>
156 <li><a href=
"#LOADING-THE-BACKUP">6.3 LOADING THE BACKUP
</a>
157 <li><a href=
"#SAVING-FILES">6.4 SAVING FILES
</a>
158 <li><a href=
"#RENDERING-FILES">6.5 RENDERING FILES
</a>
160 <li><a href=
"#SINGLE-FILE-RENDERING">6.5.1 SINGLE FILE RENDERING
</a>
161 <li><a href=
"#BATCH-RENDERING">6.5.2 BATCH RENDERING
</a>
162 <li><a href=
"#THE-RENDER-FARM">6.5.3 THE RENDER FARM
</a>
163 <li><a href=
"#COMMAND-LINE-RENDERING">6.5.4 COMMAND LINE RENDERING
</a>
166 <li><a name=
"toc_NAVIGATING-THE-PROJECT" href=
"#NAVIGATING-THE-PROJECT">7 NAVIGATING THE PROJECT
</a>
168 <li><a href=
"#NAVIGATING-THE-PROGRAM-WINDOW">7.1 NAVIGATING THE PROGRAM WINDOW
</a>
170 <li><a href=
"#THE-INSERTION-POINT">7.1.1 THE INSERTION POINT
</a>
171 <li><a href=
"#THE-IN_002fOUT-POINTS">7.1.2 THE IN/OUT POINTS
</a>
172 <li><a href=
"#USING-LABELS-IN-THE-PROGRAM-WINDOW">7.1.3 USING LABELS IN THE PROGRAM WINDOW
</a>
174 <li><a href=
"#NAVIGATING-THE-VIEWER-AND-COMPOSITOR">7.2 NAVIGATING THE VIEWER AND COMPOSITOR
</a>
175 <li><a href=
"#NAVIGATING-THE-RESOURCES">7.3 NAVIGATING THE RESOURCES
</a>
176 <li><a href=
"#USING-THE-TRANSPORT-CONTROLS">7.4 USING THE TRANSPORT CONTROLS
</a>
177 <li><a href=
"#USING-BACKGROUND-RENDERING">7.5 USING BACKGROUND RENDERING
</a>
179 <li><a name=
"toc_EDITING" href=
"#EDITING">8 EDITING
</a>
181 <li><a href=
"#THE-PATCHBAY">8.1 THE PATCHBAY
</a>
182 <li><a href=
"#NUDGING-TRACKS">8.2 NUDGING TRACKS
</a>
183 <li><a href=
"#MANIPULATING-TRACKS">8.3 MANIPULATING TRACKS
</a>
184 <li><a href=
"#TWO-SCREEN-EDITING">8.4 TWO SCREEN EDITING
</a>
185 <li><a href=
"#DRAG-AND-DROP-EDITING">8.5 DRAG AND DROP EDITING
</a>
186 <li><a href=
"#CUT-AND-PASTE-EDITING">8.6 CUT AND PASTE EDITING
</a>
187 <li><a href=
"#TRIMMING">8.7 TRIMMING
</a>
189 <li><a name=
"toc_USING-EFFECTS" href=
"#USING-EFFECTS">9 USING EFFECTS
</a>
191 <li><a href=
"#REALTIME-EFFECTS">9.1 REALTIME EFFECTS
</a>
193 <li><a href=
"#REALTIME-EFFECT-TYPES">9.1.1 REALTIME EFFECT TYPES
</a>
194 <li><a href=
"#EDITING-REALTIME-EFFECTS">9.1.2 EDITING REALTIME EFFECTS
</a>
196 <li><a href=
"#RENDERED-EFFECTS">9.2 RENDERED EFFECTS
</a>
197 <li><a href=
"#TRANSITIONS">9.3 TRANSITIONS
</a>
198 <li><a href=
"#LADSPA-EFFECTS">9.4 LADSPA EFFECTS
</a>
200 <li><a name=
"toc_SETTING-PROJECT-ATTRIBUTES" href=
"#SETTING-PROJECT-ATTRIBUTES">10 SETTING PROJECT ATTRIBUTES
</a>
201 <li><a name=
"toc_COMPOSITING" href=
"#COMPOSITING">11 COMPOSITING
</a>
203 <li><a href=
"#THE-CAMERA-AND-PROJECTOR">11.1 THE CAMERA AND PROJECTOR
</a>
204 <li><a href=
"#MASKS">11.2 MASKS
</a>
205 <li><a href=
"#CROPPING">11.3 CROPPING
</a>
206 <li><a href=
"#SAFE-REGIONS">11.4 SAFE REGIONS
</a>
207 <li><a href=
"#OVERLAY-MODES">11.5 OVERLAY MODES
</a>
208 <li><a href=
"#TRACK-AND-OUTPUT-SIZES">11.6 TRACK AND OUTPUT SIZES
</a>
210 <li><a name=
"toc_KEYFRAMES" href=
"#KEYFRAMES">12 KEYFRAMES
</a>
212 <li><a href=
"#CURVE-KEYFRAMES">12.1 CURVE KEYFRAMES
</a>
214 <li><a href=
"#NAVIGATING-CURVE-KEYFRAMES">12.1.1 NAVIGATING CURVE KEYFRAMES
</a>
216 <li><a href=
"#TOGGLE-KEYFRAMES">12.2 TOGGLE KEYFRAMES
</a>
217 <li><a href=
"#AUTOMATIC-KEYFRAMES">12.3 AUTOMATIC KEYFRAMES
</a>
218 <li><a href=
"#COMPOSITOR-KEYFRAMES">12.4 COMPOSITOR KEYFRAMES
</a>
219 <li><a href=
"#EDITING-KEYFRAMES">12.5 EDITING KEYFRAMES
</a>
221 <li><a name=
"toc_CAPTURING-MEDIA" href=
"#CAPTURING-MEDIA">13 CAPTURING MEDIA
</a>
223 <li><a href=
"#BATCHES">13.1 BATCHES
</a>
224 <li><a href=
"#EDITING-TUNER-INFORMATION">13.2 EDITING TUNER INFORMATION
</a>
226 <li><a name=
"toc_IMPROVING-PERFORMANCE" href=
"#IMPROVING-PERFORMANCE">14 IMPROVING PERFORMANCE
</a>
228 <li><a href=
"#DISABLING-SWAP-SPACE">14.1 DISABLING SWAP SPACE
</a>
229 <li><a href=
"#ENLARGING-SOUND-BUFFERS">14.2 ENLARGING SOUND BUFFERS
</a>
230 <li><a href=
"#FREEING-MORE-SHARED-MEMORY">14.3 FREEING MORE SHARED MEMORY
</a>
231 <li><a href=
"#SPEEDING-UP-THE-HARD-DRIVE">14.4 SPEEDING UP THE HARD DRIVE
</a>
232 <li><a href=
"#DISABLING-CRON">14.5 DISABLING CRON
</a>
233 <li><a href=
"#REDUCING-USB-MOUSE-SENSITIVITY">14.6 REDUCING USB MOUSE SENSITIVITY
</a>
234 <li><a href=
"#ASSORTED-X-TWEEKS">14.7 ASSORTED X TWEEKS
</a>
235 <li><a href=
"#SPEEDING-UP-THE-FILE-SYSTEM">14.8 SPEEDING UP THE FILE SYSTEM
</a>
236 <li><a href=
"#IMPROVING-ZORAN-VIDEO">14.9 IMPROVING ZORAN VIDEO
</a>
238 <li><a href=
"#IMPROVING-ZORAN-VIDEO">14.9.1 NEW IN
2.6.5</a>
241 <li><a name=
"toc_TROUBLESHOOTING" href=
"#TROUBLESHOOTING">15 TROUBLESHOOTING
</a>
243 <li><a href=
"#BUZ-DRIVER-CRASHES">15.1 BUZ DRIVER CRASHES
</a>
244 <li><a href=
"#DRAGGING-IN-AND-OUT-POINTS-DOESN_0027T-WORK">15.2 DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>
245 <li><a href=
"#LOCKING-UP-WHEN-LOADING-FILES">15.3 LOCKING UP WHEN LOADING FILES
</a>
246 <li><a href=
"#SYNCHRONIZATION-LOST-WHILE-RECORDING">15.4 SYNCHRONIZATION LOST WHILE RECORDING
</a>
248 <li><a name=
"toc_SECRETS-OF-CINELERRA" href=
"#SECRETS-OF-CINELERRA">16 SECRETS OF CINELERRA
</a>
250 <li><a href=
"#DOLBY-PRO-LOGIC-ENCODING">16.1 DOLBY PRO LOGIC ENCODING
</a>
251 <li><a href=
"#ANALOG-TV-CLEANING">16.2 ANALOG TV CLEANING
</a>
252 <li><a href=
"#DEFEATING-INTERLACING">16.3 DEFEATING INTERLACING
</a>
253 <li><a href=
"#MAKING-VIDEO-LOOK-LIKE-FILM">16.4 MAKING VIDEO LOOK LIKE FILM
</a>
254 <li><a href=
"#CLEARING-OUT-HAZE">16.5 CLEARING OUT HAZE
</a>
256 <li><a name=
"toc_SECRETS-OF-CINELERRA-EFFECTS" href=
"#SECRETS-OF-CINELERRA-EFFECTS">17 SECRETS OF CINELERRA EFFECTS
</a>
258 <li><a href=
"#1080-TO-480">17.1 1080 TO
480</a>
259 <li><a href=
"#CHROMA-KEY">17.2 CHROMA KEY
</a>
260 <li><a href=
"#COMPRESSOR">17.3 COMPRESSOR
</a>
261 <li><a href=
"#DECIMATE">17.4 DECIMATE
</a>
262 <li><a href=
"#DEINTERLACE">17.5 DEINTERLACE
</a>
263 <li><a href=
"#DIFFERENCE-KEY">17.6 DIFFERENCE KEY
</a>
264 <li><a href=
"#FREEZE-FRAME">17.7 FREEZE FRAME
</a>
265 <li><a href=
"#HISTOGRAM">17.8 HISTOGRAM
</a>
266 <li><a href=
"#INVERSE-TELECINE">17.9 INVERSE TELECINE
</a>
267 <li><a href=
"#INTERPOLATE-VIDEO">17.10 INTERPOLATE VIDEO
</a>
268 <li><a href=
"#LINEARIZE">17.11 LINEARIZE
</a>
269 <li><a href=
"#LOOP">17.12 LOOP
</a>
270 <li><a href=
"#MOTION">17.13 MOTION
</a>
272 <li><a href=
"#SECRETS-OF-MOTION-TRACKING">17.13.1 SECRETS OF MOTION TRACKING
</a>
273 <li><a href=
"#2-PASS-MOTION-TRACKING">17.13.2 2 PASS MOTION TRACKING
</a>
274 <li><a href=
"#USING-BLUR-TO-IMPROVE-MOTION-TRACKING">17.13.3 USING BLUR TO IMPROVE MOTION TRACKING
</a>
275 <li><a href=
"#USING-HISTOGRAM-TO-IMPROVE-MOTION-TRACKING">17.13.4 USING HISTOGRAM TO IMPROVE MOTION TRACKING
</a>
277 <li><a href=
"#REFRAMERT">17.14 REFRAMERT
</a>
278 <li><a href=
"#REFRAME">17.15 REFRAME
</a>
279 <li><a href=
"#RESAMPLE">17.16 RESAMPLE
</a>
280 <li><a href=
"#REVERSE-VIDEO_002fAUDIO">17.17 REVERSE VIDEO/AUDIO
</a>
281 <li><a href=
"#THRESHOLD">17.18 THRESHOLD
</a>
282 <li><a href=
"#TIME-AVERAGE">17.19 TIME AVERAGE
</a>
283 <li><a href=
"#TITLER">17.20 TITLER
</a>
285 <li><a href=
"#ADDING-FONTS-TO-THE-TITLER">17.20.1 ADDING FONTS TO THE TITLER
</a>
286 <li><a href=
"#THE-TITLE_002dSAFE-REGION">17.20.2 THE TITLE-SAFE REGION
</a>
288 <li><a href=
"#VIDEO-SCOPE">17.21 VIDEO SCOPE
</a>
290 <li><a name=
"toc_PLUGIN-AUTHORING" href=
"#PLUGIN-AUTHORING">18 PLUGIN AUTHORING
</a>
292 <li><a href=
"#INTRODUCING-THE-PULL-METHOD">18.1 INTRODUCING THE PULL METHOD
</a>
293 <li><a href=
"#COMMON-PLUGIN-FUNCTIONS">18.2 COMMON PLUGIN FUNCTIONS
</a>
295 <li><a href=
"#THE-PROCESSING-OBJECT">18.2.1 THE PROCESSING OBJECT
</a>
296 <li><a href=
"#THE-CONFIGURATION-OBJECT">18.2.2 THE CONFIGURATION OBJECT
</a>
297 <li><a href=
"#THE-USER-INTERFACE-OBJECT">18.2.3 THE USER INTERFACE OBJECT
</a>
299 <li><a href=
"#REALTIME-PLUGINS">18.3 REALTIME PLUGINS
</a>
300 <li><a href=
"#NONREALTIME-PLUGINS">18.4 NONREALTIME PLUGINS
</a>
301 <li><a href=
"#AUDIO-PLUGINS">18.5 AUDIO PLUGINS
</a>
302 <li><a href=
"#VIDEO-PLUGINS">18.6 VIDEO PLUGINS
</a>
303 <li><a href=
"#TRANSITION-PLUGINS">18.7 TRANSITION PLUGINS
</a>
304 <li><a href=
"#PLUGIN-GUI_0027S-WHICH-UPDATE-DURING-PLAYBACK">18.8 PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>
305 <li><a href=
"#PLUGIN-QUERIES">18.9 PLUGIN QUERIES
</a>
307 <li><a href=
"#SYSTEM-QUERIES">18.9.1 SYSTEM QUERIES
</a>
308 <li><a href=
"#TIMING-QUERIES">18.9.2 TIMING QUERIES
</a>
311 <li><a name=
"toc_KEYBOARD-SHORTCUTS" href=
"#KEYBOARD-SHORTCUTS">19 KEYBOARD SHORTCUTS
</a>
313 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1 PROGRAM WINDOW
</a>
315 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.1 Editing Media
</a>
316 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.2 Editing Labels
& In/Out Points
</a>
317 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.3 Navigation
</a>
318 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.4 File operations
</a>
319 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.5 Key Frame Editing
</a>
320 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.6 Track Manipulation
</a>
321 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.7 What's drawn on the timeline
</a>
323 <li><a href=
"#KEYBOARD-SHORTCUTS">19.2 VIEWER
& COMPOSITOR WINDOWS
</a>
324 <li><a href=
"#KEYBOARD-SHORTCUTS">19.3 PLAYBACK TRANSPORT
</a>
325 <li><a href=
"#KEYBOARD-SHORTCUTS">19.4 RECORD WINDOW
</a>
330 <div class=
"contents">
331 <h2>Table of Contents
</h2>
333 <li><a name=
"toc_Top" href=
"#Top">Secrets of Cinelerra
</a>
334 <li><a name=
"toc_Top" href=
"#Top">1 SHORT CONTENTS
</a>
335 <li><a name=
"toc_ABOUT-CINELERRA" href=
"#ABOUT-CINELERRA">2 ABOUT CINELERRA
</a>
337 <li><a href=
"#ABOUT-THIS-MANUAL">2.1 ABOUT THIS MANUAL
</a>
339 <li><a name=
"toc_INSTALLATION" href=
"#INSTALLATION">3 INSTALLATION
</a>
341 <li><a href=
"#INSTALLING-AN-RPM">3.1 INSTALLING AN RPM
</a>
342 <li><a href=
"#COMPILING-FROM-SCRATCH">3.2 COMPILING FROM SCRATCH
</a>
343 <li><a href=
"#RUNNING-CINELERRA">3.3 RUNNING CINELERRA
</a>
345 <li><a name=
"toc_CONFIGURATION" href=
"#CONFIGURATION">4 CONFIGURATION
</a>
347 <li><a href=
"#ENVIRONMENT-VARIABLES">4.1 ENVIRONMENT VARIABLES
</a>
348 <li><a href=
"#PLAYBACK">4.2 PLAYBACK
</a>
350 <li><a href=
"#AUDIO-OUT">4.2.1 AUDIO OUT
</a>
352 <li><a href=
"#COMMON-SOUND-DRIVER-ATTRIBUTES">4.2.1.1 COMMON SOUND DRIVER ATTRIBUTES
</a>
353 <li><a href=
"#OSS">4.2.1.2 OSS
</a>
354 <li><a href=
"#OSS-Envy24">4.2.1.3 OSS Envy24
</a>
355 <li><a href=
"#ALSA">4.2.1.4 ALSA
</a>
356 <li><a href=
"#ESOUND">4.2.1.5 ESOUND
</a>
357 <li><a href=
"#RAW-1394">4.2.1.6 RAW
1394</a>
358 <li><a href=
"#DV-1394">4.2.1.7 DV
1394</a>
359 <li><a href=
"#IEC-61883">4.2.1.8 IEC
61883</a>
361 <li><a href=
"#VIDEO-OUT">4.2.2 VIDEO OUT
</a>
363 <li><a href=
"#COMMON-VIDEO-DRIVER-ATTRIBUTES">4.2.2.1 COMMON VIDEO DRIVER ATTRIBUTES
</a>
364 <li><a href=
"#X11">4.2.2.2 X11
</a>
365 <li><a href=
"#X11_002dXV">4.2.2.3 X11-XV
</a>
366 <li><a href=
"#BUZ">4.2.2.4 BUZ
</a>
367 <li><a href=
"#RAW-1394-VIDEO-PLAYBACK">4.2.2.5 RAW
1394 VIDEO PLAYBACK
</a>
368 <li><a href=
"#DV-1394-VIDEO-PLAYBACK">4.2.2.6 DV
1394 VIDEO PLAYBACK
</a>
369 <li><a href=
"#IEC-61883-VIDEO-PLAYBACK">4.2.2.7 IEC
61883 VIDEO PLAYBACK
</a>
372 <li><a href=
"#RECORDING">4.3 RECORDING
</a>
374 <li><a href=
"#AUDIO-IN">4.3.1 AUDIO IN
</a>
375 <li><a href=
"#VIDEO-IN">4.3.2 VIDEO IN
</a>
377 <li><a href=
"#PERFORMANCE">4.4 PERFORMANCE
</a>
379 <li><a href=
"#BACKGROUND-RENDERING">4.4.1 BACKGROUND RENDERING
</a>
380 <li><a href=
"#RENDERFARM">4.4.2 RENDERFARM
</a>
382 <li><a href=
"#INTERFACE">4.5 INTERFACE
</a>
383 <li><a href=
"#ABOUT">4.6 ABOUT
</a>
385 <li><a name=
"toc_THE-MAIN-WINDOWS" href=
"#THE-MAIN-WINDOWS">5 THE MAIN WINDOWS
</a>
387 <li><a href=
"#VIEWER">5.1 VIEWER
</a>
388 <li><a href=
"#COMPOSITOR">5.2 COMPOSITOR
</a>
390 <li><a href=
"#PROTECT-VIDEO">5.2.1 PROTECT VIDEO
</a>
391 <li><a href=
"#MAGNIFYING-GLASS">5.2.2 MAGNIFYING GLASS
</a>
392 <li><a href=
"#MASKS-TOOL">5.2.3 MASKS TOOL
</a>
393 <li><a href=
"#CAMERA">5.2.4 CAMERA
</a>
394 <li><a href=
"#PROJECTOR">5.2.5 PROJECTOR
</a>
395 <li><a href=
"#CROP-TOOL">5.2.6 CROP TOOL
</a>
396 <li><a href=
"#EYEDROPPER">5.2.7 EYEDROPPER
</a>
397 <li><a href=
"#TOOL-INFO">5.2.8 TOOL INFO
</a>
398 <li><a href=
"#SAFE-REGIONS-TOOL">5.2.9 SAFE REGIONS TOOL
</a>
400 <li><a href=
"#PROGRAM">5.3 PROGRAM
</a>
401 <li><a href=
"#RESOURCES">5.4 RESOURCES
</a>
402 <li><a href=
"#SOUND-LEVEL-METERS">5.5 SOUND LEVEL METERS
</a>
403 <li><a href=
"#OTHER-WINDOWS">5.6 OTHER WINDOWS
</a>
405 <li><a name=
"toc_LOADING-AND-SAVING-FILES" href=
"#LOADING-AND-SAVING-FILES">6 LOADING AND SAVING FILES
</a>
407 <li><a href=
"#SUPPORTED-FILE-FORMATS">6.1 SUPPORTED FILE FORMATS
</a>
409 <li><a href=
"#QUICKTIME">6.1.1 QUICKTIME
</a>
410 <li><a href=
"#MPEG_002d4-AUDIO">6.1.2 MPEG-
4 AUDIO
</a>
411 <li><a href=
"#IMAGE-SEQUENCES">6.1.3 IMAGE SEQUENCES
</a>
412 <li><a href=
"#STILL-IMAGES">6.1.4 STILL IMAGES
</a>
414 <li><a href=
"#OPEN-EXR-IMAGES">6.1.4.1 OPEN EXR IMAGES
</a>
415 <li><a href=
"#RAW-DIGITAL-CAMERA-IMAGES">6.1.4.2 RAW DIGITAL CAMERA IMAGES
</a>
417 <li><a href=
"#AVI">6.1.5 AVI
</a>
418 <li><a href=
"#MPEG-FILES-CONTAINING-VIDEO">6.1.6 MPEG FILES CONTAINING VIDEO
</a>
419 <li><a href=
"#DVD-MOVIES">6.1.7 DVD MOVIES
</a>
420 <li><a href=
"#MPEG-1-AUDIO">6.1.8 MPEG
1 AUDIO
</a>
421 <li><a href=
"#OGG-THEORA_002fVORBIS">6.1.9 OGG THEORA/VORBIS
</a>
422 <li><a href=
"#EDIT-DECISION-LIST">6.1.10 EDIT DECISION LIST
</a>
424 <li><a href=
"#LOADING-FILES">6.2 LOADING FILES
</a>
426 <li><a href=
"#INSERTION-STRATEGY">6.2.1 INSERTION STRATEGY
</a>
427 <li><a href=
"#LOADING-MULTIPLE-FILES">6.2.2 LOADING MULTIPLE FILES
</a>
429 <li><a href=
"#LOADING-THE-BACKUP">6.3 LOADING THE BACKUP
</a>
430 <li><a href=
"#SAVING-FILES">6.4 SAVING FILES
</a>
431 <li><a href=
"#RENDERING-FILES">6.5 RENDERING FILES
</a>
433 <li><a href=
"#SINGLE-FILE-RENDERING">6.5.1 SINGLE FILE RENDERING
</a>
434 <li><a href=
"#BATCH-RENDERING">6.5.2 BATCH RENDERING
</a>
435 <li><a href=
"#THE-RENDER-FARM">6.5.3 THE RENDER FARM
</a>
436 <li><a href=
"#COMMAND-LINE-RENDERING">6.5.4 COMMAND LINE RENDERING
</a>
439 <li><a name=
"toc_NAVIGATING-THE-PROJECT" href=
"#NAVIGATING-THE-PROJECT">7 NAVIGATING THE PROJECT
</a>
441 <li><a href=
"#NAVIGATING-THE-PROGRAM-WINDOW">7.1 NAVIGATING THE PROGRAM WINDOW
</a>
443 <li><a href=
"#THE-INSERTION-POINT">7.1.1 THE INSERTION POINT
</a>
444 <li><a href=
"#THE-IN_002fOUT-POINTS">7.1.2 THE IN/OUT POINTS
</a>
445 <li><a href=
"#USING-LABELS-IN-THE-PROGRAM-WINDOW">7.1.3 USING LABELS IN THE PROGRAM WINDOW
</a>
447 <li><a href=
"#NAVIGATING-THE-VIEWER-AND-COMPOSITOR">7.2 NAVIGATING THE VIEWER AND COMPOSITOR
</a>
448 <li><a href=
"#NAVIGATING-THE-RESOURCES">7.3 NAVIGATING THE RESOURCES
</a>
449 <li><a href=
"#USING-THE-TRANSPORT-CONTROLS">7.4 USING THE TRANSPORT CONTROLS
</a>
450 <li><a href=
"#USING-BACKGROUND-RENDERING">7.5 USING BACKGROUND RENDERING
</a>
452 <li><a name=
"toc_EDITING" href=
"#EDITING">8 EDITING
</a>
454 <li><a href=
"#THE-PATCHBAY">8.1 THE PATCHBAY
</a>
455 <li><a href=
"#NUDGING-TRACKS">8.2 NUDGING TRACKS
</a>
456 <li><a href=
"#MANIPULATING-TRACKS">8.3 MANIPULATING TRACKS
</a>
457 <li><a href=
"#TWO-SCREEN-EDITING">8.4 TWO SCREEN EDITING
</a>
458 <li><a href=
"#DRAG-AND-DROP-EDITING">8.5 DRAG AND DROP EDITING
</a>
459 <li><a href=
"#CUT-AND-PASTE-EDITING">8.6 CUT AND PASTE EDITING
</a>
460 <li><a href=
"#TRIMMING">8.7 TRIMMING
</a>
462 <li><a name=
"toc_USING-EFFECTS" href=
"#USING-EFFECTS">9 USING EFFECTS
</a>
464 <li><a href=
"#REALTIME-EFFECTS">9.1 REALTIME EFFECTS
</a>
466 <li><a href=
"#REALTIME-EFFECT-TYPES">9.1.1 REALTIME EFFECT TYPES
</a>
467 <li><a href=
"#EDITING-REALTIME-EFFECTS">9.1.2 EDITING REALTIME EFFECTS
</a>
469 <li><a href=
"#RENDERED-EFFECTS">9.2 RENDERED EFFECTS
</a>
470 <li><a href=
"#TRANSITIONS">9.3 TRANSITIONS
</a>
471 <li><a href=
"#LADSPA-EFFECTS">9.4 LADSPA EFFECTS
</a>
473 <li><a name=
"toc_SETTING-PROJECT-ATTRIBUTES" href=
"#SETTING-PROJECT-ATTRIBUTES">10 SETTING PROJECT ATTRIBUTES
</a>
474 <li><a name=
"toc_COMPOSITING" href=
"#COMPOSITING">11 COMPOSITING
</a>
476 <li><a href=
"#THE-CAMERA-AND-PROJECTOR">11.1 THE CAMERA AND PROJECTOR
</a>
477 <li><a href=
"#MASKS">11.2 MASKS
</a>
478 <li><a href=
"#CROPPING">11.3 CROPPING
</a>
479 <li><a href=
"#SAFE-REGIONS">11.4 SAFE REGIONS
</a>
480 <li><a href=
"#OVERLAY-MODES">11.5 OVERLAY MODES
</a>
481 <li><a href=
"#TRACK-AND-OUTPUT-SIZES">11.6 TRACK AND OUTPUT SIZES
</a>
483 <li><a name=
"toc_KEYFRAMES" href=
"#KEYFRAMES">12 KEYFRAMES
</a>
485 <li><a href=
"#CURVE-KEYFRAMES">12.1 CURVE KEYFRAMES
</a>
487 <li><a href=
"#NAVIGATING-CURVE-KEYFRAMES">12.1.1 NAVIGATING CURVE KEYFRAMES
</a>
489 <li><a href=
"#TOGGLE-KEYFRAMES">12.2 TOGGLE KEYFRAMES
</a>
490 <li><a href=
"#AUTOMATIC-KEYFRAMES">12.3 AUTOMATIC KEYFRAMES
</a>
491 <li><a href=
"#COMPOSITOR-KEYFRAMES">12.4 COMPOSITOR KEYFRAMES
</a>
492 <li><a href=
"#EDITING-KEYFRAMES">12.5 EDITING KEYFRAMES
</a>
494 <li><a name=
"toc_CAPTURING-MEDIA" href=
"#CAPTURING-MEDIA">13 CAPTURING MEDIA
</a>
496 <li><a href=
"#BATCHES">13.1 BATCHES
</a>
497 <li><a href=
"#EDITING-TUNER-INFORMATION">13.2 EDITING TUNER INFORMATION
</a>
499 <li><a name=
"toc_IMPROVING-PERFORMANCE" href=
"#IMPROVING-PERFORMANCE">14 IMPROVING PERFORMANCE
</a>
501 <li><a href=
"#DISABLING-SWAP-SPACE">14.1 DISABLING SWAP SPACE
</a>
502 <li><a href=
"#ENLARGING-SOUND-BUFFERS">14.2 ENLARGING SOUND BUFFERS
</a>
503 <li><a href=
"#FREEING-MORE-SHARED-MEMORY">14.3 FREEING MORE SHARED MEMORY
</a>
504 <li><a href=
"#SPEEDING-UP-THE-HARD-DRIVE">14.4 SPEEDING UP THE HARD DRIVE
</a>
505 <li><a href=
"#DISABLING-CRON">14.5 DISABLING CRON
</a>
506 <li><a href=
"#REDUCING-USB-MOUSE-SENSITIVITY">14.6 REDUCING USB MOUSE SENSITIVITY
</a>
507 <li><a href=
"#ASSORTED-X-TWEEKS">14.7 ASSORTED X TWEEKS
</a>
508 <li><a href=
"#SPEEDING-UP-THE-FILE-SYSTEM">14.8 SPEEDING UP THE FILE SYSTEM
</a>
509 <li><a href=
"#IMPROVING-ZORAN-VIDEO">14.9 IMPROVING ZORAN VIDEO
</a>
511 <li><a href=
"#IMPROVING-ZORAN-VIDEO">14.9.1 NEW IN
2.6.5</a>
514 <li><a name=
"toc_TROUBLESHOOTING" href=
"#TROUBLESHOOTING">15 TROUBLESHOOTING
</a>
516 <li><a href=
"#BUZ-DRIVER-CRASHES">15.1 BUZ DRIVER CRASHES
</a>
517 <li><a href=
"#DRAGGING-IN-AND-OUT-POINTS-DOESN_0027T-WORK">15.2 DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>
518 <li><a href=
"#LOCKING-UP-WHEN-LOADING-FILES">15.3 LOCKING UP WHEN LOADING FILES
</a>
519 <li><a href=
"#SYNCHRONIZATION-LOST-WHILE-RECORDING">15.4 SYNCHRONIZATION LOST WHILE RECORDING
</a>
521 <li><a name=
"toc_SECRETS-OF-CINELERRA" href=
"#SECRETS-OF-CINELERRA">16 SECRETS OF CINELERRA
</a>
523 <li><a href=
"#DOLBY-PRO-LOGIC-ENCODING">16.1 DOLBY PRO LOGIC ENCODING
</a>
524 <li><a href=
"#ANALOG-TV-CLEANING">16.2 ANALOG TV CLEANING
</a>
525 <li><a href=
"#DEFEATING-INTERLACING">16.3 DEFEATING INTERLACING
</a>
526 <li><a href=
"#MAKING-VIDEO-LOOK-LIKE-FILM">16.4 MAKING VIDEO LOOK LIKE FILM
</a>
527 <li><a href=
"#CLEARING-OUT-HAZE">16.5 CLEARING OUT HAZE
</a>
529 <li><a name=
"toc_SECRETS-OF-CINELERRA-EFFECTS" href=
"#SECRETS-OF-CINELERRA-EFFECTS">17 SECRETS OF CINELERRA EFFECTS
</a>
531 <li><a href=
"#1080-TO-480">17.1 1080 TO
480</a>
532 <li><a href=
"#CHROMA-KEY">17.2 CHROMA KEY
</a>
533 <li><a href=
"#COMPRESSOR">17.3 COMPRESSOR
</a>
534 <li><a href=
"#DECIMATE">17.4 DECIMATE
</a>
535 <li><a href=
"#DEINTERLACE">17.5 DEINTERLACE
</a>
536 <li><a href=
"#DIFFERENCE-KEY">17.6 DIFFERENCE KEY
</a>
537 <li><a href=
"#FREEZE-FRAME">17.7 FREEZE FRAME
</a>
538 <li><a href=
"#HISTOGRAM">17.8 HISTOGRAM
</a>
539 <li><a href=
"#INVERSE-TELECINE">17.9 INVERSE TELECINE
</a>
540 <li><a href=
"#INTERPOLATE-VIDEO">17.10 INTERPOLATE VIDEO
</a>
541 <li><a href=
"#LINEARIZE">17.11 LINEARIZE
</a>
542 <li><a href=
"#LOOP">17.12 LOOP
</a>
543 <li><a href=
"#MOTION">17.13 MOTION
</a>
545 <li><a href=
"#SECRETS-OF-MOTION-TRACKING">17.13.1 SECRETS OF MOTION TRACKING
</a>
546 <li><a href=
"#2-PASS-MOTION-TRACKING">17.13.2 2 PASS MOTION TRACKING
</a>
547 <li><a href=
"#USING-BLUR-TO-IMPROVE-MOTION-TRACKING">17.13.3 USING BLUR TO IMPROVE MOTION TRACKING
</a>
548 <li><a href=
"#USING-HISTOGRAM-TO-IMPROVE-MOTION-TRACKING">17.13.4 USING HISTOGRAM TO IMPROVE MOTION TRACKING
</a>
550 <li><a href=
"#REFRAMERT">17.14 REFRAMERT
</a>
551 <li><a href=
"#REFRAME">17.15 REFRAME
</a>
552 <li><a href=
"#RESAMPLE">17.16 RESAMPLE
</a>
553 <li><a href=
"#REVERSE-VIDEO_002fAUDIO">17.17 REVERSE VIDEO/AUDIO
</a>
554 <li><a href=
"#THRESHOLD">17.18 THRESHOLD
</a>
555 <li><a href=
"#TIME-AVERAGE">17.19 TIME AVERAGE
</a>
556 <li><a href=
"#TITLER">17.20 TITLER
</a>
558 <li><a href=
"#ADDING-FONTS-TO-THE-TITLER">17.20.1 ADDING FONTS TO THE TITLER
</a>
559 <li><a href=
"#THE-TITLE_002dSAFE-REGION">17.20.2 THE TITLE-SAFE REGION
</a>
561 <li><a href=
"#VIDEO-SCOPE">17.21 VIDEO SCOPE
</a>
563 <li><a name=
"toc_PLUGIN-AUTHORING" href=
"#PLUGIN-AUTHORING">18 PLUGIN AUTHORING
</a>
565 <li><a href=
"#INTRODUCING-THE-PULL-METHOD">18.1 INTRODUCING THE PULL METHOD
</a>
566 <li><a href=
"#COMMON-PLUGIN-FUNCTIONS">18.2 COMMON PLUGIN FUNCTIONS
</a>
568 <li><a href=
"#THE-PROCESSING-OBJECT">18.2.1 THE PROCESSING OBJECT
</a>
569 <li><a href=
"#THE-CONFIGURATION-OBJECT">18.2.2 THE CONFIGURATION OBJECT
</a>
570 <li><a href=
"#THE-USER-INTERFACE-OBJECT">18.2.3 THE USER INTERFACE OBJECT
</a>
572 <li><a href=
"#REALTIME-PLUGINS">18.3 REALTIME PLUGINS
</a>
573 <li><a href=
"#NONREALTIME-PLUGINS">18.4 NONREALTIME PLUGINS
</a>
574 <li><a href=
"#AUDIO-PLUGINS">18.5 AUDIO PLUGINS
</a>
575 <li><a href=
"#VIDEO-PLUGINS">18.6 VIDEO PLUGINS
</a>
576 <li><a href=
"#TRANSITION-PLUGINS">18.7 TRANSITION PLUGINS
</a>
577 <li><a href=
"#PLUGIN-GUI_0027S-WHICH-UPDATE-DURING-PLAYBACK">18.8 PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>
578 <li><a href=
"#PLUGIN-QUERIES">18.9 PLUGIN QUERIES
</a>
580 <li><a href=
"#SYSTEM-QUERIES">18.9.1 SYSTEM QUERIES
</a>
581 <li><a href=
"#TIMING-QUERIES">18.9.2 TIMING QUERIES
</a>
584 <li><a name=
"toc_KEYBOARD-SHORTCUTS" href=
"#KEYBOARD-SHORTCUTS">19 KEYBOARD SHORTCUTS
</a>
586 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1 PROGRAM WINDOW
</a>
588 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.1 Editing Media
</a>
589 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.2 Editing Labels
& In/Out Points
</a>
590 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.3 Navigation
</a>
591 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.4 File operations
</a>
592 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.5 Key Frame Editing
</a>
593 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.6 Track Manipulation
</a>
594 <li><a href=
"#KEYBOARD-SHORTCUTS">19.1.7 What's drawn on the timeline
</a>
596 <li><a href=
"#KEYBOARD-SHORTCUTS">19.2 VIEWER
& COMPOSITOR WINDOWS
</a>
597 <li><a href=
"#KEYBOARD-SHORTCUTS">19.3 PLAYBACK TRANSPORT
</a>
598 <li><a href=
"#KEYBOARD-SHORTCUTS">19.4 RECORD WINDOW
</a>
605 <a name=
"ABOUT-CINELERRA"></a>
606 Next:
<a rel=
"next" accesskey=
"n" href=
"#INSTALLATION">INSTALLATION
</a>,
607 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#Top">Top
</a>,
608 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
612 <h2 class=
"chapter">2 ABOUT CINELERRA
</h2>
614 <p>For years some people have wanted a way to edit their audio and video
615 in one place as fluidly as writing text. Cinelerra tries to be a
616 single location for all your audio and video editing needs. All the
617 recording, editing, and playback are handled here. It can be used as
618 an audio player. It can be used to record audio or video. It can even
619 be used as a photo retoucher.
621 <p>There are two types of moviegoers: producers who create new content,
622 going back over their content at future points for further refinement,
623 and consumers who want to acquire the content and watch it. Cinelerra
624 is not intended for consumers. Cinelerra has many features for
625 uncompressed content, high resolution processing, and compositing, with
626 very few shortcuts. Producers need these features because of the need
627 to retouch many generations of footage with alterations to the format,
628 which makes Cinelerra very complex. There are many more standard tools
629 for consumers like MainActor, Kino, or Moxy, which you should consider
630 before using Cinelerra.
632 <p>In
1996 our first editor came out: Broadcast
1.0. It was just a window
633 with a waveform in it, it could cut and paste stereo audio waveforms on
634 a UNIX box, except unlike other audio editors it could handle files up
635 to
2 gigabytes with only
64 megs of RAM. That was a feature normally
636 only accessible to the highest end professional audio houses.
638 <p>In
1997 Broadcast
1.0 was replaced by Broadcast
2.0. This time the
639 window had a menubar, patchbay, console, and transport control.
640 Broadcast
2.0 still only handled audio but this time it handled
641 unlimited tracks, and it could perform effects on audio and save the
642 resulting waveform to disk. More notably a few effects could be
643 performed as the audio was playing back, in realtime. A user could mix
644 unlimited numbers of tracks, adjust fade, pan, and EQ, and hear the
645 result instantly. Amazingly this real time tweeking is still
646 unavailable on most audio programs.
648 <p>But Broadcast
2.0 still didn't handle video and it wasn't very graceful
649 at audio either. In
1999 video broke into the story with Broadcast
650 2000. This iteration of the Broadcast series could do wonders with
651 audio and offered a pretty good video feature set. It could edit video
652 files up to
64 terabytes. It could do everything Broadcast
2.1 did
653 with audio except now all effects for video and audio could be chained
654 and performed on the fly, with instant feedback as a user tweeked
655 parameters during playback. Broadcast
2000 made it very easy to do a
656 lot of processing and editing on video and audio that would otherwise
657 involve many hours setting up command line sequences and writing to
658 disk. For a time it seemed as if the original dream of immersive movie
659 making for everyone regardless of income level had arrived.
661 <p>Later on Broadcast
2000 began to come short. Its audio and video was
662 graceful if you knew how to use it efficiently, but quality issues and
663 new user interface techniques were emerging. Broadcast
2000 kept the
664 audio interface from its ancestors, which didn't apply well to video.
665 Users likewise were maturing. No longer would it be sufficient to just
666 edit video on a UNIX box. Most users expected on UNIX the same thing
667 they got in Win or Mac. In mid
2000 designs for a Broadcast
2000
668 replacement were drafted. The Broadcast name was officially retired
669 from the series and the software would now be called Cinelerra.
670 Cinelerra would allow users to configure certain effects in much less
671 time than required with Broadcast
2000. It would begin to emulate some
672 of the features found in Win and Mac software while not attempting to
673 become a clone. It's interface would be designed for video from the
674 ground up, while supplementing that with the Broadcast audio
675 interface. As always, quality improvements would happen.
678 <li><a accesskey=
"1" href=
"#ABOUT-THIS-MANUAL">ABOUT THIS MANUAL
</a>
683 <a name=
"ABOUT-THIS-MANUAL"></a>
684 Up:
<a rel=
"up" accesskey=
"u" href=
"#ABOUT-CINELERRA">ABOUT CINELERRA
</a>
688 <h3 class=
"section">2.1 ABOUT THIS MANUAL
</h3>
690 <p>This manual is relevant only for the heroinewarrior.com version of
691 Cinelerra. If you are using the cinelerra.org fork, you should use the
692 manual for that version. The behavior of different forks is highly
695 <p>Organizing information in the easiest manner for users to find out what
696 they need to know is sort of like cataloging the internet. They've
697 been trying to get it right for
30 years and will probably keep trying
698 until the end of time.
700 <p>There a lot of fragments of documentation scattered throughout the
701 internet about Cinelerra. This document attempts to combine all the
702 pieces of information in one piece.
704 <p>Like the operating system and compiler for a piece of software, the
705 document writing format is the most important thing in choosing our
706 document format. We wanted a format which would be readable regardless
707 of corporate whims and fads. A piece of software which compiles on GCC
708 and Linux will be usable as long as there are C compilers. Documents
709 written in Texinfo will be readable as long as there's a C compiler.
711 <p>After many years of searching for the perfect documentation format
712 we've arrived at TexInfo. This format can be converted to HTML,
713 printed, automatically indexed, but most importantly is not bound to
714 any commercial word processor.
716 <p>There are no screenshots in this manual. Screenshots become obsolete
717 quickly and as a result confuse the users. What looks one way in a
718 screenshot will always look different in the real program because the
719 real program and the manual are always evolving, never perfectly
720 synchronized. It is true that manuals should have screenshots, but our
721 objective in omitting screenshots is to keep the software costs minimal
722 so you don't have to pay for it. That includes additional labor to
723 synchronize the manual with the software.
725 <p>In addition to telling you the basic editing features of Cinelerra this
726 manual covers tricks that won't be described anywhere else. We're
727 going to try to come up with certain things you can do with Cinelerra
728 that you wouldn't think of on your own.
732 <a name=
"INSTALLATION"></a>
733 Next:
<a rel=
"next" accesskey=
"n" href=
"#CONFIGURATION">CONFIGURATION
</a>,
734 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ABOUT-CINELERRA">ABOUT CINELERRA
</a>,
735 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
739 <h2 class=
"chapter">3 INSTALLATION
</h2>
741 <p>The Cinelerra package contains Cinelerra and most of the libraries
742 needed to run it. We try to include all the dependancies because of
743 the difficulty in tracking down the right versions. Also included are
744 some utilities for handling files. The following are the general
745 contents of all Cinelerra packages.
749 <b>Foreign language translations
</b> - These go into /usr/share/locale.
752 <b>Cinelerra executable
</b> - This goes into /usr/bin
755 <b>Cinelerra plugins
</b> - These go into /usr/lib/cinelerra in
32 bit
756 systems and /usr/lib64/cinelerra in
64 bit systems.
759 <b>soundtest
</b> - Utility for determining sound card buffer size.
762 <b>mplexlo
</b> - Multiplexing of MPEG elementary streams without standards
763 conformance but more efficiently.
766 <b>mpeg3cat
</b> - Utility for reading an MPEG file from a certain standard
767 and outputting it to stdout.
770 <b>mpeg3toc, mpeg3cat, mpeg3dump
</b> - Utilities/ for indexing and reading MPEG files.
773 <b>mpeg3peek
</b> - Utility for displaying the byte offset of a frame in an
779 <li><a accesskey=
"1" href=
"#INSTALLING-AN-RPM">INSTALLING AN RPM
</a>
780 <li><a accesskey=
"2" href=
"#COMPILING-FROM-SCRATCH">COMPILING FROM SCRATCH
</a>
781 <li><a accesskey=
"3" href=
"#RUNNING-CINELERRA">RUNNING CINELERRA
</a>
786 <a name=
"INSTALLING-AN-RPM"></a>
787 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMPILING-FROM-SCRATCH">COMPILING FROM SCRATCH
</a>,
788 Up:
<a rel=
"up" accesskey=
"u" href=
"#INSTALLATION">INSTALLATION
</a>
792 <h3 class=
"section">3.1 INSTALLING AN RPM
</h3>
794 <p>Cinelerra is easiest installed by downloading an RPM and running
796 <pre class=
"example"> rpm -U --force --nodeps hvirtual*.rpm
798 <p>on a Fedora
4 system.
800 <p>On systems which don't support RPM look for a utility called
801 <b>rpm2cpio
</b>. Download a Cinelerra RPM and from the /
804 <pre class=
"example"> rpm2cpio hvirtual*.rpm | cpio -i --make-directories
806 <p>This doesn't always work because there are many forks of the C library,
807 each incompatible with the others. This is the biggest reason to
808 compile from scratch.
812 <a name=
"COMPILING-FROM-SCRATCH"></a>
813 Next:
<a rel=
"next" accesskey=
"n" href=
"#RUNNING-CINELERRA">RUNNING CINELERRA
</a>,
814 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INSTALLING-AN-RPM">INSTALLING AN RPM
</a>,
815 Up:
<a rel=
"up" accesskey=
"u" href=
"#INSTALLATION">INSTALLATION
</a>
819 <h3 class=
"section">3.2 COMPILING FROM SCRATCH
</h3>
821 <p>It should be noted that the compiler used in building Cinelerra
822 binaries is the free GNU compiler and very conservative optimization
823 flags. Alternative optimization flags and compilers produce varying
824 results. Compiling the source is hard and there's no warranty if the
825 source code fails to compile, but the method for compiling starts by
826 downloading the source code and decompressing.
828 <p>The compilation is verified on a vanilla Fedora
4 installation,
829 workstation mode. Fedora doesn't install a lot of dependancies like
830 <b>nasm
</b> and
<b>yasm
</b>. Yes,
3 assemblers are now required to assemble
831 x86 code. Compiling the source is hard and there's no warranty if the
832 source code fails to compile, but the method for compiling starts by
833 downloading the source code and decompressing.
835 <pre class=
"example"> tar jxf cinelerra*.tar.bz2
837 <p>The compilation is verified on a Fedora
4 installation. Fedora
4
838 doesn't install a lot of the reqiured compilers. Mainly
<b>nasm
</b> and
839 <b>yasm
</b>,
2 of the
3 assemblers. These have to be installed manually
840 for compilation to succeed.
842 <p>Enter the hvirtual directory
844 <pre class=
"example"> cd cinelerra
848 <pre class=
"example"> ./configure
850 <p>This checks the build environment for the right tools and should give
851 you an error if a tool is missing. Once that succeeds run
853 <pre class=
"example"> make
855 <p>The make procedure should run through all the directories and put
856 binaries in the
<b>i686
</b> or
<b>x86_64
</b> directories. When NFS was
857 a lot faster, we compiled Alpha and i686 binaries in the same
858 filesystem with the objects in different subdirectories, so all the
859 binaries are still put in subdirectories.
861 <p>A lot of libraries are included to get the version numbers right. Some
862 of the libraries don't compile on SMP systems. One solution is to
863 disable SMP when rebooting and reenable it when compilation is
864 finished. Another solution is to rerun make over and over until it
865 gets through the offending libraries.
867 <p>Once finished, make sure you are root and run
869 <pre class=
"example"> make install
871 <p>to install the binaries. If installation fails it means something
872 failed to compile or you weren't root. Run
<b>make
</b> again and watch
875 <p>Sometimes you'll want to run
<b>make clean
</b> if you're programming
876 something or the system libraries change. In this case, you'll
877 probably need to run
<b>configure
</b> again because some libraries delete
878 their configuration files in
<b>make clean
</b>.
882 <a name=
"RUNNING-CINELERRA"></a>
883 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMPILING-FROM-SCRATCH">COMPILING FROM SCRATCH
</a>,
884 Up:
<a rel=
"up" accesskey=
"u" href=
"#INSTALLATION">INSTALLATION
</a>
888 <h3 class=
"section">3.3 RUNNING CINELERRA
</h3>
890 <p>The simplest way to run Cinelerra is by running
892 <pre class=
"example"> /usr/bin/cinelerra
894 <p>This command hides a much more capable command line interface. Run
895 <b>cinelerra -h
</b> to get a listing of command line options. The use of
896 these options is described in several sections.
898 <p>For rendering from the command line See
<a href=
"#RENDERING-FILES">RENDERING FILES
</a>.
902 <a name=
"CONFIGURATION"></a>
903 Next:
<a rel=
"next" accesskey=
"n" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>,
904 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INSTALLATION">INSTALLATION
</a>,
905 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
909 <h2 class=
"chapter">4 CONFIGURATION
</h2>
911 <p>Because of the variety of uses, Cinelerra cannot be run optimally
912 without some intimate configuration for your specific needs. Very few
913 parameters are adjustible at compile time. Runtime configuration is
914 the only option for most configuration because of the multitude of
917 <p>Here we discuss not only the configuration options but which of the
918 different API's in Linux are supported.
920 <p>Go to
<b>settings-
>preferences
</b> and to see the options.
923 <li><a accesskey=
"1" href=
"#ENVIRONMENT-VARIABLES">ENVIRONMENT VARIABLES
</a>: These environment variables are recognized by Cinelerra
924 <li><a accesskey=
"2" href=
"#PLAYBACK">PLAYBACK
</a>: Configuring parameters related to playback.
925 <li><a accesskey=
"3" href=
"#RECORDING">RECORDING
</a>: Configuring parameters related to recording.
926 <li><a accesskey=
"4" href=
"#PERFORMANCE">PERFORMANCE
</a>: Configuring parameters related to how fast things go.
927 <li><a accesskey=
"5" href=
"#INTERFACE">INTERFACE
</a>: Configuring the user interface.
928 <li><a accesskey=
"6" href=
"#ABOUT">ABOUT
</a>: Viewing information about the program.
933 <a name=
"ENVIRONMENT-VARIABLES"></a>
934 Next:
<a rel=
"next" accesskey=
"n" href=
"#PLAYBACK">PLAYBACK
</a>,
935 Up:
<a rel=
"up" accesskey=
"u" href=
"#CONFIGURATION">CONFIGURATION
</a>
939 <h3 class=
"section">4.1 ENVIRONMENT VARIABLES
</h3>
941 <p>In UNIX derivatives, environment variables are global variables in the
942 shell which all applications can read. They are set with a command
943 like
<b>set VARIABLE=value
</b>. All the environment variables can be
944 viewed with a command like
<b>env
</b>. Cinelerra recognizes the following
945 environment variables:
948 <li><b>LADSPA_PATH
</b> - If you want to use LADSPA plugins, this must be
949 defined: a colon separated list of directories to search for LADSPA
950 plugins. These are not native Cinelerra plugins. See
<a href=
"#LADSPA-EFFECTS">LADSPA EFFECTS
</a>.
956 <a name=
"PLAYBACK"></a>
957 Next:
<a rel=
"next" accesskey=
"n" href=
"#RECORDING">RECORDING
</a>,
958 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ENVIRONMENT-VARIABLES">ENVIRONMENT VARIABLES
</a>,
959 Up:
<a rel=
"up" accesskey=
"u" href=
"#CONFIGURATION">CONFIGURATION
</a>
963 <h3 class=
"section">4.2 PLAYBACK
</h3>
966 <li><a accesskey=
"1" href=
"#AUDIO-OUT">AUDIO OUT
</a>
967 <li><a accesskey=
"2" href=
"#VIDEO-OUT">VIDEO OUT
</a>
972 <a name=
"AUDIO-OUT"></a>
973 Next:
<a rel=
"next" accesskey=
"n" href=
"#VIDEO-OUT">VIDEO OUT
</a>,
974 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLAYBACK">PLAYBACK
</a>
978 <h4 class=
"subsection">4.2.1 AUDIO OUT
</h4>
980 <p>These determine what happens when you play sound from the timeline.
983 <li>SAMPLES TO SEND TO CONSOLE:
985 <p>For playing audio, small fragments of sound are read from disk and
986 processed in a virtual console sequentially. A larger value here
987 causes more latency when you change mixing parameters but gives more
990 <p>Some sound drivers don't allow changing of the console fragment so
991 latency is unchanged no matter what this value is.
993 <p>A good way of ensuring high quality playback was to read bigger
994 fragments from the disk and break them into smaller fragments for the
995 soundcard. That changed when the virtual console moved from the push
996 model to the pull model. Since different stages of the rendering
997 pipeline can change the rate of the incoming data, it would now be real
998 hard to disconnect size of the console fragments from the size of the
999 fragments read from disk.
1004 <p>The ability to tell the exact playback position on Linux sound drivers
1005 is pretty bad if it's provided at all. Since this information is
1006 required for proper video synchronization, it has to be accurate. The
1007 <b>AUDIO OFFSET
</b> allows users to adjust the position returned by the
1008 sound driver to reflect reality. The audio offset doesn't affect the
1009 audio playback or rendering at all. It merely changes the
1010 synchronization of video playback.
1012 <p>The easiest way to set the audio offset is to create a timeline with
1
1013 video track and one audio track. Expand the audio track and center the
1014 audio pan. The frame rate should be something over
24fps and the
1015 sampling rate should be over
32000. The frame size should be small
1016 enough for your computer to render it at the full framerate. Highlight
1017 a region of the timeline starting at
10 seconds and ending at
20
1018 seconds. Drop a
<b>gradient
</b> effect on the video track and configure
1019 it to be clearly visible. Drop a
<b>synthesizer
</b> effect on the audio
1020 and configure it to be clearly audible.
1022 <p>Play the timeline from
0 and watch to see if the gradient effect starts
1023 exactly when the audio starts. If it doesn't, expand the audio track
1024 and adjust the nudge. If the audio starts ahead of the video, decrease
1025 the nudge value. If the audio starts after the video, increase the
1026 nudge value. Once the tracks play back synchronized, copy the nudge
1027 value to the
<b>AUDIO OFFSET
</b> value in preferences.
1029 <p><b>Note:
</b> if you change sound drivers or you change the value of
<b>USE
1030 SOFTWARE FOR POSITIONING INFORMATION
</b>, you'll need to change the audio
1031 offset because different sound drivers are unequally inaccurate.
1034 VIEW FOLLOWS PLAYBACK
1036 <p>Causes the timeline window to scroll when the playback cursor moves.
1037 This can bog down the X Server or cause the timeline window to lock up
1038 for long periods of time while drawing the assetse.
1040 <li>USE SOFTWARE FOR POSITIONING INFORMATION
1042 <p>Most soundcards and sound drivers don't give reliable information on
1043 the number of samples the card has played. When playing video you need
1044 this information for synchronization. This option causes the sound
1045 driver to be ignored and a software timer to be used for
1048 <li>AUDIO PLAYBACK IN REALTIME:
1050 <p>Back in the days when
150Mhz was the maximum, this allowed
1051 uninterrupted playback on heavy loads. It forces the audio playback to
1052 the highest priority in the kernel. Today it's most useful for
1053 achieving very low latency between console tweeks and soundcard
1054 output. You must be root to get realtime priority.
1058 <p>There are many sound drivers for Linux. This allows selecting one
1059 sound driver and setting parameters specific to it. Here is a
1060 description of the sound drivers.
1065 <li><a accesskey=
"1" href=
"#COMMON-SOUND-DRIVER-ATTRIBUTES">COMMON SOUND DRIVER ATTRIBUTES
</a>
1066 <li><a accesskey=
"2" href=
"#OSS">OSS
</a>
1067 <li><a accesskey=
"3" href=
"#OSS-Envy24">OSS Envy24
</a>
1068 <li><a accesskey=
"4" href=
"#ALSA">ALSA
</a>
1069 <li><a accesskey=
"5" href=
"#ESOUND">ESOUND
</a>
1070 <li><a accesskey=
"6" href=
"#RAW-1394">RAW
1394</a>
1071 <li><a accesskey=
"7" href=
"#DV-1394">DV
1394</a>
1072 <li><a accesskey=
"8" href=
"#IEC-61883">IEC
61883</a>
1077 <a name=
"COMMON-SOUND-DRIVER-ATTRIBUTES"></a>
1078 Next:
<a rel=
"next" accesskey=
"n" href=
"#OSS">OSS
</a>,
1079 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1083 <h5 class=
"subsubsection">4.2.1.1 COMMON SOUND DRIVER ATTRIBUTES
</h5>
1088 <p>Usually a file in the
<b>/dev/
</b> directory which controls the
1094 <p>The number of bits of precision Cinelerra should set the device for.
1095 This sometimes has a figuritive meaning. Some sound drivers need to be
1096 set to
32 bits to perform
24 bit playback and won't play anything when
1097 set to
24 bits. Some sound drivers need to be set to
24 bits for
24
1103 <p>The number of channels Cinelerra should set the device for. Regardless
1104 of the number of channels in the project, the number of channels set
1105 here will be written to the device. When this is set to
2 and the
1106 project has
1 channel you'll hear sound through the left speaker and
1107 not centered as expected for a monaural project. When this is set to
1
1108 and the project has
2 channels you'll hear the left channel centered
1109 and not
2 channels mixed together.
1116 Next:
<a rel=
"next" accesskey=
"n" href=
"#OSS-Envy24">OSS Envy24
</a>,
1117 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMMON-SOUND-DRIVER-ATTRIBUTES">COMMON SOUND DRIVER ATTRIBUTES
</a>,
1118 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1122 <h5 class=
"subsubsection">4.2.1.2 OSS
</h5>
1124 <p>This was the first Linux sound driver. It had an open source
1125 implementation and a commercial implementation with more sound cards
1126 supported. It was the standard sound driver up to linux
2.4. It still
1127 is the only sound driver which an i386 binary can use when running on
1132 <a name=
"OSS-Envy24"></a>
1133 Next:
<a rel=
"next" accesskey=
"n" href=
"#ALSA">ALSA
</a>,
1134 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#OSS">OSS
</a>,
1135 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1139 <h5 class=
"subsubsection">4.2.1.3 OSS Envy24
</h5>
1141 <p>The commercial version of OSS had a variant for
24 bit
96 Khz
1142 soundcards. This variant required significant changes to the way the
1143 sound drivers were used, which is what the OSS Envy24 variant is for.
1148 Next:
<a rel=
"next" accesskey=
"n" href=
"#ESOUND">ESOUND
</a>,
1149 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#OSS-Envy24">OSS Envy24
</a>,
1150 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1154 <h5 class=
"subsubsection">4.2.1.4 ALSA
</h5>
1156 <p>ALSA is the most common sound driver in Linux
2.6. It supports the
1157 most sound cards now. It takes advantage of low latency features in
1158 Linux
2.6 to get better performance than OSS had in
2.4 but roughly the
1159 same performance that OSS had in
2.0. Unfortunately ALSA is constantly
1160 changing. A program which works with it one day may not the next day.
1161 New wrappers are being developed on top of ALSA at such a pace, we plan
1162 to support them at regular intervals, not at every new release of a new
1165 <p>ALSA is no longer portable between i386 and x86_64. If an i386 binary
1166 tries to play back on an x86_64 kernel it'll crash. For this scenario,
1171 <a name=
"ESOUND"></a>
1172 Next:
<a rel=
"next" accesskey=
"n" href=
"#RAW-1394">RAW
1394</a>,
1173 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ALSA">ALSA
</a>,
1174 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1178 <h5 class=
"subsubsection">4.2.1.5 ESOUND
</h5>
1180 <p>ESOUND is a sound server that sits on top of OSS. It was written for a
1181 window manager. It supports a limited number of bits and has high
1182 latency compared to modern times.
1186 <a name=
"RAW-1394"></a>
1187 Next:
<a rel=
"next" accesskey=
"n" href=
"#DV-1394">DV
1394</a>,
1188 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ESOUND">ESOUND
</a>,
1189 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1193 <h5 class=
"subsubsection">4.2.1.6 RAW
1394</h5>
1195 <p>The first interface between linux software and firewire camcorders.
1196 This was the least reliable way to play audio to a camcorder. It
1197 consisted of a library on top of the kernel commands.
1201 <a name=
"DV-1394"></a>
1202 Next:
<a rel=
"next" accesskey=
"n" href=
"#IEC-61883">IEC
61883</a>,
1203 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#RAW-1394">RAW
1394</a>,
1204 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1208 <h5 class=
"subsubsection">4.2.1.7 DV
1394</h5>
1210 <p>The second rewrite of DV camcorder support in Linux. This was the most
1211 reliable way to play audio to a camcorder. This consisted of direct
1216 <a name=
"IEC-61883"></a>
1217 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DV-1394">DV
1394</a>,
1218 Up:
<a rel=
"up" accesskey=
"u" href=
"#AUDIO-OUT">AUDIO OUT
</a>
1222 <h5 class=
"subsubsection">4.2.1.8 IEC
61883</h5>
1224 <p>The third rewrite of DV camcorder support in Linux. This is a library
1225 on top of RAW
1394 which is a library on top of the kernel commands.
1226 It's less reliable than DV
1394 but more reliable than RAW
1394. The
1227 next rewrite ought to fix that.
1231 <a name=
"VIDEO-OUT"></a>
1232 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#AUDIO-OUT">AUDIO OUT
</a>,
1233 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLAYBACK">PLAYBACK
</a>
1237 <h4 class=
"subsection">4.2.2 VIDEO OUT
</h4>
1239 <p>These determine how video gets from the timeline to your eyes.
1245 <p>The number of frames per second being displayed during playback. Start
1246 playback and stare at this intently.
1251 <p>When video playback involves any kind of scaling or translation, this
1252 algorithm is used. This doesn't affect
1:
1 playback.
1255 <li>NEAREST NEIGHBOR ENLARGE AND REDUCE
1257 <p>lowest but fastest
1258 quality. Produces jagged edges and uneven motion.
1261 BICUBIC ENLARGE AND BILINEAR REDUCE
1263 <p>highest but slowest
1264 quality. For enlarging a bicubic interpolation is used, which blurs
1265 slightly but doesn't reveal stair steps. For reduction a bilinear
1266 interpolation is used, which produces very sharp images and reduces
1267 noise. The bilinear reduced images can be sharpened with a sharpen
1268 effect with less noise than a normal sized image.
1271 BILINEAR ENLARGE AND BILINEAR REDUCE
1273 <p>when slight enlargement
1274 is needed a bilinear enlargement looks better than a bicubic
1280 PRELOAD BUFFER FOR QUICKTIME
1282 <p>The Quicktime/AVI decoder can handle DVD sources better when this is
1283 around
10000000. This reduces the amount of seeking required.
1284 Unfortunately when reading high bitrate sources from a hard drive, this
1285 tends to slow it down. For normal use this should be
0.
1291 <p>Normally video on the timeline goes to the compositor window during
1292 continuous playback and when the insertion point is repositioned.
1293 Instead of sending video to the Compositor window the video driver can
1294 be set to send video to another output device during continuous
1295 playback. This doesn't affect where video goes when the insertion
1296 point is repositioned, however.
1298 <p>The video drivers are now described.
1303 <li><a accesskey=
"1" href=
"#COMMON-VIDEO-DRIVER-ATTRIBUTES">COMMON VIDEO DRIVER ATTRIBUTES
</a>
1304 <li><a accesskey=
"2" href=
"#X11">X11
</a>
1305 <li><a accesskey=
"3" href=
"#X11_002dXV">X11-XV
</a>
1306 <li><a accesskey=
"4" href=
"#BUZ">BUZ
</a>
1307 <li><a accesskey=
"5" href=
"#RAW-1394-VIDEO-PLAYBACK">RAW
1394 VIDEO PLAYBACK
</a>
1308 <li><a accesskey=
"6" href=
"#DV-1394-VIDEO-PLAYBACK">DV
1394 VIDEO PLAYBACK
</a>
1309 <li><a accesskey=
"7" href=
"#IEC-61883-VIDEO-PLAYBACK">IEC
61883 VIDEO PLAYBACK
</a>
1314 <a name=
"COMMON-VIDEO-DRIVER-ATTRIBUTES"></a>
1315 Next:
<a rel=
"next" accesskey=
"n" href=
"#X11">X11
</a>,
1316 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1320 <h5 class=
"subsubsection">4.2.2.1 COMMON VIDEO DRIVER ATTRIBUTES
</h5>
1326 <p>The is intended for dual monitor
1327 displays. Depending on the value of Display, the Compositor window
1328 will appear on a different monitor from the rest of the windows.
1333 <p>Usually a file in the
<b>/dev/
</b> directory
1334 which controls the device.
1339 <p>Make the even lines odd and the odd lines even
1340 when sending to the device. On an NTSC or
1080i monitor the fields may
1341 need to be swapped to prevent jittery motion.
1346 <p>Devices with multiple outputs may need a
1347 specific connector to send video on.
1352 <p>The IEEE1394 standard specifies something known as the
1353 <b>port
</b>. This is probably the firewire card number in the system
1359 <p>The IEEE1394 standard specifies something known as the
1360 <b>channel
</b>. For DV cameras it's always
<b>63</b>.
1367 Next:
<a rel=
"next" accesskey=
"n" href=
"#X11_002dXV">X11-XV
</a>,
1368 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMMON-VIDEO-DRIVER-ATTRIBUTES">COMMON VIDEO DRIVER ATTRIBUTES
</a>,
1369 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1373 <h5 class=
"subsubsection">4.2.2.2 X11
</h5>
1375 <p>This was the first method of video playback on any UNIX system, valid
1376 all the way until
1999. It just writes the RGB triplet for each pixel
1377 directly to the window. It's the slowest playback method. It's still
1378 useful as a fallback when graphics hardware can't handle very large
1383 <a name=
"X11-XV"></a>
1384 <a name=
"X11_002dXV"></a>
1385 Next:
<a rel=
"next" accesskey=
"n" href=
"#BUZ">BUZ
</a>,
1386 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#X11">X11
</a>,
1387 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1391 <h5 class=
"subsubsection">4.2.2.3 X11-XV
</h5>
1393 <p>This was the second big method of video playback in UNIX starting in
1394 1999. It converts YUV to RGB in hardware with scaling. It's the
1395 preferred playback method but can't handle large frame sizes.
1400 Next:
<a rel=
"next" accesskey=
"n" href=
"#RAW-1394-VIDEO-PLAYBACK">RAW
1394 VIDEO PLAYBACK
</a>,
1401 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#X11_002dXV">X11-XV
</a>,
1402 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1406 <h5 class=
"subsubsection">4.2.2.4 BUZ
</h5>
1408 <p>This is a method for playing motion JPEG-A files directly to a
1409 composite analog signal. It uses a hack of the Video4Linux
1 driver to
1410 decompress JPEG in hardware.
1414 <a name=
"RAW-1394-VIDEO-PLAYBACK"></a>
1415 Next:
<a rel=
"next" accesskey=
"n" href=
"#DV-1394-VIDEO-PLAYBACK">DV
1394 VIDEO PLAYBACK
</a>,
1416 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#BUZ">BUZ
</a>,
1417 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1421 <h5 class=
"subsubsection">4.2.2.5 RAW
1394 VIDEO PLAYBACK
</h5>
1423 <p>The first interface between linux software and firewire camcorders.
1424 This was the least reliable way to play video to a camcorder. It
1425 consisted of a library on top of the kernel commands.
1429 <a name=
"DV-1394-VIDEO-PLAYBACK"></a>
1430 Next:
<a rel=
"next" accesskey=
"n" href=
"#IEC-61883-VIDEO-PLAYBACK">IEC
61883 VIDEO PLAYBACK
</a>,
1431 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#RAW-1394-VIDEO-PLAYBACK">RAW
1394 VIDEO PLAYBACK
</a>,
1432 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1436 <h5 class=
"subsubsection">4.2.2.6 DV
1394 VIDEO PLAYBACK
</h5>
1438 <p>The second rewrite of DV camcorder support in Linux. This was the most
1439 reliable way to play video to a camcorder. This consisted of direct
1444 <a name=
"IEC-61883-VIDEO-PLAYBACK"></a>
1445 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DV-1394-VIDEO-PLAYBACK">DV
1394 VIDEO PLAYBACK
</a>,
1446 Up:
<a rel=
"up" accesskey=
"u" href=
"#VIDEO-OUT">VIDEO OUT
</a>
1450 <h5 class=
"subsubsection">4.2.2.7 IEC
61883 VIDEO PLAYBACK
</h5>
1452 <p>The third rewrite of DV camcorder support in Linux. This is a library
1453 on top of RAW
1394 which is a library on top of the kernel commands.
1454 It's less reliable than DV
1394 but more reliable than RAW
1394. The
1455 next rewrite ought to fix that.
1459 <a name=
"RECORDING"></a>
1460 Next:
<a rel=
"next" accesskey=
"n" href=
"#PERFORMANCE">PERFORMANCE
</a>,
1461 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PLAYBACK">PLAYBACK
</a>,
1462 Up:
<a rel=
"up" accesskey=
"u" href=
"#CONFIGURATION">CONFIGURATION
</a>
1466 <h3 class=
"section">4.3 RECORDING
</h3>
1469 <li><a accesskey=
"1" href=
"#AUDIO-IN">AUDIO IN
</a>
1470 <li><a accesskey=
"2" href=
"#VIDEO-IN">VIDEO IN
</a>
1475 <a name=
"AUDIO-IN"></a>
1476 Next:
<a rel=
"next" accesskey=
"n" href=
"#VIDEO-IN">VIDEO IN
</a>,
1477 Up:
<a rel=
"up" accesskey=
"u" href=
"#RECORDING">RECORDING
</a>
1481 <h4 class=
"subsection">4.3.1 AUDIO IN
</h4>
1483 <p>These determine what happens when you record audio.
1489 <p>This is used for recording audio in the Record window. It may be
1490 shared with the Record Driver for video if the audio and video are
1491 wrapped in the same stream. It takes variable parameters depending on
1492 the driver. The parameters have the same meaning as they do for
1499 <p>Usually a file in the
<b>/dev/
</b> directory which controls the
1505 <p>The number of bits of precision Cinelerra should set the device for.
1506 This sometimes has a figuritive meaning. Some sound drivers need to be
1507 set to
32 bits to perform
24 bit recording and won't record anything
1508 when set to
24 bits. Some sound drivers need to be set to
24 bits for
1513 <p>The number of channels Cinelerra should set the device for. Regardless
1514 of the number of channels in the record operation, the number of
1515 channels set here will be read from the device. When this is set to
2
1516 and the record operation has
1 channel you'll record the left speaker
1517 and not a mix of the left and right speakers as expected for a monaural
1518 project. When this is set to
1 and the project has
2 channels you'll
1519 record the left and right channels mixed into the left speaker and not
1520 1 channel spead across two speakers.
1525 SAMPLES TO WRITE AT A TIME
1527 <p>Audio is first read in small fragments from the device. Many small
1528 fragments are combined into a large fragment before writing to disk.
1529 The disk writing process is done in a different thread. The value here
1530 determines how large the combination of fragments is for each disk
1534 SAMPLE RATE FOR RECORDING
1536 <p>Regardless of what the project settings are. This is the sample rate
1537 used for recording. This should be the highest the audio device
1544 <a name=
"VIDEO-IN"></a>
1545 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#AUDIO-IN">AUDIO IN
</a>,
1546 Up:
<a rel=
"up" accesskey=
"u" href=
"#RECORDING">RECORDING
</a>
1550 <h4 class=
"subsection">4.3.2 VIDEO IN
</h4>
1552 <p>These determine what happens when you record video.
1558 <p>This is used for recording video in the Record window. It may be
1559 shared with the Record Driver for audio if the audio and video are
1560 wrapped in the same stream. It takes variable parameters depending on
1561 the driver. The parameters have the same meaning as they do for
1565 FRAMES TO RECORD TO DISK AT A TIME
1567 <p>Frames are recorded in a pipeline. First frames are buffered in the
1568 device. Then they're read into a larger buffer for writing to disk.
1569 The disk writing is done in a different thread as the device reading.
1570 For certain codecs the disk writing uses multiple processors. This
1571 value determines how many frames are written to disk at a time.
1574 FRAMES TO BUFFER IN DEVICE
1576 <p>The number of frames to store in the device before reading. This
1577 determines how much latency there can be in the system before frames
1580 <li>USE SOFTWARE FOR POSITIONING INFORMATION
1582 <p>Video uses audio for
1584 <p>synchronization but most soundcards don't give accurate position
1585 information. This calculates an estimation of audio position in
1586 software instead of the hardware for synchronization.
1589 SYNC DRIVES AUTOMATICALLY
1591 <p>For high bitrate recording the drives may be fast enough to store the
1592 data but Linux may wait several minutes and stall as it writes several
1593 minutes of data at a time. This forces Linux to flush its buffers
1594 every second instead of every few minutes and produce slightly better
1598 SIZE OF CAPTURED FRAME
1600 <p>This is the size of the frames recorded. It is independant of the
1601 project frame size because most video devices only record a fixed frame
1602 size. If the frame size given here isn't supported by the device it
1603 might crash Cinelerra.
1605 <li>FRAME RATE FOR RECORDING
1607 <p>The frame rate recorded is different from the project settings. This
1608 sets the recorded frame rate.
1614 <a name=
"PERFORMANCE"></a>
1615 Next:
<a rel=
"next" accesskey=
"n" href=
"#INTERFACE">INTERFACE
</a>,
1616 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#RECORDING">RECORDING
</a>,
1617 Up:
<a rel=
"up" accesskey=
"u" href=
"#CONFIGURATION">CONFIGURATION
</a>
1621 <h3 class=
"section">4.4 PERFORMANCE
</h3>
1623 <p>You'll spend most of your time configuring this section. The main
1624 focus of performance is rendering parameters not available in the
1630 <p>To speed up rendering, several assets are kept open simultaneously.
1631 This determines how many are kept open. A number too large may exhaust
1632 your memory pretty fast and result in a crash. A number too small may
1633 result in slow playback as assets need to be reopened more frequently.
1636 SECONDS TO PREROLL RENDERS
1638 <p>Some effects need a certain amount of time to settle in. This sets a
1639 number of seconds to render without writing to disk before the selected
1640 region is rendered. When using the renderfarm you'll sometimes need to
1641 preroll to get seemless transitions between the jobs. Every job in a
1642 renderfarm is prerolled by this value. This does not affect background
1643 rendering, however. Background rendering uses a different preroll
1647 FORCE SINGLE PROCESSOR USE
1649 <p>Cinelerra tries to use all processors on the system by default but
1650 sometimes you'll only want to use one processor, like in a renderfarm
1651 client. This forces only one processer to be used. The operating
1652 system, however, usually uses the second processor anyway for disk
1653 access so this option is really a
1.25 processor mode. The value of
1654 this parameter is used in renderfarm clients.
1659 <li><a accesskey=
"1" href=
"#BACKGROUND-RENDERING">BACKGROUND RENDERING
</a>
1660 <li><a accesskey=
"2" href=
"#RENDERFARM">RENDERFARM
</a>
1665 <a name=
"BACKGROUND-RENDERING"></a>
1666 Next:
<a rel=
"next" accesskey=
"n" href=
"#RENDERFARM">RENDERFARM
</a>,
1667 Up:
<a rel=
"up" accesskey=
"u" href=
"#PERFORMANCE">PERFORMANCE
</a>
1671 <h4 class=
"subsection">4.4.1 BACKGROUND RENDERING
</h4>
1673 <p>Background rendering was originally concieved to allow HDTV effects to
1674 be displayed in realtime. Background rendering causes temporary output
1675 to constantly be rendered while the timeline is being modified. The
1676 temporary output is played during playack whenever possible. It's very
1677 useful for transitions and previewing effects which are too slow to
1678 display in a reasonable amount of time. If renderfarm is enabled, the
1679 renderfarm is used for background rendering, giving you the potential
1680 for realtime effects if enough network bandwidth and CPU nodes exist.
1683 <li>FRAMES PER BACKGROUND RENDERING JOB
1685 <p>This only works if renderfarm is being used, otherwise background
1686 rendering creates a single job for the entire timeline. The number of
1687 frames specified here is scaled to the relative CPU speed of rendering
1688 nodes and used in a single renderfarm job. The optimum number is
10 -
1689 30 since network bandwidth is used to initialize each job.
1691 <li>FRAMES TO PREROLL BACKGROUND
1693 <p>This is the number of frames to render ahead of each background
1694 rendering job. Background rendering is degraded when preroll is used
1695 since the jobs are small. When using background rendering, this number
1696 is ideally
0. Some effects may require
3 frames of preroll.
1698 <li>OUTPUT FOR BACKGROUND RENDERING
1700 <p>Background rendering generates a sequence of image files in a certain
1701 directory. This parameter determines the filename prefix of the image
1702 files. It should be on a fast disk, accessible to every node in the
1703 renderfarm by the same path. Since hundreds of thousands of image
1704 files are usually created,
<b>ls
</b> commands won't work in the
1705 background rendering directory. The
<img src=
"magnify.png" alt=
"magnify.png"> browse button for
1706 this option normally won't work either, but the
<img src=
"wrench.png" alt=
"wrench.png">
1707 configuration button for this option works.
1711 <p>The file format for background rendering has to be a sequence of
1712 images. The format of the image sequence determines the quality and
1713 speed of playback. JPEG is good most of the time.
1719 <a name=
"RENDERFARM"></a>
1720 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#BACKGROUND-RENDERING">BACKGROUND RENDERING
</a>,
1721 Up:
<a rel=
"up" accesskey=
"u" href=
"#PERFORMANCE">PERFORMANCE
</a>
1725 <h4 class=
"subsection">4.4.2 RENDERFARM
</h4>
1727 <p>To use the renderfarm set these options. Ignore them for a standalone
1732 USE RENDER FARM FOR RENDERING
1734 <p>When selected, all the
1735 <b>file-
>render
</b> operations use the renderfarm.
1740 <p>Displays all the nodes on the renderfarm and which ones are active.
1742 <p>Nodes are added by entering the host name of the node, verifying the
1743 value of
<b>port
</b> and hitting
<b>add node
</b>.
1745 <p>Computer freaks may be better off editing the
1746 <b>~/.bcast/.Cinelerra_rc
</b> file than this if they have hundreds of
1747 nodes. Remember that .Cinelerra_rc is overwritten whenever a copy of
1750 <p>Select the
<b>ON
</b> column to activate and deactivate nodes once they
1753 <p>Nodes may be edited by highlighting a row and hitting
<b>apply changes
</b>.
1758 <p>Edit the hostname of an existing node or enter the hostname of a new
1764 <p>Edit the port of an existing node or enter the port of a new node here.
1769 <p>When editing an existing node, hit this to commit the changes to
1770 <b>HOSTNAME
</b> and
<b>PORT
</b>. The changes won't be committed if you
1771 don't hit this button.
1776 <p>Create a new node with the
<b>HOSTNAME
</b> and
<b>PORT
</b> settings.
1781 <p>Deletes whatever node is highlighted in the
<b>NODES
</b> list.
1786 <p>Sorts the
<b>NODES
</b> list based on the hostname.
1791 <p>This sets the framerate for all the nodes to
0. Frame rates are used
1792 to scale job sizes based on CPU speed of the node. Frame rates are
1793 only calculated when renderfarm is enabled.
1796 TOTAL JOBS TO CREATE
1798 <p>Determines the number of jobs to dispatch to the renderfarm. The more
1799 jobs you create, the more finely balanced the renderfarm becomes.
1801 <p>Determine the total jobs to create by multiplying the number of nodes
1802 including the master node by some number. Multiply them by
1 to have
1803 one job dispatched for every node. Multiply them by
3 to have
3 jobs
1804 dispatched for every node. If you have
10 slave nodes and one master
1805 node, specify
33 to have a well balanced renderfarm.
1811 <a name=
"INTERFACE"></a>
1812 Next:
<a rel=
"next" accesskey=
"n" href=
"#ABOUT">ABOUT
</a>,
1813 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PERFORMANCE">PERFORMANCE
</a>,
1814 Up:
<a rel=
"up" accesskey=
"u" href=
"#CONFIGURATION">CONFIGURATION
</a>
1818 <h3 class=
"section">4.5 INTERFACE
</h3>
1820 <p>These parameters affect purely how the user interface works.
1826 <p>Back in the days when
4 MB/sec was unearthly speed for a hard drive,
1827 index files were introduced to speed up drawing the audio tracks. This
1828 option determines where index files are placed on the hard drive.
1833 <p>Determines the size of an index file. Larger index sizes allow smaller
1834 files to be drawn faster while slowing down the drawing of large files.
1835 Smaller index sizes allow large files to be drawn faster while slowing
1839 NUMBER OF INDEX FILES TO KEEP
1841 <p>To keep the index directory from becoming unruly, old index files are
1842 deleted. This determines the maximum number of index files to keep in
1848 <p>When you change the index size or you want to clean out excessive index
1849 files, this deletes all the index files.
1851 <li>USE HOURS:MINUTES:SECONDS.XXX
1853 <p>Various representations of time are given. Select the most convenient
1854 one. The time representation can also be changed by
<b>CTRL
</b>
1855 clicking on the time ruler.
1859 <p>The Resource Window displays thumbnails of assets by default. This can
1860 take a long time to set up. This option disables the thumbnails.
1862 <li>CLICKING IN/OUT POINTS DOES WHAT
1864 <p>Cinelerra not only allows you to perform editing by dragging in/out
1865 points but also defines three seperate operations which occur when you
1866 drag an in/out point. For each mouse button you select the behavior in
1867 this window. The usage of each editing mode is described in editing.
1869 <li>MIN DB FOR METER
1871 <p>Some sound sources have a lower noise threshold than others.
1872 Everything below the noise threshold is meaningless. This option sets
1873 the meters to clip below a certain level. Consumer soundcards usually
1874 bottom out at -
65. Professional soundcards bottom out at -
90.
1875 See
<a href=
"#SOUND-LEVEL-METERS">SOUND LEVEL METERS
</a>.
1877 <li>MAX DB FOR METER
1879 <p>This sets the maximum sound level represented by the sound meters. No
1880 matter what this value is, no soundcard can play sound over
0 db. This
1881 value is presented merely to show how far over the limit a sound wave
1883 See
<a href=
"#SOUND-LEVEL-METERS">SOUND LEVEL METERS
</a>.
1887 <p>Cinelerra supports variable themes. Select one here and restart
1888 Cinelerra to see it.
1894 <a name=
"ABOUT"></a>
1895 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INTERFACE">INTERFACE
</a>,
1896 Up:
<a rel=
"up" accesskey=
"u" href=
"#CONFIGURATION">CONFIGURATION
</a>
1900 <h3 class=
"section">4.6 ABOUT
</h3>
1902 <p>This section gives you information about the copyright, the time of the
1903 current build, the lack of a warranty, and the versions of some of the
1904 libraries. Be sure to agree to the terms of the lack of the warranty.
1908 <a name=
"THE-MAIN-WINDOWS"></a>
1909 Next:
<a rel=
"next" accesskey=
"n" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>,
1910 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CONFIGURATION">CONFIGURATION
</a>,
1911 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
1915 <h2 class=
"chapter">5 THE MAIN WINDOWS
</h2>
1917 <p>When Cinelerra first starts, you'll get four main windows. Hitting
1918 <b>CTRL-w
</b> in any window closes it.
1921 <li><a accesskey=
"1" href=
"#VIEWER">VIEWER
</a>
1922 <li><a accesskey=
"2" href=
"#COMPOSITOR">COMPOSITOR
</a>
1923 <li><a accesskey=
"3" href=
"#PROGRAM">PROGRAM
</a>
1924 <li><a accesskey=
"4" href=
"#RESOURCES">RESOURCES
</a>
1925 <li><a accesskey=
"5" href=
"#SOUND-LEVEL-METERS">SOUND LEVEL METERS
</a>
1926 <li><a accesskey=
"6" href=
"#OTHER-WINDOWS">OTHER WINDOWS
</a>
1931 <a name=
"VIEWER"></a>
1932 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMPOSITOR">COMPOSITOR
</a>,
1933 Up:
<a rel=
"up" accesskey=
"u" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>
1937 <h3 class=
"section">5.1 VIEWER
</h3>
1939 <p>In here you'll scrub around source media and clips, selecting regions
1940 to paste into the project. Operations done in the viewer affect a
1941 temporary EDL or a clip but not the timeline.
1945 <a name=
"COMPOSITOR"></a>
1946 Next:
<a rel=
"next" accesskey=
"n" href=
"#PROGRAM">PROGRAM
</a>,
1947 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#VIEWER">VIEWER
</a>,
1948 Up:
<a rel=
"up" accesskey=
"u" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>
1952 <h3 class=
"section">5.2 COMPOSITOR
</h3>
1954 <p>This window displays the output of the timeline. It's the interface
1955 for most compositing operations or operations that affect the
1956 appearance of the timeline output. Operations done in the Compositor
1957 affect the timeline but don't affect clips.
1959 <p>The video output has several navigation functions. The video output
1960 size is either locked to the window size or unlocked with scrollbars
1961 for navigation. The video output can be zoomed in and out and panned.
1962 Navigating the video output this way doesn't affect the rendered
1963 output, it just changes the point of view in the compositor window.
1965 <p>If it is unlocked from the window size, middle clicking and dragging
1966 anywhere in the video pans the point of view.
1968 <p>Hitting the + and - keys zooms in and out of the video output.
1970 <p>Underneath the video output are copies of many of the functions
1971 available in the main window. In addition there is a
1972 <img src=
"cwindow_zoom.png" alt=
"cwindow_zoom.png"> zoom menu and a
<img src=
"cwindow_light.png" alt=
"cwindow_light.png"> tally light.
1974 <p>The zoom menu jumps to all the possible zoom settings and, through the
1975 <b>Auto
</b> option, locks the video to the window size. The zoom menu
1976 does not affect the window size.
1978 <p>The tally light turns red when rendering is happening. This is useful
1979 for knowing if the output is current.
1981 <p>Right clicking anywhere in the video output brings up a menu with all
1982 the zoom levels and some other options. In this particular case the
1983 zoom levels resize the entire window and not just the video.
1985 <p>The
<b>reset camera
</b> and
<b>reset projector
</b> options center the camera
1986 and projector See
<a href=
"#COMPOSITING">COMPOSITING
</a>.
1988 <p>The
<b>Hide controls
</b> option hides everything except the video.
1990 <p>On the left of the video output is a toolbar specific to the compositor
1991 window. Here are the functions in the toolbar:
1994 <li><a accesskey=
"1" href=
"#PROTECT-VIDEO">PROTECT VIDEO
</a>
1995 <li><a accesskey=
"2" href=
"#MAGNIFYING-GLASS">MAGNIFYING GLASS
</a>
1996 <li><a accesskey=
"3" href=
"#MASKS-TOOL">MASKS TOOL
</a>
1997 <li><a accesskey=
"4" href=
"#CAMERA">CAMERA
</a>
1998 <li><a accesskey=
"5" href=
"#PROJECTOR">PROJECTOR
</a>
1999 <li><a accesskey=
"6" href=
"#CROP-TOOL">CROP TOOL
</a>
2000 <li><a accesskey=
"7" href=
"#EYEDROPPER">EYEDROPPER
</a>
2001 <li><a accesskey=
"8" href=
"#TOOL-INFO">TOOL INFO
</a>
2002 <li><a accesskey=
"9" href=
"#SAFE-REGIONS-TOOL">SAFE REGIONS TOOL
</a>
2007 <a name=
"PROTECT-VIDEO"></a>
2008 Next:
<a rel=
"next" accesskey=
"n" href=
"#MAGNIFYING-GLASS">MAGNIFYING GLASS
</a>,
2009 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2013 <h4 class=
"subsection">5.2.1 PROTECT VIDEO
</h4>
2015 <div class=
"block-image"><img src=
"protect.png" alt=
"protect.png"></div>
2017 <p>This disables changes to the compositor output from clicks in it. It
2018 is an extra layer on top of the track arming toggle to prevent
2023 <a name=
"MAGNIFYING-GLASS"></a>
2024 Next:
<a rel=
"next" accesskey=
"n" href=
"#MASKS-TOOL">MASKS TOOL
</a>,
2025 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PROTECT-VIDEO">PROTECT VIDEO
</a>,
2026 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2030 <h4 class=
"subsection">5.2.2 MAGNIFYING GLASS
</h4>
2032 <div class=
"block-image"><img src=
"magnify.png" alt=
"magnify.png"></div>
2034 <p>This zooms in and out of the compositor output without resizing the
2035 window. If the video output is currently locked to the size of the
2036 window, clicking in it with the magnifying glass unlocks it and
2037 creates scrollbars for navigation.
2039 <p>Left clicking in the video zooms in.
2041 <p>Ctrl clicking in the video zooms out.
2043 <p>Rotating the wheel on a wheel mouse zooms in and out.
2047 <a name=
"MASKS-TOOL"></a>
2048 Next:
<a rel=
"next" accesskey=
"n" href=
"#CAMERA">CAMERA
</a>,
2049 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MAGNIFYING-GLASS">MAGNIFYING GLASS
</a>,
2050 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2054 <h4 class=
"subsection">5.2.3 MASKS TOOL
</h4>
2056 <div class=
"block-image"><img src=
"mask.png" alt=
"mask.png"></div>
2058 <p>This brings up the mask editing tool See
<a href=
"#MASKS">MASKS
</a>. Enable the
2059 <img src=
"toolwindow.png" alt=
"toolwindow.png"> tool window to see options for this tool.
2063 <a name=
"CAMERA"></a>
2064 Next:
<a rel=
"next" accesskey=
"n" href=
"#PROJECTOR">PROJECTOR
</a>,
2065 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MASKS-TOOL">MASKS TOOL
</a>,
2066 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2070 <h4 class=
"subsection">5.2.4 CAMERA
</h4>
2072 <div class=
"block-image"><img src=
"camera.png" alt=
"camera.png"></div>
2074 <p>This brings up the camera editing tool See
<a href=
"#THE-CAMERA-AND-PROJECTOR">THE CAMERA AND PROJECTOR
</a>. Enable the
<img src=
"toolwindow.png" alt=
"toolwindow.png"> tool window to see options
2079 <a name=
"PROJECTOR"></a>
2080 Next:
<a rel=
"next" accesskey=
"n" href=
"#CROP-TOOL">CROP TOOL
</a>,
2081 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CAMERA">CAMERA
</a>,
2082 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2086 <h4 class=
"subsection">5.2.5 PROJECTOR
</h4>
2088 <div class=
"block-image"><img src=
"projector.png" alt=
"projector.png"></div>
2090 <p>This brings up the projector editing tool See
<a href=
"#THE-CAMERA-AND-PROJECTOR">THE CAMERA AND PROJECTOR
</a>. Enable the
<img src=
"toolwindow.png" alt=
"toolwindow.png"> tool window to see options
2095 <a name=
"CROP-TOOL"></a>
2096 Next:
<a rel=
"next" accesskey=
"n" href=
"#EYEDROPPER">EYEDROPPER
</a>,
2097 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PROJECTOR">PROJECTOR
</a>,
2098 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2102 <h4 class=
"subsection">5.2.6 CROP TOOL
</h4>
2104 <div class=
"block-image"><img src=
"crop.png" alt=
"crop.png"></div>
2106 <p>This brings up the cropping tool See
<a href=
"#CROPPING">CROPPING
</a>. The
2107 <img src=
"toolwindow.png" alt=
"toolwindow.png"> tool window must be enabled to use this tool.
2111 <a name=
"EYEDROPPER"></a>
2112 Next:
<a rel=
"next" accesskey=
"n" href=
"#TOOL-INFO">TOOL INFO
</a>,
2113 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CROP-TOOL">CROP TOOL
</a>,
2114 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2118 <h4 class=
"subsection">5.2.7 EYEDROPPER
</h4>
2120 <div class=
"block-image"><img src=
"eyedrop.png" alt=
"eyedrop.png"></div>
2122 <p>This brings up the eyedropper. The eyedropper detects whatever color
2123 is under it and stores it in a temporary area. Enabling the
2124 <img src=
"toolwindow.png" alt=
"toolwindow.png"> tool info shows the currently selected color. Click
2125 anywhere in the video output to select the color at that point.
2127 <p>The eyedropper not only lets you see areas which are clipped, but its
2128 value can be applied to many effects. Different effects handle the
2129 eyedropper differently.
2133 <a name=
"TOOL-INFO"></a>
2134 Next:
<a rel=
"next" accesskey=
"n" href=
"#SAFE-REGIONS-TOOL">SAFE REGIONS TOOL
</a>,
2135 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#EYEDROPPER">EYEDROPPER
</a>,
2136 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2140 <h4 class=
"subsection">5.2.8 TOOL INFO
</h4>
2142 <div class=
"block-image"><img src=
"toolwindow.png" alt=
"toolwindow.png"></div>
2144 <p>This brings up a window containing options for the currently selected
2149 <a name=
"SAFE-REGIONS-TOOL"></a>
2150 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TOOL-INFO">TOOL INFO
</a>,
2151 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITOR">COMPOSITOR
</a>
2155 <h4 class=
"subsection">5.2.9 SAFE REGIONS TOOL
</h4>
2157 <div class=
"block-image"><img src=
"titlesafe.png" alt=
"titlesafe.png"></div>
2159 <p>This draws the safe regions in the video output. This doesn't affect
2160 the rendered output See
<a href=
"#SAFE-REGIONS">SAFE REGIONS
</a>.
2164 <a name=
"PROGRAM"></a>
2165 Next:
<a rel=
"next" accesskey=
"n" href=
"#RESOURCES">RESOURCES
</a>,
2166 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMPOSITOR">COMPOSITOR
</a>,
2167 Up:
<a rel=
"up" accesskey=
"u" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>
2171 <h3 class=
"section">5.3 PROGRAM
</h3>
2173 <p>This contains the timeline and the entry point for all menu driven
2174 operations. The timeline consists of a vertical stack of tracks with
2175 horizontal representation of time. This defines the output of
2176 rendering operations and what is saved when you save files. Left of
2177 the timeline is the patchbay which contains options affecting each
2180 <p>Under the
<b>Window
</b> menu you'll find options affecting the main
2181 windows.
<b>default positions
</b> repositions all the windows to a
4
2182 screen editing configuration. On dual headed displays, the
2183 <b>default positions
</b> operation fills only one monitor with windows.
2187 <a name=
"RESOURCES"></a>
2188 Next:
<a rel=
"next" accesskey=
"n" href=
"#SOUND-LEVEL-METERS">SOUND LEVEL METERS
</a>,
2189 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PROGRAM">PROGRAM
</a>,
2190 Up:
<a rel=
"up" accesskey=
"u" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>
2194 <h3 class=
"section">5.4 RESOURCES
</h3>
2196 <p>Effects, transitions, clips, and assets are accessed here. Most of the
2197 resources are inserted into the project by dragging them out of the
2198 resource window. Management of resource allocation is also performed
2203 <a name=
"SOUND-LEVEL-METERS"></a>
2204 Next:
<a rel=
"next" accesskey=
"n" href=
"#OTHER-WINDOWS">OTHER WINDOWS
</a>,
2205 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#RESOURCES">RESOURCES
</a>,
2206 Up:
<a rel=
"up" accesskey=
"u" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>
2210 <h3 class=
"section">5.5 SOUND LEVEL METERS
</h3>
2212 <p>An additional window, the
<b>levels window
</b> can be brought up from
2213 the
<b>Window
</b> menu. The
<b>levels
</b> window displays the output
2214 audio levels after all mixing is done.
2216 <p>Sound level meters appear in many locations. They can be toggled in
2217 the viewer and compositor windows with the
<img src=
"show_meters.png" alt=
"show_meters.png"> level
2218 toggle. They appear in the patchbay when a track is expanded (See
<a href=
"#THE-PATCHBAY">THE PATCHBAY
</a>.) They appear in the recording monitor when audio is being
2221 <p>The sound levels in the
<b>levels window, compositor, and viewer
</b>
2222 correspond to the final output levels before they are clipped to the
2223 soundcard range. In the
<b>record monitor
</b> they are the input values
2224 from the sound card. In the
<b>patchbay
</b> they are the sound levels for
2225 each track after all effects are processed and before downmixing for
2228 <p>Most of the time, audio levels have numerical markings in DB but in the
2229 patchbay there isn't enough room.
2231 <p>The sound level is color coded as an extra means of determining the
2232 sound level. Even without numerical markings, the sound level color
2233 can distinguish between several ranges and overload. Look at the color
2234 codings in a meter with numerical markings to see what colors
2235 correspond to what sound level. Then for meters in the patchbay in
2236 expanded audio tracks, use the color codings to see if it's overloading.
2238 <p>Be aware that sound levels in Cinelerra can go above
0DB. This allows
2239 not only seeing if a track is overloading but how much information is
2240 being lost by the overloading. Overloading by less than
3DB is usually
2241 acceptable. While overloading is treated as positive numbers in
2242 Cinelerra, it is clipped to
0 when sent to a sound card or file.
2244 <p>The visible range of the sound level meters is configurable in
2245 <b>settings-
>preferences-
>interface
</b> (See
<a href=
"#INTERFACE">INTERFACE
</a>.)
2249 <a name=
"OTHER-WINDOWS"></a>
2250 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SOUND-LEVEL-METERS">SOUND LEVEL METERS
</a>,
2251 Up:
<a rel=
"up" accesskey=
"u" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>
2255 <h3 class=
"section">5.6 OTHER WINDOWS
</h3>
2257 <p>The
<b>Overlays window
</b> can be brought up from the
<b>Window
</b>
2258 menu. This is a quick way to toggle what is drawn in the timeline.
2259 Every option in the
<b>View
</b> menu is available here.
2263 <a name=
"LOADING-AND-SAVING-FILES"></a>
2264 Next:
<a rel=
"next" accesskey=
"n" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>,
2265 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-MAIN-WINDOWS">THE MAIN WINDOWS
</a>,
2266 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
2270 <h2 class=
"chapter">6 LOADING AND SAVING FILES
</h2>
2273 <li><a accesskey=
"1" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>: What formats Cinelerra can import and export
2274 <li><a accesskey=
"2" href=
"#LOADING-FILES">LOADING FILES
</a>: Loading all types of files
2275 <li><a accesskey=
"3" href=
"#LOADING-THE-BACKUP">LOADING THE BACKUP
</a>: Recovering the session from before a crash
2276 <li><a accesskey=
"4" href=
"#SAVING-FILES">SAVING FILES
</a>: Saving edit decision lists
2277 <li><a accesskey=
"5" href=
"#RENDERING-FILES">RENDERING FILES
</a>: Saving media files
2282 <a name=
"SUPPORTED-FILE-FORMATS"></a>
2283 Next:
<a rel=
"next" accesskey=
"n" href=
"#LOADING-FILES">LOADING FILES
</a>,
2284 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>
2288 <h3 class=
"section">6.1 SUPPORTED FILE FORMATS
</h3>
2290 <p>Here are most of the supported file formats and notes regarding their
2291 compression. You may be able to load other formats not described here.
2293 <p>The format of the file affects what Cinelerra does with it. Edit
2294 decision lists replace the project settings. Formats which contain
2295 media but no edit decisions just add data to the tracks. If your
2296 project sample rate is
48khz and you load a sound file with
96khz,
2297 you'll still be playing it at
48khz. If you load an EDL file at
96khz
2298 and the current project sample rate is
48khz, you'll change it to
2301 <p>Some file formats are very slow to display on the timeline. These
2302 usually have video which is highly compressed. Drawing highly
2303 compressed video picons can be very slow. Disable picon drawing for
2304 these files with the
<b>draw media
</b> toggle to speed up operations.
2309 <img src=
"track_attributes.png" alt=
"track_attributes.png">
2310 <b>Track attributes
</b>
2312 <p>Supported file formats are currently:
2322 <li><a accesskey=
"1" href=
"#QUICKTIME">QUICKTIME
</a>
2323 <li><a accesskey=
"2" href=
"#MPEG_002d4-AUDIO">MPEG-
4 AUDIO
</a>
2324 <li><a accesskey=
"3" href=
"#IMAGE-SEQUENCES">IMAGE SEQUENCES
</a>
2325 <li><a accesskey=
"4" href=
"#STILL-IMAGES">STILL IMAGES
</a>
2326 <li><a accesskey=
"5" href=
"#AVI">AVI
</a>
2327 <li><a accesskey=
"6" href=
"#MPEG-FILES-CONTAINING-VIDEO">MPEG FILES CONTAINING VIDEO
</a>
2328 <li><a accesskey=
"7" href=
"#DVD-MOVIES">DVD MOVIES
</a>
2329 <li><a accesskey=
"8" href=
"#MPEG-1-AUDIO">MPEG
1 AUDIO
</a>
2330 <li><a accesskey=
"9" href=
"#OGG-THEORA_002fVORBIS">OGG THEORA/VORBIS
</a>
2331 <li><a href=
"#EDIT-DECISION-LIST">EDIT DECISION LIST
</a>
2336 <a name=
"QUICKTIME"></a>
2337 Next:
<a rel=
"next" accesskey=
"n" href=
"#MPEG_002d4-AUDIO">MPEG-
4 AUDIO
</a>,
2338 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2342 <h4 class=
"subsection">6.1.1 QUICKTIME
</h4>
2344 <p>Quicktime is not the standard for UNIX but we use it because it's well
2345 documented. All of the Quicktime movies on the internet are
2346 compressed. Cinelerra doesn't support most compressed Quicktime movies
2347 but does support some. If it crashes when loading a Quicktime movie,
2348 that means the format probably wasn't supported.
2350 <p><b>NOTES ON QUICKTIME ENCODING
</b>
2352 <p>Here are some notes regarding making Quicktime movies in Cinelerra:
2354 <p>Quicktime is a wrapper for
2 codecs, a video codec and an audio codec.
2355 The video and audio codecs are picked separately. The preferred
2356 encoding for Quicktime output is MPEG-
4 Video and MPEG-
4 Audio. This
2357 format plays in the commercial players for Windows and has good
2358 compression quality. For better compression, use H-
264 Video.
2359 Unfortunately H-
264 decoding is so slow it can't play very large frame
2362 <p>Cinelerra supports
2 nonstandard codecs: Dual MPEG-
4 video and dual
2363 H
.264 video. These won't play in anything but Cinelerra and XMovie.
2364 They are designed for movies where the frames have been divided into
2
2365 fields, each field displayed sequentially. The dual codecs interleave
2366 2 video streams to improve efficiency without requiring major changes
2371 <a name=
"MPEG-4-AUDIO"></a>
2372 <a name=
"MPEG_002d4-AUDIO"></a>
2373 Next:
<a rel=
"next" accesskey=
"n" href=
"#IMAGE-SEQUENCES">IMAGE SEQUENCES
</a>,
2374 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#QUICKTIME">QUICKTIME
</a>,
2375 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2379 <h4 class=
"subsection">6.1.2 MPEG-
4 AUDIO
</h4>
2381 <p>This is the same as Quicktime with MPEG-
4 Audio as the audio codec.
2385 <a name=
"IMAGE-SEQUENCES"></a>
2386 Next:
<a rel=
"next" accesskey=
"n" href=
"#STILL-IMAGES">STILL IMAGES
</a>,
2387 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MPEG_002d4-AUDIO">MPEG-
4 AUDIO
</a>,
2388 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2392 <h4 class=
"subsection">6.1.3 IMAGE SEQUENCES
</h4>
2394 <p>Rendering an image sequence is not the same as rendering a single
2395 image. When rendering an image sequence Cinelerra generates a table of
2396 contents file for the image sequence and makes a different image file
2397 for every timeline position. The table of contents can be loaded
2398 instead of the individual images to get better performance. To learn
2399 more about the different image formats supported in an image sequence,
2400 read about still images.
2404 <a name=
"STILL-IMAGES"></a>
2405 Next:
<a rel=
"next" accesskey=
"n" href=
"#AVI">AVI
</a>,
2406 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#IMAGE-SEQUENCES">IMAGE SEQUENCES
</a>,
2407 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2411 <h4 class=
"subsection">6.1.4 STILL IMAGES
</h4>
2413 <p>Rendering a single image causes the image file to be overwritten for
2414 every timeline position. No table of contents is created. When
2415 loaded, the image takes up one frame in length and doesn't change the
2418 <p>Several still image formats not normally found in other programs are
2422 <li><a accesskey=
"1" href=
"#OPEN-EXR-IMAGES">OPEN EXR IMAGES
</a>
2423 <li><a accesskey=
"2" href=
"#RAW-DIGITAL-CAMERA-IMAGES">RAW DIGITAL CAMERA IMAGES
</a>
2428 <a name=
"OPEN-EXR-IMAGES"></a>
2429 Next:
<a rel=
"next" accesskey=
"n" href=
"#RAW-DIGITAL-CAMERA-IMAGES">RAW DIGITAL CAMERA IMAGES
</a>,
2430 Up:
<a rel=
"up" accesskey=
"u" href=
"#STILL-IMAGES">STILL IMAGES
</a>
2434 <h5 class=
"subsubsection">6.1.4.1 OPEN EXR IMAGES
</h5>
2436 <p>You may not know about Open EXR. This format stores floating point RGB
2437 images. It also supports a small amount of compression. Projects
2438 which render to EXR should be in a floating point color model to take
2439 advantage of it See
<a href=
"#SETTING-PROJECT-ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>. Several compression
2440 options are available for EXR.
2444 <b>PIZ
</b> Lossless wavelet compression. This is the best compression.
2446 <li><b>ZIP
</b> Lossless gzip algorithm.
2448 <li><b>RLE
</b> Lossless run length encoding. This is the fastest and worst
2451 <li><b>PXR24
</b> Lossy compression where the floating point numbers are
2452 converted to
24 bits and compressed with gzip.
2456 <p>Select
<b>Use Alpha
</b> if the project colormodel has an alpha channel and
2457 you want to retain it in the file. Otherwise the primary colors are
2458 multiplied by the alpha channel.
2462 <a name=
"RAW-DIGITAL-CAMERA-IMAGES"></a>
2463 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#OPEN-EXR-IMAGES">OPEN EXR IMAGES
</a>,
2464 Up:
<a rel=
"up" accesskey=
"u" href=
"#STILL-IMAGES">STILL IMAGES
</a>
2468 <h5 class=
"subsubsection">6.1.4.2 RAW DIGITAL CAMERA IMAGES
</h5>
2470 <p>RAW digital camera images are a special kind of image file which
2471 Cinelerra only imports. These must be processed in a floating point
2472 color space once they are on the timeline. Raw images from Canon
2473 cameras are the only ones tested. They need to have the
<b>Linearize
</b>
2474 effect applied to correct gamma. Because raw images take a long time
2475 to interpolate, they are usually viewed first in a proxy file and then
2478 <p>First apply the Linearize effect to a track of raw images and set it to
2479 <b>automatic
</b> with
<b>0.6</b> gamma. Then render the timeline to a
2480 Quicktime JPEG file. Append the Quicktime JPEG file in a new track and
2481 disable playback of the old track. Now the gamma corrected copy of
2482 each raw image can be previewed relatively fast in the same timeline
2483 position as the original image.
2488 Next:
<a rel=
"next" accesskey=
"n" href=
"#MPEG-FILES-CONTAINING-VIDEO">MPEG FILES CONTAINING VIDEO
</a>,
2489 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#STILL-IMAGES">STILL IMAGES
</a>,
2490 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2494 <h4 class=
"subsection">6.1.5 AVI
</h4>
2496 <p>AVI with assorted audio and video codecs. Because AVI is so
2497 fragmented, your luck will vary.
2501 <a name=
"MPEG-FILES-CONTAINING-VIDEO"></a>
2502 Next:
<a rel=
"next" accesskey=
"n" href=
"#DVD-MOVIES">DVD MOVIES
</a>,
2503 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#AVI">AVI
</a>,
2504 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2508 <h4 class=
"subsection">6.1.6 MPEG FILES CONTAINING VIDEO
</h4>
2510 <p>MPEG files containing video can be loaded directly into Cinelerra. If
2511 the file is supported, a table of contents is built. If the file is
2512 unsupported, it usually crashes or shows very short tracks.
2513 Unfortunately, this method of loading MPEG files isn't good enough if
2514 you intend to use the files in a renderfarm.
2516 <p>To use MPEG files in a renderfarm you need to run
<b>mpeg3toc
</b> to
2517 generate a table of contents for the file, then load the table of
2518 contents. Mpeg3toc needs the absolute path of the MPEG file. If you
2519 don't use an absolute path, it assumes the MPEG file is in the same
2520 directory that Cinelerra is run from.
2522 <p>MPEG streams are structured into multiple tracks. Each track can be
2523 video or audio. Each audio track can have
1-
6 channels. Cinelerra
2524 converts each channel of audio into a track.
2526 <p><b>NOTES ON MPEG VIDEO ENCODING
</b>
2528 <p>MPEG video encoding is done separately from MPEG audio encoding. In
2529 MPEG video there are
2 colormodels. The YUV
4:
2:
0 colormodel is
2530 encoded by a highly optimized version of mpeg2enc with presets for
2531 standard consumer electronics. In the process of optimizing mpeg2enc,
2532 they got rid of YUV
4:
2:
2 encoding. The YUV
4:
2:
2 colormodel is
2533 encoded by a less optimized version of mpeg2enc.
2535 <p>YUV
4:
2:
2 encoding was kept around because the NTSC version of DV video
2536 loses too much quality when transferred to YUV
4:
2:
0. This DV video
2537 must be transferred to YUV
4:
2:
2.
2539 <p>When encoding YUV
4:
2:
0, the bitrate parameter changes meaning
2540 depending on whether the bitrate or quantization is fixed. If the
2541 bitrate is fixed, it's the target bitrate. If the quantization is
2542 fixed, it's the maximum bitrate allowed. This is a quirk of the
2547 <a name=
"DVD-MOVIES"></a>
2548 Next:
<a rel=
"next" accesskey=
"n" href=
"#MPEG-1-AUDIO">MPEG
1 AUDIO
</a>,
2549 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MPEG-FILES-CONTAINING-VIDEO">MPEG FILES CONTAINING VIDEO
</a>,
2550 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2554 <h4 class=
"subsection">6.1.7 DVD MOVIES
</h4>
2556 <p>DVD's are spit into a number of programs, each identified by a unique
2557 <b>IFO
</b> file. If you want to load a DVD, find the corresponding
2558 <b>IFO
</b> file for the program of interest. Load the IFO file directly
2559 and a table of contents will be built. Alternatively for renderfarm
2560 usage, a table of contents can be created separately.
2562 <pre class=
"example"> mpeg3toc /cdrom/video_ts/vts_01_0.ifo dvd.toc
2564 <p>or something similar. Then load
<b>dvd.toc
</b>.
2566 <p>You need to run
<b>mpeg3toc
</b> on these just like MPEG
1,
2 video.
2570 <a name=
"MPEG-1-AUDIO"></a>
2571 Next:
<a rel=
"next" accesskey=
"n" href=
"#OGG-THEORA_002fVORBIS">OGG THEORA/VORBIS
</a>,
2572 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DVD-MOVIES">DVD MOVIES
</a>,
2573 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2577 <h4 class=
"subsection">6.1.8 MPEG
1 AUDIO
</h4>
2579 <p>These are .mp2 and .mp3 files. If fixed bitrate, they can be loaded
2580 directly with no table of contents. Variable bitrate streams need to
2581 have a table of contents created with
<b>mpeg3toc
</b>.
2585 <a name=
"OGG-THEORA%2fVORBIS"></a>
2586 <a name=
"OGG-THEORA_002fVORBIS"></a>
2587 Next:
<a rel=
"next" accesskey=
"n" href=
"#EDIT-DECISION-LIST">EDIT DECISION LIST
</a>,
2588 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MPEG-1-AUDIO">MPEG
1 AUDIO
</a>,
2589 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2593 <h4 class=
"subsection">6.1.9 OGG THEORA/VORBIS
</h4>
2595 <p>The OGG format is an antiquated but supposedly unpatented way of
2596 compressing audio and video. The quality isn't as good as H
.264 or
2597 MPEG-
4 Audio. In reality, anyone with enough money and desire can find
2598 a patent in anything so the justification for OGG is questionable.
2602 <a name=
"EDIT-DECISION-LIST"></a>
2603 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#OGG-THEORA_002fVORBIS">OGG THEORA/VORBIS
</a>,
2604 Up:
<a rel=
"up" accesskey=
"u" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>
2608 <h4 class=
"subsection">6.1.10 EDIT DECISION LIST
</h4>
2610 <p>Edit decision lists are generated by Cinelerra for storing projects.
2611 They end in .xml. They change project attributes when loaded.
2613 <p>Because edit decision lists consist of text, they can be edited in a
2618 <a name=
"LOADING-FILES"></a>
2619 Next:
<a rel=
"next" accesskey=
"n" href=
"#LOADING-THE-BACKUP">LOADING THE BACKUP
</a>,
2620 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SUPPORTED-FILE-FORMATS">SUPPORTED FILE FORMATS
</a>,
2621 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>
2625 <h3 class=
"section">6.2 LOADING FILES
</h3>
2627 <p>All data that you work with in Cinelerra is acquired either by
2628 <b>recording from a device
</b> or by
<b>loading from disk
</b>. This
2629 section describes loading.
2631 <p>The loading and playing of files is just as you would expect. Just go
2632 to
<b>file-
>Load
</b>, select a file for loading, and hit
<b>ok
</b>. Hit
2633 the forward play button and it should start playing, regardless of
2634 whether a progress bar has popped up.
2636 <p>Another way to load files is to pass the filenames as arguments on the
2637 command line. This creates new tracks for every file and starts the
2638 program with all the arguments loaded.
2640 <p>If the file is a still image, the project's attributes are not changed
2641 and the first frame of the track becomes the image. If the file has
2642 audio, Cinelerra may build an index file for it to speed up drawing.
2643 You can edit and play the file while the index file is being built.
2646 <li><a accesskey=
"1" href=
"#INSERTION-STRATEGY">INSERTION STRATEGY
</a>
2647 <li><a accesskey=
"2" href=
"#LOADING-MULTIPLE-FILES">LOADING MULTIPLE FILES
</a>
2652 <a name=
"INSERTION-STRATEGY"></a>
2653 Next:
<a rel=
"next" accesskey=
"n" href=
"#LOADING-MULTIPLE-FILES">LOADING MULTIPLE FILES
</a>,
2654 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-FILES">LOADING FILES
</a>
2658 <h4 class=
"subsection">6.2.1 INSERTION STRATEGY
</h4>
2660 <p>Usually three things happen when you load a file. First the existing
2661 project is cleared from the screen, second the project's attributes are
2662 changed to match the file's, and finally the new file's tracks are
2663 created in the timeline.
2665 <p>But Cinelerra lets you change what happens when you load a file.
2667 <p>In the file selection box go to the
<b>Insertion strategy
</b> box and
2668 select it. Each of these options loads the file a different way.
2671 <li>Replace current project
2673 <p>All tracks in the current project are deleted and new tracks are
2674 created to match the source. Project attributes are only changed when
2675 loading XML. If multiple files are selected it adds new tracks for
2678 <li>Replace current project and concatenate tracks
2680 <p>Same as replace current project except if multiple files are selected
2681 it concatenates the tracks of every file after the first.
2683 <li>Append in new tracks
2685 <p>The current project is not deleted and new tracks are created for the
2688 <li>Concatenate to existing tracks
2690 <p>The current project is not deleted and new files are concatenated to
2691 the existing tracks.
2693 <li>Paste at insertion point
2695 <p>The file is pasted in like a normal paste operation.
2697 <li>Create new resources only
2699 <p>The timeline is unchanged and new resources are created in the Resource
2704 <p>The insertion strategy is a recurring option in many of Cinelerra's
2705 functions. In each place the options do the same thing. With these
2706 options you can almost do all your editing by loading files.
2708 <p>If you load files by passing command line arguments to Cinelerra, the
2709 files are loaded with
<b>Replace current project
</b> rules.
2713 <a name=
"LOADING-MULTIPLE-FILES"></a>
2714 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INSERTION-STRATEGY">INSERTION STRATEGY
</a>,
2715 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-FILES">LOADING FILES
</a>
2719 <h4 class=
"subsection">6.2.2 LOADING MULTIPLE FILES
</h4>
2721 <p>In the file selection box go to the list of files. Select a file. Go
2722 to another file and select it while holding down
<b>CTRL
</b>. This
2723 selects one additional file. Go to another file and select it while
2724 holding down
<b>SHIFT
</b>. This selects every intervening file. This
2725 behavior is available in most every list box.
2727 <p>Select a bunch of mp3 files and
<b>Replace current project and
2728 concatenate tracks
</b> in the insertion strategy to create a song
2733 <a name=
"LOADING-THE-BACKUP"></a>
2734 Next:
<a rel=
"next" accesskey=
"n" href=
"#SAVING-FILES">SAVING FILES
</a>,
2735 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#LOADING-FILES">LOADING FILES
</a>,
2736 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>
2740 <h3 class=
"section">6.3 LOADING THE BACKUP
</h3>
2742 <p>There is one special XML file on disk at all times. After every
2743 editing operation Cinelerra saves the current project to a backup in
2744 <b>$HOME/.bcast/backup.xml
</b>. In the event of a crash go to
2745 <b>file-
>load backup
</b> to load the backup. It is important after a
2746 crash to reboot Cinelerra without performing any editing operations.
2747 Loading the backup should be the first operation or you'll overwrite
2752 <a name=
"SAVING-FILES"></a>
2753 Next:
<a rel=
"next" accesskey=
"n" href=
"#RENDERING-FILES">RENDERING FILES
</a>,
2754 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#LOADING-THE-BACKUP">LOADING THE BACKUP
</a>,
2755 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>
2759 <h3 class=
"section">6.4 SAVING FILES
</h3>
2761 <p>When Cinelerra saves a file it saves an edit decision list of the
2762 current project but doesn't save any media. Go to
<b>File-
>save
2763 as...
</b>. Select a file to overwrite or enter a new file. Cinelerra
2764 automatically concatenates
<b>.xml
</b> to the filename if no
2765 <b>.xml
</b> extension is given.
2767 <p>The saved file contains all the project settings and locations of every
2768 edit but instead of media it contains pointers to the original media
2771 <p>For each media file the XML file stores either an absolute path or just
2772 the relative path. If the media is in the same directory as the XML
2773 file a relative path is saved. If it's in a different directory an
2774 absolute path is saved.
2776 <p>In order to move XML files around without breaking the media linkages
2777 you either need to keep the media in the same directory as XML file
2778 forever or save the XML file in a different directory than the media
2779 and not move the media ever again.
2781 <p>If you want to create an audio playlist and burn it on CD-ROM, save the
2782 XML file in the same directory as the audio files and burn the entire
2783 directory. This keeps the media paths relative.
2785 <p>XML files are useful for saving the current state before going to sleep
2786 and saving audio playlists but they're limited in that they're specific
2787 to Cinelerra. You can't play XML files in a dedicated movie player.
2788 Realtime effects in an XML file have to be resynthesized every time you
2789 play it back. The XML file also requires you to maintain copies of all
2790 the source assets on hard drives, which can take up space and cost a
2791 lot of electricity to spin. For a more persistent storage of the
2792 output there's rendering.
2796 <a name=
"RENDERING-FILES"></a>
2797 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SAVING-FILES">SAVING FILES
</a>,
2798 Up:
<a rel=
"up" accesskey=
"u" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>
2802 <h3 class=
"section">6.5 RENDERING FILES
</h3>
2804 <p>Rendering takes a section of the timeline, performs all the editing,
2805 effects and compositing, and stores it in a pure movie file. You can
2806 then delete all the source assets, play the rendered file in a movie
2807 player, or bring it back into Cinelerra for more editing. It's very
2808 difficult to retouch any editing decisions in the pure movie file,
2809 however, so keep the original assets and XML file around several days
2810 after you render it.
2812 <p>All rendering operations are based on a region of the timeling to be
2813 rendered. You need to define this region on the timeline. The
2814 navigation section describes methods of defining regions.
2815 See
<a href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>. The rendering functions define the
2816 region based on a set of rules. When a region is highlighted or in/out
2817 points are set, the affected region is rendered. When no region is
2818 highlighted, everything after the insertion point is rendered. Merely
2819 by positioning the insertion point at the beginning of a track and
2820 unsetting all in/out points, the entire track is rendered.
2823 <li><a accesskey=
"1" href=
"#SINGLE-FILE-RENDERING">SINGLE FILE RENDERING
</a>: Rendering a single file
2824 <li><a accesskey=
"2" href=
"#BATCH-RENDERING">BATCH RENDERING
</a>: Rendering several files unattended
2825 <li><a accesskey=
"3" href=
"#THE-RENDER-FARM">THE RENDER FARM
</a>: Rendering using many computers
2826 <li><a accesskey=
"4" href=
"#COMMAND-LINE-RENDERING">COMMAND LINE RENDERING
</a>: Rendering from the command line without a GUI
2831 <a name=
"SINGLE-FILE-RENDERING"></a>
2832 Next:
<a rel=
"next" accesskey=
"n" href=
"#BATCH-RENDERING">BATCH RENDERING
</a>,
2833 Up:
<a rel=
"up" accesskey=
"u" href=
"#RENDERING-FILES">RENDERING FILES
</a>
2837 <h4 class=
"subsection">6.5.1 SINGLE FILE RENDERING
</h4>
2839 <p>The fastest way to get media to disk is to use the single file
2842 <p>Go to
<b>File-
>render
</b> to bring up the render dialog. Select the
2843 magnifying glass
<img src=
"magnify.png" alt=
"magnify.png"> to bring up a file selection dialog. This determines
2844 the filename to write the rendered file to and the encoding parameters.
2846 <p>In the render dialog select a format from the
<b>File Format
</b> menu.
2847 The format of the file determines whether you can render audio or video
2848 or both. Select the
<b>Render audio tracks
</b> toggle to generate
2849 audio tracks and
<b>Render video tracks
</b> to generate video tracks.
2851 <p>Select the wrench
<img src=
"wrench.png" alt=
"wrench.png"> next to each toggle to set compression
2852 parameters. If the file format can't store audio or video the
2853 compression parameters will be blank. If
<b>Render audio tracks
</b> or
2854 <b>Render video tracks
</b> is selected and the file format doesn't
2855 support it, trying to render will pop up an error.
2857 <p>The
<b>Create new file at each label
</b> option causes a new file to be
2858 created when every label in the timeline is encountered. This is
2859 useful for dividing long audio recordings into individual tracks. When
2860 using the renderfarm,
<b>Create new file at each label
</b> causes one
2861 renderfarm job to be created at every label instead of using the
2862 internal load balancing algorithm to space jobs.
2864 <p>When
<b>Create new file at each label
</b> is selected, a new filename
2865 is created for every output file. If the filename given in the render
2866 dialog has a
2 digit number in it, the
2 digit number is overwritten
2867 with a different incremental number for every output file. If no
2
2868 digit number is given, Cinelerra automatically concatenates a number to
2869 the end of the given filename for every output file.
2871 <p>In the filename
<b>/hmov/track01.wav
</b> the
<b>01</b> would be
2872 overwritten for every output file. The filename
2873 <b>/hmov/track.wav
</b>; however, would become
<b>/hmov/track.wav001
</b>
2874 and so on and so forth. Filename regeneration is only used when either
2875 renderfarm mode is active or creating new files for every label is
2878 <p>Finally the render dialog lets you select an insertion mode. The
2879 insertion modes are the same as with loading files. In this case if
2880 you select
<b>insert nothing
</b> the file will be written out to disk
2881 without changing the current project. For other insertion strategies
2882 be sure to prepare the timeline to have the output inserted at the
2883 right position before the rendering operation is finished.
2884 See
<a href=
"#EDITING">EDITING
</a>. Editing describes how to cause output to be inserted
2885 at the right position.
2887 <p>It should be noted that even if you only have audio or only have video
2888 rendered, a
<b>paste
</b> insertion strategy will behave like a normal
2889 paste operation, erasing any selected region of the timeline and
2890 pasting just the data that was rendered. If you render only audio and
2891 have some video tracks armed, the video tracks will get truncated while
2892 the audio output is pasted into the audio tracks.
2896 <a name=
"BATCH-RENDERING"></a>
2897 Next:
<a rel=
"next" accesskey=
"n" href=
"#THE-RENDER-FARM">THE RENDER FARM
</a>,
2898 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SINGLE-FILE-RENDERING">SINGLE FILE RENDERING
</a>,
2899 Up:
<a rel=
"up" accesskey=
"u" href=
"#RENDERING-FILES">RENDERING FILES
</a>
2903 <h4 class=
"subsection">6.5.2 BATCH RENDERING
</h4>
2905 <p>If you want to render many projects to media files without having to
2906 repeatedly attend to the
<b>Render
</b> dialog,
<b>batch rendering
</b> is the
2907 function to use. In this function, you specify many EDL files to
2908 render and the unique output files for each. Then Cinelerra loads each
2909 EDL file and renders it automatically, without any user intervention.
2910 Each EDL file and its output to be rendered is called a
<b>batch
</b>.
2911 This allows a huge amount of media to be processed and greatly
2912 increases the value of an expensive computer.
2914 <p>The first thing to do when preparing to do batch rendering is define
2915 projects to be rendered. The batch renderer requires a separate EDL
2916 file for every batch to be rendered. Set up a project and define the
2917 region to be rendered either by highlighting it, setting in/out points
2918 around it, or positioning the insertion point before it. Then save the
2919 project as an EDL. Define as many projects as needed this way. The
2920 batch renderer takes the active region from the EDL file for rendering.
2922 <p>With all the EDL files prepared with active regions, go to
2923 <b>File-
>batch render
</b>. This brings up the batch rendering dialog.
2924 The interface for batch rendering is a bit more complex than for single
2927 <p>A list of batches must be defined before starting a batch rendering
2928 operation. The table of batches appears on the bottom of the batch
2929 render dialog and is called
<b>batches to render
</b>. Above this are
2930 the configuration parameters for a single batch.
2932 <p>Set the
<b>output path
</b>,
<b>file format
</b>,
<b>Audio
</b>,
<b>Video
</b>, and
2933 <b>Create new file at each label
</b> parameters as if it was a single
2934 file. These parameters apply to only one batch. In addition to the
2935 standard rendering parameters, you must select the source EDL to use in
2936 the batch. Do this by setting the
<b>EDL path
</b>.
2938 <p>If the
<b>batches to render
</b> list is empty or nothing is highlighted,
2939 click
<b>New
</b> to create a new batch. The new batch will contain all
2940 the parameters you just set.
2942 <p>Repeatedly press the
<b>New
</b> button to create more batches with the
2943 same parameters. Highlight any batch and edit the configuration on the
2944 top of the batch render window. The highlighted batch is always
2945 synchronized to the information displayed.
2947 <p>Click and drag batches to change the order in which they're rendered.
2948 Hit
<b>delete
</b> to permanently remove the highlighted batch.
2950 <p>In the list box is a column which enables or disables the batch. This
2951 way batches can be skipped without being deleted. Click on the
2952 <b>Enabled
</b> column in the list box to enable or disable a batch. If it
2953 is checked, the batch is rendered. If it is blank, the batch is
2956 <p>The other columns in the batch list are informative.
2959 <li><b>Output
</b> The output path of the batch.
2960 <li><b>EDL
</b> The source EDL of the batch.
2961 <li><b>Elapsed
</b> The amount of time taken to render the batch if it is finished.
2965 <p>To start rendering from the first enabled batch, hit
<b>Start
</b>.
2967 <p>Once rendering, the main window shows the progress of the batch. Once
2968 the batch finishes, the elapsed column in the batch list is updated and
2969 the next batch is rendered until all the enabled batches are finished.
2970 The currently rendering batch is always highlighted red.
2972 <p>To stop rendering before the batches are finished without closing the
2973 batch render dialog, hit
<b>Stop
</b>.
2975 <p>To stop rendering before the batches are finished and close the batch
2976 render dialog, hit
<b>Cancel
</b>.
2978 <p>To exit the batch render dialog whether or not anything is being
2979 rendered, hit
<b>Cancel
</b>.
2983 <a name=
"THE-RENDER-FARM"></a>
2984 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMMAND-LINE-RENDERING">COMMAND LINE RENDERING
</a>,
2985 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#BATCH-RENDERING">BATCH RENDERING
</a>,
2986 Up:
<a rel=
"up" accesskey=
"u" href=
"#RENDERING-FILES">RENDERING FILES
</a>
2990 <h4 class=
"subsection">6.5.3 THE RENDER FARM
</h4>
2992 <p>When bicubic interpolation and HDTV was first done on Cinelerra, the
2993 time needed to produce the simplest output became unbearable even on
2994 the fastest dual
1.7Ghz Xeon of the time. Renderfarm support even in
2995 the simplest form brings HDTV times back in line with SD while making
2996 SD faster than realtime.
2998 <p>While the renderfarm interface isn't spectacular, it's simple enough to
2999 use inside an editing suite with less than a dozen nodes without going
3000 through the same amount of hassle you would with a several hundred node
3001 farm. Renderfarm is invoked transparently for all file-
>render
3002 operations when it is enabled in the preferences.
3004 <p>Cinelerra divides the selected region of the timeline into a certain
3005 number of jobs which are then dispatched to the different nodes
3006 depending on the load balance. The nodes process the jobs and write
3007 their output to individual files on the filesystem. The output files
3008 are not concatenated. It's important for all the nodes to have access
3009 to the same filesystem on the same mount point for assets.
3011 <p>If a node can't access an input asset it'll display error messages to
3012 its console but probably not die. If it can't access an output asset
3013 it'll cause the rendering to abort.
3015 <p>It should be noted that in the render dialog, the
<b>Create new file at
3016 each label
</b> option causes a new renderfarm job to be created at each
3017 label instead of by the load balancer. If this option is selected when
3018 no labels exist, only one job will be created.
3020 <p>A Cinelerra renderfarm is organized into a master node and any number
3021 of slave nodes. The master node is the computer which is running the
3022 GUI. The slave nodes are anywhere else on the network and are run from
3023 the command line. Run a slave node from the command line with
3025 <p><b>cinelerra -d
</b>
3027 <p>That is the simplest configuration. Type
<b>cinelerra -h
</b> to see more
3028 options. The default port number may be overridden by passing a port
3029 number after the -d.
3031 <p>Most of the time you'll want to bring in the rendered output and fine
3032 tune the timing on the timeline. Also some file formats like MPEG
3033 can't be direct copied. Because of this, the jobs are left in
3036 <p>You can load these by creating a new track and specifying
3037 <b>concatenate to existing tracks
</b> in the load dialog. Files which
3038 support direct copy can be concatenated into a single file by rendering
3039 to the same file format with renderfarm disabled. Also to get direct
3040 copy, the track dimensions, output dimensions, and asset dimensions
3043 <p>MPEG files or files which don't support direct copy have to be
3044 concatenated with a command line utility. MPEG files can be
3045 concatenated with
<b>cat
</b>.
3047 <p>Configuration of the renderfarm is described in the configuration
3048 chapter See
<a href=
"#RENDERFARM">RENDERFARM
</a>. The slave nodes traditionally read and
3049 write data to a common filesystem over a network, thus they don't need
3052 <p>Ideally all the nodes on the renderfarm have similar CPU performance.
3053 Cinelerra load balances on a first come first serve basis. If the last
3054 segment is dispatched to the slowest node, all the fastest nodes may
3055 end up waiting for the slowest node to finish while they themselves
3056 could have rendered it faster.
3060 <a name=
"COMMAND-LINE-RENDERING"></a>
3061 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-RENDER-FARM">THE RENDER FARM
</a>,
3062 Up:
<a rel=
"up" accesskey=
"u" href=
"#RENDERING-FILES">RENDERING FILES
</a>
3066 <h4 class=
"subsection">6.5.4 COMMAND LINE RENDERING
</h4>
3068 <p>The command line rendering facility consists of a way to load the
3069 current set of batch rendering jobs and process them without a GUI.
3070 This is useful if you're planning on crashing X repeatedly or want to
3071 do rendering on the other side of a low bandwidth network. You might
3072 have access to a supercomputer in India but still be stuck in America,
3073 exhiled you might say. A command line interface is ideal for this.
3075 <p>To perform rendering from the command line, first run Cinelerra in
3076 graphical mode. Go to
<b>file-
>batch render
</b>. Create the batches you
3077 intend to render in the batch window and close the window. This saves
3078 the batches in a file. Set up the desired renderfarm attributes in
3079 <b>settings-
>preferences
</b> and exit Cinelerra. These settings are used
3080 the next time command line rendering is used.
3082 <p>On the command line run
3084 <p><b>cinelerra -r
</b>
3086 <p>to processes the current batch jobs without a GUI. Setting up all the
3087 parameters for this operation is hard. That's why the command line
3088 aborts if any output files already exist.
3090 <p>Other parameters exist for specifying alternative files for the
3091 preferences and the batches. Attempting to use anything but the
3092 defaults is very involved so it hasn't been tested.
3096 <a name=
"NAVIGATING-THE-PROJECT"></a>
3097 Next:
<a rel=
"next" accesskey=
"n" href=
"#EDITING">EDITING
</a>,
3098 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#LOADING-AND-SAVING-FILES">LOADING AND SAVING FILES
</a>,
3099 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
3103 <h2 class=
"chapter">7 NAVIGATING THE PROJECT
</h2>
3105 <p>The thing you want to do most of the time is get to a certain time and
3106 place in the media. Internally the media is organized into tracks.
3107 Each track extends across time. Navigation involves both getting to a
3108 track and getting to a certain time in the track.
3111 <li><a accesskey=
"1" href=
"#NAVIGATING-THE-PROGRAM-WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
3112 <li><a accesskey=
"2" href=
"#NAVIGATING-THE-VIEWER-AND-COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>
3113 <li><a accesskey=
"3" href=
"#NAVIGATING-THE-RESOURCES">NAVIGATING THE RESOURCES
</a>
3114 <li><a accesskey=
"4" href=
"#USING-THE-TRANSPORT-CONTROLS">USING THE TRANSPORT CONTROLS
</a>
3115 <li><a accesskey=
"5" href=
"#USING-BACKGROUND-RENDERING">USING BACKGROUND RENDERING
</a>
3120 <a name=
"NAVIGATING-THE-PROGRAM-WINDOW"></a>
3121 Next:
<a rel=
"next" accesskey=
"n" href=
"#NAVIGATING-THE-VIEWER-AND-COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>,
3122 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>
3126 <h3 class=
"section">7.1 NAVIGATING THE PROGRAM WINDOW
</h3>
3128 <p>The program window contains many features for navigation and displays
3129 the timeline as it is structured in memory: tracks stacked vertically
3130 and extending across time horizontall. The horizontal scroll bar
3131 allows you to scan across time. The vertical scroll bar allows you to
3134 <p>Below the timeline you'll find the zoom panel. The zoom panel contains
3135 values for
<b>sample zoom
</b>,
<b>amplitude
</b>,
<b>track zoom
</b>, and
3136 <b>curve zoom
</b>. These values in addition to the scrollbars are the
3137 main tools for positioning the timeline.
3143 <img src=
"zoompanel.png" alt=
"zoompanel.png">
3145 <p>Changing the
<b>sample zoom
</b> causes the amount of time visible to
3146 change.
<b>If your mouse has a wheel and it works in X11 go over
3147 the tumblers and use the wheel to zoom in and out.
</b>
3149 <p>The
<b>amplitude
</b> only affects audio. It determines how big the
3150 waveform is if the waveform is drawn.
3152 <p>The
<b>track zoom
</b> affects all tracks. It determines the height of
3153 each track. If you change the track zoom the amplitude zoom
3154 compensates so audio waveforms look proportional.
3156 <p>The
<b>curve zoom
</b> affects the curves in all the tracks. It
3157 determines the amplitude and offset of the curves. The tumbler affects
3158 curve amplitude but the only way to change curve offset is to use the
3159 <b>fit curves
</b> button.
<img src=
"fit_curves.png" alt=
"fit_curves.png">
3161 <p>In addition to the graphical tools, you'll probably more often use the
3162 keyboard to navigate. Use
<b>PAGE UP
</b> and
<b>PAGE DOWN
</b> to
3163 scroll up and down the tracks.
3165 <p>Use the
<b>LEFT
</b> and
<b>RIGHT
</b> arrows to move across time in
3166 small increments. You'll often need to scroll beyond the end of the
3167 timeline but scrollbars won't let you do it. Instead use the
3168 <b>RIGHT
</b> arrow to scroll past the end of timeline.
3170 <p>Use the
<b>HOME
</b> and
<b>END
</b> keys to instantly go to the
3171 beginning or end of the timeline. In
<b>I-beam
</b> mode, hold down
3172 shift while pressing
<b>HOME
</b> or
<b>END
</b> to select the region of
3173 the timeline between the insertion point and the key pressed.
3175 <p>Use the
<b>UP
</b> and
<b>DOWN
</b> arrows to change the sample zoom by a
3178 <p><b>CTRL-UP
</b> and
<b>CTRL-DOWN
</b> cause the amplitude zoom to change.
3180 <p><b>CTRL-PGUP
</b> and
<b>CTRL-PGDOWN
</b> cause the track zoom to change.
3182 <p><b>ALT-UP
</b> and
<b>ALT-DOWN
</b> cause the curve amplitude to change.
3185 <li><a accesskey=
"1" href=
"#THE-INSERTION-POINT">THE INSERTION POINT
</a>
3186 <li><a accesskey=
"2" href=
"#THE-IN_002fOUT-POINTS">THE IN/OUT POINTS
</a>
3187 <li><a accesskey=
"3" href=
"#USING-LABELS-IN-THE-PROGRAM-WINDOW">USING LABELS IN THE PROGRAM WINDOW
</a>
3192 <a name=
"THE-INSERTION-POINT"></a>
3193 Next:
<a rel=
"next" accesskey=
"n" href=
"#THE-IN_002fOUT-POINTS">THE IN/OUT POINTS
</a>,
3194 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROGRAM-WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
3198 <h4 class=
"subsection">7.1.1 THE INSERTION POINT
</h4>
3200 <p>By default you'll see a flashing insertion point in the program window
3201 the first time you boot it up. This is where new media is pasted onto
3202 the timeline. It's also the starting point of all playback
3203 operations. When rendering, it defines the region of the timeline to
3206 <p>The insertion point is normally moved by clicking inside the timebar.
3207 Any region of the timebar not obscured by labels and in/out points is a
3208 hotspot for repositioning the insertion point.
3213 <img src=
"main_timebar.png" alt=
"main_timebar.png">
3214 <b>The main timebar
</b>
3216 <p>The insertion point also can be moved by clicking in the timeline
3217 itself, but not always. The insertion point has two modes of
3221 <li>drag and drop mode
3223 <li>cut and paste mode
3227 <p>The mode of operation is determined by selecting the arrow or the
3228 i-beam in the buttonbar.
3233 <img src=
"editing_mode.png" alt=
"editing_mode.png">
3234 <b>The editing mode buttons
</b>
3236 <p>If the arrow is highlighted it enables
<b>drag and drop
</b> mode. In
3237 drag and drop mode, clicking in the timeline doesn't reposition the
3238 insertion point. Instead it selects an entire edit. Dragging in the
3239 timeline repositions the edit, snapping it to other edit boundaries.
3240 This is normally useful for reordering audio playlists and moving
3243 <p>If the i-beam is highlighted it enables
<b>cut and paste mode
</b>. In
3244 cut and paste mode clicking in the timeline repositions the insertion
3245 point. Dragging in the timeline highlights a region. The highlighted
3246 region becomes the playback range during the next playback operation,
3247 the rendered range during the next render operation, and the region
3248 affected by cut and paste operations.
3250 <p><b>Shift-clicking
</b> in the timeline extends the highlighted region.
3252 <p><b>Double-clicking
</b> in the timeline selects the entire edit the
3255 <p>It should be noted that when moving the insertion point and selecting
3256 regions, the positions are either aligned to frames or aligned to
3257 samples. When editing video you'll want to align to frames. When
3258 editing audio you'll want to align to samples. This is set in
3259 <b>settings-
>align cursor on frames
</b>.
3261 <p>If the highlighted region is the region affected by cut and paste
3262 operations, how do I cut and paste in
<b>drag and drop
</b> mode? In
3263 this case you need to set
<b>in/out points
</b> to define an affected region.
3267 <a name=
"THE-IN%2fOUT-POINTS"></a>
3268 <a name=
"THE-IN_002fOUT-POINTS"></a>
3269 Next:
<a rel=
"next" accesskey=
"n" href=
"#USING-LABELS-IN-THE-PROGRAM-WINDOW">USING LABELS IN THE PROGRAM WINDOW
</a>,
3270 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-INSERTION-POINT">THE INSERTION POINT
</a>,
3271 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROGRAM-WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
3275 <h4 class=
"subsection">7.1.2 THE IN/OUT POINTS
</h4>
3277 <p>In both editing modes you can set in/out points. The in/out points
3278 define the affected region. In drag and drop mode they are the only
3279 way to define an affected region. In both cut and paste mode and drag
3280 and drop mode the highlighted area overrides the in/out points. If a
3281 highlighted area and in/out points are set, the highlighted area is
3282 affected by editing operations and the in/out points are ignored. If
3283 no region is highlighted, the in/out points are used.
3285 <p>Normally, in/out points do not affect the playback region. Only if you
3286 hold down CTRL while issuing a playback command do the in/out points
3287 determine the playback region.
3289 <p>To set in/out points go to the timebar and position the insertion point
3290 somewhere. Hit the
<img src=
"in_point_button.png" alt=
"in_point_button.png"> <b>in point button
</b>. Go
3291 to a position after the in point and hit the
<img src=
"out_point_button.png" alt=
"out_point_button.png">
3292 <b>out point button
</b>.
3297 <img src=
"inout_points.png" alt=
"inout_points.png"> <b>Timebar with in/out points set
</b>.
3299 <p>Select either the in point or the out point and the insertion point
3300 jumps to that location. After selecting an in point, if you hit the
3301 <b>in point button
</b> the in point will be deleted. After selecting
3302 an out point, if you hit the
<b>out point button
</b> the out point will
3305 <p>If you select a region somewhere else while in/out points already
3306 exist, the existing points will be repositioned when you hit the in/out
3309 <p><b>Shift-clicking
</b> on an in/out point extends the highlighted region
3312 <p>Instead of using the button bar you can use the
<b>[
</b> and
<b>]
</b>
3313 keys to toggle in/out points.
3315 <p>The insertion point and the in/out points allow you to define an
3316 affected region but they don't let you jump to exact points on the
3317 timeline very easily. For this purpose there are labels.
3321 <a name=
"USING-LABELS-IN-THE-PROGRAM-WINDOW"></a>
3322 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-IN_002fOUT-POINTS">THE IN/OUT POINTS
</a>,
3323 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROGRAM-WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>
3327 <h4 class=
"subsection">7.1.3 USING LABELS IN THE PROGRAM WINDOW
</h4>
3329 <p>Labels are an easy way to set exact locations on the timeline you want
3330 to jump to. When you position the insertion point somewhere and hit
3331 the
<img src=
"label_button.png" alt=
"label_button.png"> <b>label button
</b> a new label appears on the
3337 <img src=
"timebar_label.png" alt=
"timebar_label.png"> <b>Timebar with a label on it
</b>
3339 <p>No matter what the zoom settings are, clicking on the label positions
3340 the insertion point exactly where you set it. Hitting the label button
3341 again when a label is selected deletes it.
3343 <p><b>Shift-clicking
</b> on a label extends the highlighted region.
3345 <p><b>Double-clicking
</b> between two labels highlights the region between
3348 <p>Hitting the
<b>l
</b> key has the same effect as the label button.
3350 <p>If you hit the label button when a region is highlighted, two labels
3351 are toggled at each end of the highlighted region. If one end already
3352 has a label, then the existing label is deleted and a label is created
3353 at the opposite end.
3355 <p>Labels can reposition the insertion point when they are selected but
3356 they can also be traversed with the
<img src=
"label_traversal.png" alt=
"label_traversal.png"> <b>label
3357 traversal
</b> buttons. When a label is out of view, the label traversal
3358 buttons reposition the timeline so the label is visible. There are
3359 keyboard shortcuts for label traversal, too.
3361 <p><b>CTRL-LEFT
</b> repositions the insertion point on the previous label.
3363 <p><b>CTRL-RIGHT
</b> repositions the insertion point on the next label.
3365 <p>With label traversal you can quickly seek back and forth on the
3366 timeline but you can also select regions.
3368 <p><b>SHIFT-CTRL-LEFT
</b> extends the highlighted region to the previous
3371 <p><b>SHIFT-CTRL-RIGHT
</b> extends the highlighted region to the next label.
3373 <p>Manually hitting the label button or
<b>l
</b> key over and over again
3374 to delete a series of labels can get tedious. For deleting a set of
3375 labels, first highlight a region and second use the
<b>Edit-
>Clear
3376 labels
</b> function. If in/out points exist, the labels between the
3377 in/out points are cleared and the highlighted region ignored.
3381 <a name=
"NAVIGATING-THE-VIEWER-AND-COMPOSITOR"></a>
3382 Next:
<a rel=
"next" accesskey=
"n" href=
"#NAVIGATING-THE-RESOURCES">NAVIGATING THE RESOURCES
</a>,
3383 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#NAVIGATING-THE-PROGRAM-WINDOW">NAVIGATING THE PROGRAM WINDOW
</a>,
3384 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>
3388 <h3 class=
"section">7.2 NAVIGATING THE VIEWER AND COMPOSITOR
</h3>
3390 <p>The navigation features of the Viewer and Compositor behave very
3391 similarly. Each has a timebar and slider below the video output. The
3392 timebar and slider are critical for navigation.
3398 <img src=
"timebarslider.png" alt=
"timebarslider.png">
3400 <p>The timebar represents the entire time covered by the program. When
3401 you define labels and in/out points it defines those, too. Finally the
3402 timebar defines a region known as the
<b>preview region
</b>.
3404 <p>The
<b>preview region
</b> is the region of the timeline which the
3405 slider effects. The slider only covers the time covered by the preview
3406 region. By using a preview region inside the entire program and using
3407 the slider inside the preview region you can quickly and precisely seek
3408 in the compositor and viewer.
3410 <p>When you replace the current project with a file the preview region
3411 automatically resizes to cover the entire file. When you append data
3412 or change the size of the current project, the preview region stays the
3413 same size and shrinks. Therefore, you need to resize the preview
3416 <p>Load a file and then slide around it using the compositor slider. The
3417 insertion point in the main window follows the compositor. Move the
3418 pointer over the compositor's timebar until it turns into a left resize
3419 pointer. The click and drag right. The preview region should have
3420 changed and the slider resized proportionally.
3422 <p>Go to the right of the timebar until a right resize pointer appears.
3423 Drag left so the preview region shrinks.
3425 <p>Go to the center of the preview region in the timebar and drag it
3426 around to convince yourself if can be moved.
3432 <img src=
"previewregion.png" alt=
"previewregion.png">
3434 <p><b>Preview region in compositor
</b>
3436 <p>If you go to the slider and slide it around with the preview region
3437 shrunk, you'll see the slider only affects the preview region. The
3438 timebar and slider in the viewer window work exactly the same.
3440 <p>Labels and in/out points are fully supported in the viewer and
3441 compositor. The only difference between the viewer and compositor is
3442 the compositor reflects the state of the program while the viewer
3443 reflects the state of a clip but not the program.
3445 <p>When you hit the
<b>label button
</b> in the compositor, the label
3446 appears both in the compositor timebar and the program timebar.
3448 <p>When you select a label or in/out point in the compositor, the program
3449 window jumps to that position.
3454 <img src=
"viewer_labels.png" alt=
"viewer_labels.png"> <b>Labels and in/out points in the viewer
</b>.
3456 <p>In the viewer and compositor, labels and in/out points are displayed in
3457 the timebar. Instead of displaying just a region of the program, the
3458 timebar displays the entire program here.
3460 <p>Like the Program window, the Compositor has a zoom capability. First,
3461 the pulldown menu on the bottom of the compositor window has a number
3462 of zoom options. When set to
<b>Auto
</b> the video is zoomed to match
3463 the compositor window size as closely as possible. When set to any
3464 other percentage, the video is zoomed a power of
2 and scrollbars can
3465 be used to scroll around the output. When the video is zoomed bigger
3466 than the window size, not only do scrollbars scan around it but
3467 <b>middle mouse button
</b> dragging in the video output scans around
3468 it. This is exactly when The Gimp does.
3470 <p>Furthermore, the zoom
<img src=
"magnify.png" alt=
"magnify.png"> toggle causes the Compositor
3471 window to enter zoom mode. In zoom mode, clicking in the video output
3472 zooms in while
<b>ctrl-clicking
</b> in the video output zooms out. If
3473 you have a wheel mouse, rotating the wheel zooms in or out too.
3475 <p>Zooming in or out with the zoom tool does not change the rendered
3476 output, mind you. It's merely for scrutinizing video or fitting it in
3481 <a name=
"NAVIGATING-THE-RESOURCES"></a>
3482 Next:
<a rel=
"next" accesskey=
"n" href=
"#USING-THE-TRANSPORT-CONTROLS">USING THE TRANSPORT CONTROLS
</a>,
3483 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#NAVIGATING-THE-VIEWER-AND-COMPOSITOR">NAVIGATING THE VIEWER AND COMPOSITOR
</a>,
3484 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>
3488 <h3 class=
"section">7.3 NAVIGATING THE RESOURCES
</h3>
3490 <p>The resource window is divided into two areas. One area lists folders
3491 and another area lists folder contents. Going into the folder list and
3492 clicking on a folder updates the contents area with the contents of
3495 <p>The folder and contents can be displayed as icons or text.
3497 <p><b>Right clicking
</b> in the folder or contents area brings up a menu
3498 containing formatting options. Select
<b>Display text
</b> to display a
3499 text listing. Select
<b>Sort items
</b> to sort the contents of the
3500 folder alphabetically.
3504 <a name=
"USING-THE-TRANSPORT-CONTROLS"></a>
3505 Next:
<a rel=
"next" accesskey=
"n" href=
"#USING-BACKGROUND-RENDERING">USING BACKGROUND RENDERING
</a>,
3506 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#NAVIGATING-THE-RESOURCES">NAVIGATING THE RESOURCES
</a>,
3507 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>
3511 <h3 class=
"section">7.4 USING THE TRANSPORT CONTROLS
</h3>
3513 <p>Transport controls are just as useful in navigation as they are in
3514 playing back footage, hence they are described here in the navigation
3515 section. Each of the Viewer, Compositor, and Program windows has a
3521 <img src=
"transport_panel.png" alt=
"transport_panel.png"> <b>The transport panel
</b>.
3523 <p>The transport panel is controlled by the keyboard as well as the
3524 graphical interface. For each of the operations it performs, the
3525 starting position is the position of the insertion point in the Program
3526 window and the slider in the Compositor window. The ending position is
3527 either the end or start of the timeline or the end or start of the
3528 selected region if there is one.
3530 <p>The orientation of the end or start depends on the direction of
3531 playback. If it's forward the end position is the end of the selected
3532 region. If it's backward the end position is the start of the selected
3535 <p>The insertion point moves to track playback. When playback stops, the
3536 insertion point stays where playback stopped. Thus, by playing back
3537 you change the position of the insertion point.
3539 <p>The keyboard interface is usually the fastest and has more speeds. The
3540 transport keys are arranged in a sideways
<b>T
</b> on the number pad.
3543 <li><b>+
</b> Fast reverse
3544 <li><b>6</b> Normal reverse
3545 <li><b>5</b> Slow reverse
3546 <li><b>4</b> Frame reverse
3547 <li><b>1</b> Frame forward
3548 <li><b>2</b> Slow forward
3549 <li><b>3</b> Normal forward
3550 <li><b>Enter
</b> Fast forward
3552 <li><b>Spacebar
</b> Normal forward
3555 <p>Hitting any key on the keyboard twice pauses it.
3557 <p>When using frame advance functions the behavior may seem odd. If you
3558 frame advance forward and then frame advance backward, the displayed
3559 frame doesn't change. This is because the playback position isn't the
3560 frame but the time between two frames. The rendered frame is the area
3561 that the playback position crosses. When you increment the time
3562 between two frames by one and decrement it by one, you cross the same
3563 frame both times and so the same frame is displayed.
3565 <p>The transport behavior changes if you hold down CTRL when issuing any
3566 of the transport commands. This causes the starting point to be the in
3567 point if playing forward and the out point if playing backward. If
3568 playing forward, the out point becomes the ending point and if playing
3569 backward, the in point becomes the ending point. If no in/out points
3570 are specified, the behavior falls back to using the insertion point and
3571 track boundaries as the starting and ending points.
3575 <a name=
"USING-BACKGROUND-RENDERING"></a>
3576 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#USING-THE-TRANSPORT-CONTROLS">USING THE TRANSPORT CONTROLS
</a>,
3577 Up:
<a rel=
"up" accesskey=
"u" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>
3581 <h3 class=
"section">7.5 USING BACKGROUND RENDERING
</h3>
3583 <p>Background rendering allows impossibly slow effects to play back in
3584 realtime shortly after the effect is pasted in the timeline. It
3585 continuously renders temporary output. When renderfarm is enabled,
3586 background rendering uses the renderfarm continuously. This way, any
3587 size video can be seen in realtime merely by creating a fast enough
3588 network with enough nodes.
3590 <p>Background rendering is enabled in settings-
>preferences-
>performance.
3591 It has one interactive function:
<b>settings-
>set background render
</b>. This
3592 sets the point where background rendering begins to where the in point
3593 is. If any video exists, a red bar appears in the time bar showing
3594 what has been background rendered.
3596 <p>It's often useful to insert an effect or a transition and then select
3597 settings-
>set background render right before the effect to preview it
3602 <a name=
"EDITING"></a>
3603 Next:
<a rel=
"next" accesskey=
"n" href=
"#USING-EFFECTS">USING EFFECTS
</a>,
3604 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#NAVIGATING-THE-PROJECT">NAVIGATING THE PROJECT
</a>,
3605 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
3609 <h2 class=
"chapter">8 EDITING
</h2>
3611 <p>Editing comprises both the time domain and the track domain. Since the
3612 timeline consists of a stack of tracks, you need to worry about how to
3613 sort and create tracks in addition to what time certain media appears
3616 <p>In the time domain, Cinelerra offers many ways to approach the editing
3617 process. The three main methods are two screen editing, drag and drop
3618 editing, and cut and paste editing.
3620 <p>There are several concepts Cinelerra uses when editing which apply to
3621 all the methods. The
<b>timeline
</b> is where all editing decisions are
3622 represented. This is a stack of tracks in the center of the main
3623 window. It can be scrolled up, down, left and right with the
3624 scrollbars on the right and bottom of it. It can also be scrolled up
3625 and down with a mouse wheel.
3627 <p>The
<b>active region
</b> is the range of time which is affected by editing
3628 commands on the timeline. The active region is determined first by the
3629 presence of in/out points in the timeline. If those don't exist the
3630 highlighted region is used. If no highlighted region exists the
3631 insertion point is used as the start of the active region. Some
3632 commands treat all the space to the right of the insertion point as
3633 active, like
<b>Render
</b>, while others treat the active length as
0 if no
3634 end point for the active region is defined.
3636 <p>Finally, editing decisions never affect source material. This is
3637 <b>non destructive editing
</b> and it became popular with audio because it
3638 was much faster than if you had to copy all the media affected by an
3639 edit. Editing only affects pointers to source material, so if you want
3640 to have a media file at the end of your editing session which
3641 represents the editing decisions, you need to
<b>render
</b> it.
3642 See
<a href=
"#RENDERING-FILES">RENDERING FILES
</a>.
3644 <p>Every track on the timeline has a set of attributes on
3645 the left, the most important of which is the
<b>arm track
</b>
3649 <li><a accesskey=
"1" href=
"#THE-PATCHBAY">THE PATCHBAY
</a>: Enabling different features on different tracks
3650 <li><a accesskey=
"2" href=
"#NUDGING-TRACKS">NUDGING TRACKS
</a>: Moving entire tracks horizontally
3651 <li><a accesskey=
"3" href=
"#MANIPULATING-TRACKS">MANIPULATING TRACKS
</a>: Moving whole tracks around
3652 <li><a accesskey=
"4" href=
"#TWO-SCREEN-EDITING">TWO SCREEN EDITING
</a>: Using two video windows to edit
3653 <li><a accesskey=
"5" href=
"#DRAG-AND-DROP-EDITING">DRAG AND DROP EDITING
</a>: Dragging objects to edit
3654 <li><a accesskey=
"6" href=
"#CUT-AND-PASTE-EDITING">CUT AND PASTE EDITING
</a>: Editing media like text
3655 <li><a accesskey=
"7" href=
"#TRIMMING">TRIMMING
</a>: Changing in and out points
3660 <a name=
"THE-PATCHBAY"></a>
3661 Next:
<a rel=
"next" accesskey=
"n" href=
"#NUDGING-TRACKS">NUDGING TRACKS
</a>,
3662 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
3666 <h3 class=
"section">8.1 THE PATCHBAY
</h3>
3668 <p>On the left of the timeline is a region affectionately known as the
3669 patchbay. The patchbay enables features specific to each track. All
3670 tracks have a text area for naming the track.
3672 <p>All tracks have an
<b>expander
</b> <img src=
"expandpatch_checked.png" alt=
"expandpatch_checked.png"> for viewing
3673 more options and for viewing the effects on the track. Click on the
3674 expander to expand or collapse the track. If it's pointing sideways,
3675 the track is collapsed. If it's pointing down, the track is expanded.
3676 The effects appear below the media for the track if they exist.
3678 <p>All tracks have the following row of toggles for several features.
3683 <img src=
"track_attributes.png" alt=
"track_attributes.png">
3684 <b>Track attributes
</b>
3686 <p>If the toggle is colored, it is enabled. If the toggle is the
3687 background color of most of the windows, it is disabled. Click on the
3688 toggle to enable or disable the feature. Several mouse operations
3689 speed up the configuration of several tracks at a time.
3691 <p>Click on an attribute and drag across adjacent tracks to copy the same
3692 attribute to those tracks.
3694 <p>Hold down
<b>shift
</b> while clicking a track's attribute to enable the
3695 attribute in the current track and toggle the attribute in all the
3698 <p>Hold down
<b>shift
</b> while clicking an attribute. Click until all the
3699 tracks except the selected one are disabled. Then drag the cursor over
3700 the adjacent track to enable the attribute in the adjacent track.
3702 <p>The other attributes affect the output of the track.
3706 <b>Play track
</b> determines whether the track is rendered or not. If
3707 it's off, the track is not rendered. However, if the track is chained
3708 to any other tracks, the other tracks perform all the effects in the
3709 chained track, regardless of play status.
3715 <b>Arm track
</b> determines whether the track is armed or not. Only the
3716 <b>armed tracks
</b> are affected by editing operations. Make sure you
3717 have enough armed destination tracks when you paste or splice material
3718 or some tracks in the material will get left out.
3720 <p>In addition to restricting editing operations, the armed tracks in
3721 combination with the active region determine where material is inserted
3722 when loading files. If the files are loaded with one of the insertion
3723 strategies which doesn't delete the existing project, the armed tracks
3724 will be used as destination tracks.
3726 <p>Press
<b>Tab
</b> while the cursor is anywhere over a track to toggle the
3727 track arming status.
3729 <p>Press
<b>Shift-Tab
</b> while the cursor is over a track to toggle the
3730 arming status of every other track.
3733 <b>Gang fader
</b> causes the fader to track the movement of whatever other
3734 fader you're adjusting. A fader is only ganged if the
<b>arm track
</b> is
3735 also on. This is normally used to adjust audio levels on all the
3736 tracks simultaneously. Gang also causes
<b>Nudge
</b> parameters to
3737 synchronise across all the ganged tracks.
3744 <b>Draw media
</b> determines if picons or waveforms are drawn on the
3745 track. By default, some file formats load with this off while other
3746 file formats load with it on. This depends on whether the file format
3747 takes a long time to draw on the timeline. Merely set it to on if you
3748 want to see picons for any file format.
3754 <b>Mute track
</b> causes the output to be thrown away once the track is
3755 completely rendered. This happens whether or not
<b>play track
</b> is
3756 on. If the track is part of an effect chain, the output of the effect
3757 chain track is overlayed on the final output even though it's routed
3758 back to another track. Mute track is used to keep the effect chain
3759 track from overlapping the output of the source track.
3765 <b>Fader
</b> All tracks have a fader, but the units of each fader depend
3766 on whether it's audio or video. Click and drag the fader to fade the
3767 track in and out. If it is ganged to other tracks of the same media
3768 type, with the
<b>arm
</b> option enabled, the other faders should follow.
3770 <p>Hold down
<b>shift
</b> and drag a fader to center it on
0.
3776 <a name=
"NUDGING-TRACKS"></a>
3777 Next:
<a rel=
"next" accesskey=
"n" href=
"#MANIPULATING-TRACKS">MANIPULATING TRACKS
</a>,
3778 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-PATCHBAY">THE PATCHBAY
</a>,
3779 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
3783 <h3 class=
"section">8.2 NUDGING TRACKS
</h3>
3785 <p>Each track has a nudge textbox in the patchbay under the fader and on
3786 the right. You may have to expand the track to see it. The nudge is
3787 the amount the track is shifted left or right during playback. The
3788 track is not displayed shifted on the timeline, but it is shifted when
3789 it's played back. This is useful for synchronizing audio with video,
3790 creating fake stereo, or compensating for an effect which shifts time,
3791 all without tampering with any edits.
3793 <p>Merely enter in the amount of time to shift by to instantly shift the
3794 track. Negative numbers make the track play later. Positive numbers
3795 make the track play sooner. The nudge units are either
<b>seconds
</b> or
3796 the native units for the track. Select the units by
<b>right clicking
</b>
3797 on the nudge textbox and using the context sensitive menu.
3799 <p>Nudge settings are ganged with the
<b>Gang faders
</b> toggle and the
3800 <b>Arm track
</b> toggle.
3802 <p>Use the mouse wheel over the nudge textbox to increment and decriment
3807 <a name=
"MANIPULATING-TRACKS"></a>
3808 Next:
<a rel=
"next" accesskey=
"n" href=
"#TWO-SCREEN-EDITING">TWO SCREEN EDITING
</a>,
3809 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#NUDGING-TRACKS">NUDGING TRACKS
</a>,
3810 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
3814 <h3 class=
"section">8.3 MANIPULATING TRACKS
</h3>
3816 <p>Tracks in Cinelerra either contain audio or video. There is no special
3817 designation for tracks other than the type of media they contain. When
3818 you create a new project, it contains a certain mumber of default
3819 tracks. You can still add or delete tracks from a number of menus.
3820 The
<b>Tracks
</b> menu contains a number of options for dealing with
3821 multiple tracks simultaneously. Each track itself has a popup menu
3822 which affects one track.
3824 <p>Bring up the popup menu by moving over a track and right clicking. The
3825 popup menu affects the track whether it's armed or not.
3827 <p><b>Move up
</b> and
<b>move down
</b> moves the one track up or down in
3828 the stack.
<b>Delete track
</b> deletes the track.
3830 <p>Operations in the
<b>Tracks
</b> menu affect only tracks which are
3833 <p><b>Move tracks up
</b> and
<b>Move tracks down
</b> shift all the armed
3834 tracks up or down the stack.
3836 <p><b>Delete tracks
</b> deletes the armed tracks.
3838 <p><b>Delete last track
</b> deletes the last track, whether it's armed or
3839 not. Holding down the
<b>d
</b> key quickly deletes all the tracks.
3841 <p><b>Concatenate tracks
</b> is more complicated. It takes every
3842 <b>playable
</b> track and concatenates it to the end of the first
3843 <b>armed tracks
</b>. If there are two armed tracks followed by two
3844 playable tracks, the concatenate operation puts the two playable tracks
3845 after the two armed tracks. If there are three playable tracks
3846 instead, two tracks are put after the armed tracks and a third track is
3847 put on the end of the first armed track. The destination track wraps
3848 around until all the playable tracks are concatenated.
3850 <p>Finally, you'll want to create new tracks. The
<b>Audio
</b> and
3851 <b>Video
</b> menus each contain an option to add a track of their
3852 specific type. In the case of audio, the new track is put on the
3853 bottom of the timeline and the output channel of the audio track is
3854 incremented by one. In the case of video, the new track is put on the
3855 top of the timeline. This way, video has a natural compositing order.
3856 New video tracks are overlayed on top of old tracks.
3860 <a name=
"TWO-SCREEN-EDITING"></a>
3861 Next:
<a rel=
"next" accesskey=
"n" href=
"#DRAG-AND-DROP-EDITING">DRAG AND DROP EDITING
</a>,
3862 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MANIPULATING-TRACKS">MANIPULATING TRACKS
</a>,
3863 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
3867 <h3 class=
"section">8.4 TWO SCREEN EDITING
</h3>
3869 <p>This is the fastest way to construct a program out of movie files. The
3870 idea consists of viewing a movie file in one window and viewing the
3871 program in another window. Sections of the movie file are defined in
3872 one window and transferred to the end of the program in the other
3875 <p>The way to begin a two screen editing session is to load some
3876 resources. In
<b>file-
>load
</b> load some movies with the insertion
3877 mode
<b>create new resources
</b>. You want the timeline to stay
3878 unchanged while new resources are brought in. Go to the Resource
3879 Window and select the
<b>media
</b> folder. The newly loaded resources
3880 should appear. Drag a resource from the media side of the window over
3883 <p>There should be enough armed tracks on the timeline to put the sections
3884 of source material that you want. If there aren't, create new tracks
3887 <p>In the viewer window seek to the starting point of a clip you want to
3888 use. Use either the
<b>slider
</b> or the
<b>transport controls
</b>.
3889 Use the
<b>preview region
</b> to narrow down the search. Set the
3890 starting point with the
<img src=
"in_point_button.png" alt=
"in_point_button.png"> <b>in point button
</b>.
3892 <p>Seek to the ending point of the clip you want to use. Set the ending
3893 point with the
<img src=
"out_point_button.png" alt=
"out_point_button.png"> <b>out point button
</b>. The
3894 two points should now appear on the timebar and define a clip.
3896 <p>There are several things you can do with the clip now.
3900 Splice
<img src=
"splice_button.png" alt=
"splice_button.png"> inserts the clip in the timeline, pushing
3901 everything back. If an
<b>in point
</b> or
<b>out point
</b> exists on
3902 the timeline it's inserted there, otherwise it's inserted after the
3903 insertion point. After that, the insertion point moves to the end of
3904 the clip. If there is no in/out point, the insertion point will be
3905 used as the next splice location. This way you can continuously build
3906 up the program by splicing.
3909 Overwrite
<img src=
"overwrite_button.png" alt=
"overwrite_button.png"> overwrites the region of the
3910 timeline with the clip. If an
<b>in point
</b> or
<b>out point
</b>
3911 exists on the timeline it's overwritten there, otherwise it's
3912 overwritten after the insertion point. If a region is highlighted or
3913 both in and out points exist the difference between the active region
3914 and the clip length is deleted.
3917 Create a clip
<img src=
"toclip_button.png" alt=
"toclip_button.png"> generates a new clip for the
3918 resource window containing the affected region but doesn't change the
3919 timeline. Every clip has a title and a description. These are
3923 Copy behaves the same as in cut and paste editing.
3927 <p>Two screen editing can be done purely by keybard shortcuts. When you
3928 move the pointer over any button a tooltip should appear, showing what
3929 key is bound to that button. In the Viewer window, the number pad keys
3930 control the transport and the
<b>[ ] v
</b> keys perform in/out points
3935 <a name=
"DRAG-AND-DROP-EDITING"></a>
3936 Next:
<a rel=
"next" accesskey=
"n" href=
"#CUT-AND-PASTE-EDITING">CUT AND PASTE EDITING
</a>,
3937 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TWO-SCREEN-EDITING">TWO SCREEN EDITING
</a>,
3938 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
3942 <h3 class=
"section">8.5 DRAG AND DROP EDITING
</h3>
3944 <p>The answer is yes, you can you create a bunch of clips and drag them on
3945 the timeline. You can also drag edits around the timeline.
3947 <p>Load some files using
<b>file-
>load
</b>. Set the insertion mode to
3948 <b>Create new resources
</b>. This loads the files into the Resource
3949 Window. Create some audio and video tracks on the timeline using the
3950 video and audio menus.
3952 <p>Open the
<b>Media
</b> folder in the resource window. Drag a media file
3953 from the resource window to the timeline. If the media has video, drag
3954 it onto a video track. If the media is pure audio, drag it onto an
3957 <p>Cinelerra fills out the audio and video tracks below the dragging
3958 cursor with data from the file. This affects what tracks you should
3959 create initially and which track to drag the media onto. If the media
3960 has one video track and two audio tracks, you'll need one video track
3961 and two audio tracks on the timeline and the media should be dragged
3962 over the first video track. If the media has audio only you'll need
3963 one audio track on the timeline for every audio track in the media and
3964 the media should be dragged over the first audio track.
3966 <p>When dragging, the media snaps to the start of track if the track is
3967 empty. If there are edits on the track, the media snaps to the nearest
3970 <p>You can also drag multiple files from the resource window. Either draw
3971 a box around the files, use SHIFT, or use CTRL when selecting files.
3972 When you drop the files in the timeline, they are concatenated. The
3973 behavior of SHIFT and CTRL changes depending on if the resources are in
3976 <p>To display the resources as text or icons, right click inside the media
3977 list. Select either
<b>display icons
</b> or
<b>display text
</b> to
3978 change the list format.
3980 <p>When displaying text in the resource window
<b>SHIFT-clicking
</b> on
3981 media files extends the number of highlighted selections.
3982 <b>CTRL-clicking
</b> on media files in text mode selects additional
3983 files one at a time.
3985 <p>When displaying icons in the resource window
<b>SHIFT-clicking
</b> or
3986 <b>CTRL-clicking
</b> selects media files one at a time.
3988 <p>In addition to dragging media files, if you create clips and open the
3989 <b>clip
</b> folder you can drag clips on the timeline.
3991 <p>In the timeline there is further dragging functionality. To enable the
3992 dragging functionality of the timeline, select the arrow toggle
3993 <img src=
"arrow.png" alt=
"arrow.png">. Move over an edit and drag it. If more than one
3994 track is armed, Cinelerra will drag any edits which start on the same
3995 position as the edit the cursur is currently over. During a dragging
3996 operation the edit snaps to the nearest boundary.
3998 <p>Dragging edits around the timeline allows you to sort music playlists,
3999 sort movie scenes, and give better NAB demos but not much else.
4003 <a name=
"CUT-AND-PASTE-EDITING"></a>
4004 Next:
<a rel=
"next" accesskey=
"n" href=
"#TRIMMING">TRIMMING
</a>,
4005 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DRAG-AND-DROP-EDITING">DRAG AND DROP EDITING
</a>,
4006 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
4010 <h3 class=
"section">8.6 CUT AND PASTE EDITING
</h3>
4012 <p>This is the traditional method of editing in audio editors. In the
4013 case of Cinelerra, you either need to start a second copy of Cinelerra
4014 and copy from one copy to the other, copy from different tracks in the
4015 same copy, or load a media file into the Viewer and copy from there.
4017 <p>Load some files onto the timeline. To perform cut and paste editing
4018 select the
<img src=
"ibeam.png" alt=
"ibeam.png"> i-beam toggle. Select a region of the
4019 timeline and select the
<img src=
"cut.png" alt=
"cut.png"> cut button to cut it. Move the
4020 insertion point to another point in the timeline and select the
4021 <img src=
"paste.png" alt=
"paste.png"> paste button. Assuming no in/out points are defined on
4022 the timeline this performs a cut and paste operation.
4024 <p>If in/out points are defined, the insertion point and highlighted
4025 region are overridden by the in/out points for clipboard operations.
4026 Thus, with in/out points you can perform cut and paste in drag and drop
4027 mode as well as cut and paste mode.
4029 <p>When editing audio, it is customary to cut from one part of a waveform
4030 into the same part of another waveform. The start and stop points of
4031 the cut are identical in each waveform and might be offset slightly,
4032 while the wave data is different. It would be very hard to highlight
4033 one waveform to cut it and highlight the second waveform to paste it
4034 without changing the relative start and stop positions.
4036 <p>One option for simplifying this is to open a second copy of Cinelerra,
4037 cutting and pasting to transport media between the two copies. This
4038 way two highlighed regions can exist simultanously.
4040 <p>Another option is to set in/out points for the source region of the
4041 source waveform and set labels for the destination region of the
4042 destination waveform. Perform a cut, clear the in/out points, select
4043 the region between the labels, and perform a paste.
4045 <p>A final operation in cut and paste editing is the
<b>edit-
>clear
</b>
4046 operation. If a region is highlighted or in/out points exist, the
4047 affected region is cleared by
<b>edit-
>clear
</b>. But if the insertion
4048 point is over an edit boundary and the edits on each side of the edit
4049 boundary are the same resource, the edits are combined into one edit
4050 comprised by the resource. The start of this one edit is the start of
4051 the first edit and the end of this one edit is the end of the second
4052 edit. This either results in the edit expanding or shrinking.
4056 <a name=
"TRIMMING"></a>
4057 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CUT-AND-PASTE-EDITING">CUT AND PASTE EDITING
</a>,
4058 Up:
<a rel=
"up" accesskey=
"u" href=
"#EDITING">EDITING
</a>
4062 <h3 class=
"section">8.7 TRIMMING
</h3>
4064 <p>With some edits on the timeline it's possible to do trimming. By
4065 trimming you shrink or grow the edit boundaries by dragging them. In
4066 either drag and drop mode or cut and paste mode, move the cursor over
4067 an edit boundary until it changes shape. The cursor will either be an
4068 expand left or an expand right. If the cursor is an expand left, the
4069 dragging operation affects the beginning of the edit. If the cursor is
4070 an expand right, the dragging operation affects the end of the edit.
4072 <p>When you click on an edit boundary to start dragging, the mouse button
4073 number determines which dragging behavior is going to be followed.
3
4074 possible behaviors are bound to mouse buttons in the interface
4075 preferences. See
<a href=
"#INTERFACE">INTERFACE
</a>.
4077 <p>The effect of each drag operation not only depends on the behavior
4078 button but whether the beginning or end of the edit is being dragged.
4079 When you release the mouse button, the trimming operation is performed.
4081 <p>In a
<b>Drag all following edits
</b> operation, the beginning of the
4082 edit either cuts data from the edit if you move it forward or pastes
4083 new data from before the edit if you move it backward. The end of the
4084 edit pastes data into the edit if you move it forward or cuts data from
4085 the end of the edit if you move it backward. All the edits thereafter
4086 shift. Finally, if you drag the end of the edit past the start of the
4087 edit, the edit is deleted.
4089 <p>In a
<b>Drag only one edit
</b> operation, the behavior is the same when
4090 you drag the beginning or end of an edit. The only difference is none
4091 of the other edits in the track shift. Instead, anything adjacent to
4092 the current edit expands or shrinks to fill gaps left by the drag
4095 <p>In a
<b>Drag source only
</b> operation, nothing is cut or pasted. If
4096 you move the beginning or end of the edit forward, the source reference
4097 in the edit shifts forward. If you move the beginning or end of the
4098 edit backward, the source reference shifts backward. Where the edit
4099 appears in the timeline remains the same but the source shifts.
4101 <p>For all file formats besides still images, the extent of the trimming
4102 operation is clamped to the source file length. Attempting to drag the
4103 start of the edit beyond the start of the source clamps it to the
4106 <p>In all trimming operations, all edits which start on the same position
4107 as the cursor when the drag operation begins are affected. Unarm
4108 tracks to prevent edits from getting affected.
4112 <a name=
"USING-EFFECTS"></a>
4113 Next:
<a rel=
"next" accesskey=
"n" href=
"#SETTING-PROJECT-ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>,
4114 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#EDITING">EDITING
</a>,
4115 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
4119 <h2 class=
"chapter">9 USING EFFECTS
</h2>
4121 <p>It would be sufficient to perform all changes to the timeline using
4122 editing operations, but this isn't very extensible. Certain timeline
4123 changes should produce a different effect in the output without
4124 involving a unique procedure to apply each change. This is why we have
4127 <p>Effects fall into three categories, and each effect in a category is
4128 applied using the same procedure.
4131 <li><a accesskey=
"1" href=
"#REALTIME-EFFECTS">REALTIME EFFECTS
</a>
4132 <li><a accesskey=
"2" href=
"#RENDERED-EFFECTS">RENDERED EFFECTS
</a>
4133 <li><a accesskey=
"3" href=
"#TRANSITIONS">TRANSITIONS
</a>
4134 <li><a accesskey=
"4" href=
"#LADSPA-EFFECTS">LADSPA EFFECTS
</a>
4139 <a name=
"REALTIME-EFFECTS"></a>
4140 Next:
<a rel=
"next" accesskey=
"n" href=
"#RENDERED-EFFECTS">RENDERED EFFECTS
</a>,
4141 Up:
<a rel=
"up" accesskey=
"u" href=
"#USING-EFFECTS">USING EFFECTS
</a>
4145 <h3 class=
"section">9.1 REALTIME EFFECTS
</h3>
4147 <p>These are layered under the track they apply to. They process the
4148 track when the track is played back, with no permanent storage of the
4149 output except when the project is rendered.
4151 <p>All the realtime effects are listed in the resource window, divided
4152 into two groups: audio effects and video effects. Audio effects should
4153 be dragged from the resource window onto audio tracks. Video effects
4154 should be dragged onto video tracks.
4156 <p>If there is data on the destination track, the effect is applied to the
4157 entire track. If there is no data on the track the effect is deleted.
4158 Finally, if a region of the track is selected the effect is pasted into
4159 the region, regardless of whether there is data.
4161 <p>Some of the effects don't process data but synthesize data. In the
4162 case of a synthesis effect, you'll want to select a region of the
4163 track so the dragging operation pastes it without deleting it.
4165 <p>When dragging more than one effect onto a track, you'll see the effects
4166 layering from top to bottom, on the bottom of the track. When the
4167 track is played back, effects are processed from top to bottom. The
4168 output of the top effect becomes the input of the bottom effect and so
4171 <p>In addition to dragging from the resource window, effects may be
4172 applied to a track by a popup menu. Right click on a track and select
4173 <b>Attach effect
</b> from the popup. The attach effect dialog gives
4174 you more control than pure dragging and dropping. For one thing, the
4175 attach effect dialog lets you attach two more types of effects: shared
4176 effects and shared tracks. Select a plugin from the
<b>Plugins
</b>
4177 column and hit
<b>Attach
</b> under the plugins column to attach it.
4178 The effect is the same as if the effect was dragged from the resource
4181 <p>When an effect exists under a track, it most often needs to be
4182 configured. Go to the effect and right click on it to bring up the
4183 effect popup. In the effect popup is a
<b>show
</b> option. The show
4184 option causes the GUI for the effect to appear under the cursor. Most
4185 effects have GUI's but some don't. If the effect doesn't have a GUI,
4186 nothing pops up when the
<b>show
</b> option is selected. When you
4187 tweek parameters in the effect GUI, the parameters normally effect the
4188 entire duration of the effect.
4191 <li><a accesskey=
"1" href=
"#REALTIME-EFFECT-TYPES">REALTIME EFFECT TYPES
</a>
4192 <li><a accesskey=
"2" href=
"#EDITING-REALTIME-EFFECTS">EDITING REALTIME EFFECTS
</a>
4197 <a name=
"REALTIME-EFFECT-TYPES"></a>
4198 Next:
<a rel=
"next" accesskey=
"n" href=
"#EDITING-REALTIME-EFFECTS">EDITING REALTIME EFFECTS
</a>,
4199 Up:
<a rel=
"up" accesskey=
"u" href=
"#REALTIME-EFFECTS">REALTIME EFFECTS
</a>
4203 <h4 class=
"subsection">9.1.1 REALTIME EFFECT TYPES
</h4>
4205 <p>The two other effect types supported by the Attach Effect dialog are
4206 recycled effects. In order to use a recycled effect, three requiremenets
4210 <li>There must be other effects in the timeline.
4213 The other effects must be of the same type as the track you're
4214 attaching an effect to. If the track is an audio track, the effects
4215 must be audio effects. If the track is a video track, the effects must
4219 The insertion point or selected region must start inside the other effects.
4223 <p>In the case of a shared effect, these conditions must be true. In the
4224 case of a shared track, there merely must be another track on the
4225 timeline of the same type as the track you're applying an effect to.
4226 If you right clicked on a video track to attach an effect, there won't
4227 be anything in the
<b>shared tracks
</b> column if no other video track
4228 exists. If you right clicked on an audio track there won't be anything
4229 in the shared track column if no other audio track exists.
4231 <p>If shared effects or shared tracks are available, they appear in the
4232 <b>shared effects
</b> and
<b>shared tracks
</b> columns. The
4233 <b>attach
</b> button under each column causes anything highlighted in
4234 the column to be attached under the current track.
4236 <p>Shared effects and shared tracks allow very unique things to be done.
4237 In the case of a shared effect, the shared effect is treated like a
4238 copy of the original effect except in the shared effect the GUI can't
4239 be brought up. All configuration of the shared effect is determined by
4240 the GUI of the original effect and only the GUI of the original effect
4243 <p>When a shared effect is played back, it's processed just like a normal
4244 effect except the configuration is copied from the original effect.
4245 Some effects detect when they are being shared, like the reverb effects
4246 and the compressor. These effects determine what tracks are sharing
4247 them and either mix the two tracks together or use one track to stage
4248 some value. The reverb mixes tracks together to simulate ambience.
4249 The compressor uses one of the sharing tracks as the trigger.
4251 <p>When an original track has a
<b>shared track
</b> as one of its effects,
4252 the shared track itself is used as a realtime effect. This is more
4253 commonly known as
<b>bouncing tracks
</b> but Cinelerra achieves the
4254 same operation by attaching shared tracks. The fade and any effects in
4255 the shared track are applied to the original track. Once the shared
4256 track has processed the data, the original track performs any effects
4257 which come below the shared track and then composites it on the output.
4259 <p>In addition, once the shared track has processed the output of the
4260 original track like a realtime effect, the shared track mixes itself
4261 into the output with it's settings for pan, mode, and projector. Thus,
4262 two tracks are mixing the same data on the output. Most of the time
4263 you don't want the shared track to mix the same data as the original
4264 track on the output. You want it to stop right before the mixing stage
4265 and give the data back to the original track. Do this by enabling the
4266 <img src=
"mutepatch_up.png" alt=
"mutepatch_up.png"> mute toggle next to each track for whom you don't
4267 want to mix on the output.
4269 <p>Suppose you were making video and you did want the shared track to
4270 composite the original track's data on the output a second time. In
4271 the case of video, the video from the shared track would always appear
4272 under the video from the original track, regardless of whether it was
4273 on top of the original track. This is because shared tracks are
4274 composited in order of their attachment. Since it's part of the original
4275 track it has to be composited before the original track is composited.
4279 <a name=
"EDITING-REALTIME-EFFECTS"></a>
4280 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REALTIME-EFFECT-TYPES">REALTIME EFFECT TYPES
</a>,
4281 Up:
<a rel=
"up" accesskey=
"u" href=
"#REALTIME-EFFECTS">REALTIME EFFECTS
</a>
4285 <h4 class=
"subsection">9.1.2 EDITING REALTIME EFFECTS
</h4>
4287 <p>Many operations exist for manipulating effects once they are in the
4288 timeline. Because mixing effects and media is such complex business,
4289 the methods used in editing effects aren't as concise as cutting and
4290 pasting. Some of the editing happens by dragging in/out points, some
4291 of the editing happens through popup menus, and some of it happens by
4294 <p>Normally when you edit tracks, the effects follow the editing
4295 decisions. If you cut from a track, the effect shrinks. If you drag
4296 edit in/out points, the effect changes length. This behavior can be
4297 disabled by selecting
<b>Settings-
>edit effects
</b> in the project
4298 window. This decouples effects from editing operations, but what if
4299 you just want to edit the effects?
4301 <p>Move the timeline cursor over the effect borders until it changes to a
4302 resize left or resize right icon. In this state, if you drag the end
4303 of the effect, it performs an edit just like dragging the end of a
4306 <p>The three editing behaviors of track trimming apply to effect trimming
4307 and they are bound to the mouse buttons that you set in
<b>interface
4308 preferences
</b>. See
<a href=
"#INTERFACE">INTERFACE
</a>. When you perform a trim edit on an
4309 effect, the effect boundary is moved by dragging on it. Unlike track
4310 editing, the effect has no source length. You can extend the end of an
4311 effect as much as desired without being limited.
4313 <p>Also unlike track editing, the starting position of the drag operation
4314 doesn't bind the edit decision to media. The media the effect is bound
4315 to doesn't follow effect edits. Other effects; however, do follow
4316 editing decisions made on an effect. If you drag the end of an effect
4317 which is lined up to effects on other tracks, the effects on the other
4318 tracks will be edited while the media stays the same.
4320 <p>What happens if you trim the end of an effect in, leaving a lot of
4321 unaffected time near the end of the track? When you drag an effect in
4322 from the Resource Window you can insert the effect in the portion of
4323 the row unoccupied by the trimming operation. Realtime effects are
4324 organized into rows under the track. Each row can have multiple
4327 <p>In some cases you'll want a trimming operation to change only one row
4328 of effects. This can be achieved by first positioning the insertion
4329 point on the start or end of the effect. Then press
<b>shift
</b> while
4330 beginning the trimming operation. This causes the operation to change
4331 only one row of effects.
4333 <p>In addition to trimming, you can move effects up or down. Every track
4334 can have a stack of effects under it. By moving an effect up or down
4335 you change the order in which effects are processed in the stack. Go
4336 to an effect and right click to bring up the effect menu. The
4337 <b>Move up
</b> and
<b>Move down
</b> options move the effect up or down.
4339 <p>When you're moving effects up or down, be aware that if they're shared
4340 as
<b>shared effects
</b>, any references will be pointing to a
4341 different effect after the move operation.
4343 <p>Finally, there's dragging of effects. Dragging effects works just like
4344 dragging edits. You must select the
<img src=
"arrow.png" alt=
"arrow.png"> arrow to enter drag and
4345 drop mode before dragging effects. The effects snap to media
4346 boundaries, effect boundaries, and tracks. Be aware if you drag a
4347 reference to a shared effect, the reference will usually point to the
4348 wrong effect afterwards.
4350 <p>Right click on an effect to bring up a menu for the effect. Select
4351 <b>attach...
</b> to change the effect or change the reference if it is
4356 <a name=
"RENDERED-EFFECTS"></a>
4357 Next:
<a rel=
"next" accesskey=
"n" href=
"#TRANSITIONS">TRANSITIONS
</a>,
4358 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REALTIME-EFFECTS">REALTIME EFFECTS
</a>,
4359 Up:
<a rel=
"up" accesskey=
"u" href=
"#USING-EFFECTS">USING EFFECTS
</a>
4363 <h3 class=
"section">9.2 RENDERED EFFECTS
</h3>
4365 <p>Another type of effect is performed on a section of the track and the
4366 result stored somewhere before it is played back. The result is
4367 usually pasted into the track to replace the original data.
4369 <p>The rendered effects are not listed in the resource window but instead
4370 are accessed through the
<b>Audio-
>Render effect
</b> and
4371 <b>Video-
>Render effect
</b> menu options. Each of these menu options
4372 brings up a dialog for the rendered effect. Rendered effects apply to
4373 only one type of track, either audio or video. If no tracks of the
4374 type exist, an error pops up.
4376 <p>A region of the timeline to apply the effect to must be defined before
4377 selecting
<b>Render effect...
</b>. If no in/out points and no
4378 highlighted region exists, the entire region after the insertion point
4379 is treated as the affected region. Otherwise, the region between the
4380 in/out points or the highlighted region is the affected region.
4382 <p>In the render effect dialog is a list of all the realtime and all the
4383 rendered effects. The difference here is that the realtime effects are
4384 rendered to disk and not applied under the track. Highlight an effect
4385 in the list to designate it as the one being performed.
4387 <p>Define a file to render the effect to in the
<b>Select a file to
4388 render to
</b> box. The
<img src=
"magnify.png" alt=
"magnify.png"> magnifying glass allows file
4389 selection from a list.
4391 <p>Select a file format which can handle the track type. The
4392 <img src=
"wrench.png" alt=
"wrench.png"> wrench allows configuration specific to the file format.
4394 <p>There is also an option for creating a new file at each label. If you
4395 have a CD rip on the timeline which you want to divide into different
4396 files, the labels would become dividing points between the files if
4397 this option were selected. When the timeline is divided by labels, the
4398 effect is re-initialized at every label. Normalize operations take the
4399 peak in the current file and not in the entire timeline.
4401 <p>Finally there is an insertion strategy just like in the render dialog.
4402 It should be noted that even though the effect applies only to audio or
4403 video, the insertion strategy applies to all tracks just like a
4404 clipboard operation.
4406 <p>When you click
<b>OK
</b> in the effect dialog, it calls the GUI of the
4407 effect. If the effect is also a realtime effect, a second GUI appears
4408 to prompt for acceptance or rejection of the current settings. After
4409 accepting the settings, the effect is processed.
4413 <a name=
"TRANSITIONS"></a>
4414 Next:
<a rel=
"next" accesskey=
"n" href=
"#LADSPA-EFFECTS">LADSPA EFFECTS
</a>,
4415 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#RENDERED-EFFECTS">RENDERED EFFECTS
</a>,
4416 Up:
<a rel=
"up" accesskey=
"u" href=
"#USING-EFFECTS">USING EFFECTS
</a>
4420 <h3 class=
"section">9.3 TRANSITIONS
</h3>
4422 <p>When one edit ends and another edit begins, the default behaviour is to
4423 have the first edit's output immediately become the output of the
4424 second edit when played back. Transitions are a way for the first
4425 edit's output to become the second edit's output with different
4428 <p>Cinelerra supports audio and video transitions, all of which are listed
4429 in the resource window. Transitions may only apply to the matching
4430 track type. Transitions under
<b>audio transitions
</b> can only apply
4431 to audio tracks. Transitions under
<b>video transitions
</b> can only
4432 apply to video tracks.
4434 <p>Load a video file and cut a section from the center so the edit point
4435 is visible on the timeline. Go the resource window and click on the
4436 <b>Video transitions
</b> folder. Drag a transition from the transition
4437 list onto the second video edit on the timeline. A box highlights over
4438 where the transition will appear. Releasing it over the second edit
4439 applies the transition between the first and second edit.
4441 <p>You can now scrub over the transition with the transport controls and
4442 watch the output in the
<b>Compositor window
</b>. Scrubbing with the
4443 insertion point doesn't normally show transitions because the
4444 transition durations are usually too short. The exact point in time
4445 when the transition takes effect isn't straightforward. It starts when
4446 the second edit begins and lasts a certain amount of time into the
4447 second edit. Therefore, the first asset needs to have enough data
4448 after the edit point to fill the transition into the second edit.
4450 <p>Once the transition is in place, it can be edited similarly to an
4451 effect. Move the pointer over the transition and right click to bring
4452 up the transition menu. The
<b>show
</b> option brings up specific
4453 parameters for the transition in question if there are any. The
4454 <b>length
</b> option adjusts the length of the transition in seconds.
4455 Once these two parameters are set, they are applied to future
4456 transitions until they are changed again. Finally, the
<b>detach
</b>
4457 option removes the transition from the timeline.
4459 <p>Dragging and dropping transitions from the Resource window to the
4460 Program window can be really slow and tiring. Fortunately, once you
4461 drag a transition from the Resource window, the
<b>U
</b> and
<b>u
</b>
4462 keys will paste the same transition. The
<b>U
</b> key pastes the last
4463 video transition and the
<b>u
</b> key pastes the last audio transition
4464 on all the recordable tracks. If the insertion point or in point is
4465 over an edit, the beginning of the edit is covered by the transition.
4467 <p>It should be noted that when playing transitions from the timeline to a
4468 hardware accelerated video device, the hardware acceleration will
4469 usually be turned off momentarily during the transition and on after
4470 the transition in order to render the transition. Using an
4471 unaccelerated video device for the entire timeline normally removes the
4476 <a name=
"LADSPA-EFFECTS"></a>
4477 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TRANSITIONS">TRANSITIONS
</a>,
4478 Up:
<a rel=
"up" accesskey=
"u" href=
"#USING-EFFECTS">USING EFFECTS
</a>
4482 <h3 class=
"section">9.4 LADSPA EFFECTS
</h3>
4484 <p>LADSPA effects are supported in realtime and rendered mode for audio.
4485 The LADSPA plugins you get from the internet vary in quality. Most
4486 can't be tweeked in realtime very easily and work better when
4487 rendered. Some crash and some can only be applied to one track due to
4488 a lack of reentrancy. Although Cinelerra implements the LADSPA
4489 interface as accurately as possible, multiple tracks of realtime,
4490 simultaneous processing go beyond the majority of LADSPA users. LADSPA
4491 effects appear in the audio folder as the hammer and screwdriver, to
4492 signify that they are Plugins for Linux Audio Developers.
4494 <p>LADSPA Effects are enabled merely by setting the
<b>LADSPA_PATH
</b>
4495 environment variable to the location of your LADSPA plugins or putting
4496 them in the
<b>/usr/lib/cinelerra
</b> directory.
4500 <a name=
"SETTING-PROJECT-ATTRIBUTES"></a>
4501 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMPOSITING">COMPOSITING
</a>,
4502 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#USING-EFFECTS">USING EFFECTS
</a>,
4503 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
4507 <h2 class=
"chapter">10 SETTING PROJECT ATTRIBUTES
</h2>
4509 <p>When you play media files in Cinelerra, the media files have a certain
4510 number of tracks, a certain frame size, a certain sample size, and so
4511 on and so forth. No matter what the media file has; however, it is
4512 still played back according to the project attributes. If an audio
4513 file's samplerate is different than the project attributes, it is
4514 resampled. If a video file's frame size is different than the project
4515 attributes, it is composited on a black frame, either cropped or
4516 bordered with black.
4518 <p>The project attributes are adjusted in
<b>settings-
>format
</b> and in
4519 to a more limited extent in
<b>file-
>new
</b>. When you adjust project
4520 settings in
<b>file-
>new
</b> a new timeline is created with no data.
4521 Every timeline created from this point uses the same settings. When
4522 you adjust settings in
<b>settings-
>format
</b>, the timeline is not
4523 recreated with no data but every timeline created from this point uses
4526 <p>In addition to the traditional settings for sample rate, frame rate,
4527 frame size, Cinelerra uses some unusual settings like
<b>channel
4528 positions, color model, and aspect ratio.
</b>
4532 Channel positions is the only setting which doesn't affect the output
4533 necessarily. Click on a speaker icon and drag to change the position
4534 of a channel. It is merely a convenience so when more than
2 channels
4535 are used, the pan controls on the timeline are effective. Channels
3,
4536 4, and
5 wouldn't be very adjustible if they occupied the same
4537 locations as channels
1 and
2 on a pan control. Normally a
6 channel
4538 configuration would look like this:
4544 <img src=
"channelpositions.png" alt=
"channelpositions.png">
4550 But different channels can be positioned very close together to make
4551 them have the same output.
4554 Color model is very important for video playback. The video is stored
4555 on disk in one colormodel, normally compressed using a YUV derivative.
4556 When played back, Cinelerra decompresses it from the file format
4557 directly into the format of the output device. If effects are
4558 processed, the decompression is into an internal colormodel first and
4559 the internal colormodel is then converted to the format of the output
4560 device. The selection of internal colormodel determines how accurate
4561 and fast the effects are.
4563 <p>Cinelerra colormodels are described using a certain packing order of
4564 components and a certain number of bits for each component. The
4565 packing order is printed on the left and the bit allocation is printed
4568 <p><b>RGB888
</b> uses red, green, blue with
8 bits per channel.
4570 <p><b>RGBA8888
</b> uses red, green, blue, and alpha with
8 bits per
4573 <p><b>YUV888
</b> uses luminance and color with
8 bits per channel.
4575 <p><b>YUVA8888
</b> uses luminance, color, and alpha with
8 bits per
4578 <p><b>RGB Float
</b> uses red, green, blue with
32 bit floats per channel.
4580 <p><b>RGBA Float
</b> uses red, green, blue, and alpha with
32 bit floats per
4583 <p>In order to do effects which involve alpha channels, a colormodel with
4584 an alpha channel must be selected. These are RGBA8888, YUVA8888, and
4585 RGBA Float. The
4 channel colormodels are notoriously slower than
3
4586 channel colormodels, with the slowest being RGBA Float. Some effects,
4587 like fade, work around the need for alpha channels while other effects,
4588 like chromakey, require an alpha channel to do anything, so it's a good
4589 idea to try the effect without alpha channels before settling on an
4590 alpha channel and slowing it down.
4592 <p>The YUV colormodels are usually faster than RGB colormodels when using
4593 compressed footage. They also destroy fewer colors than RGB
4594 colormodels. If footage stored as JPEG or MPEG is processed many times
4595 in RGB, the colors will fade while they won't if processed in YUV.
4597 <p>Years of working with high dynamic range footage have shown floating
4598 point RGB to be the best format for high dynamic range. While
16 bit
4599 integers were used in the past, these were too lossy and slow for the
4600 amount of improvement.
4602 <p>RGB float doesn't destroy information when used with YUV source
4603 footage. It also supports brightness above
100%. Be aware that some
4604 effects, like Histogram, clip above
100%.
4607 Aspect ratio determines the shape of the video output when using the
4608 X11 video output. The numbers in each direction can be any floating
4609 point number. When drawn on the screen, video pixels are stretched to
4610 match the aspect ratio.
4612 <p>Some file formats, like MPEG video, write the project aspect ratio to
4619 <a name=
"COMPOSITING"></a>
4620 Next:
<a rel=
"next" accesskey=
"n" href=
"#KEYFRAMES">KEYFRAMES
</a>,
4621 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SETTING-PROJECT-ATTRIBUTES">SETTING PROJECT ATTRIBUTES
</a>,
4622 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
4626 <h2 class=
"chapter">11 COMPOSITING
</h2>
4628 <p>A large amount of Cinelerra's binary size is directed towards
4629 compositing. When you remove the letterboxing from a widescreen show,
4630 you're compositing. Changing the resolution of a show, making a split
4631 screen, and fading in and out among other things are all compositing
4632 operations in Cinelerra. Cinelerra detects when it's in a compositing
4633 operation and plays back through the compositing engine only then.
4634 Otherwise, it uses the fastest decoder available in the hardware.
4636 <p>Compositing operations are done on the timeline and in the Compositor
4637 window. Shortcuts exist in the Resource window for changing some
4638 compositing attributes. Once some video files are on the timeline, the
4639 compositor window is a good place to try compositing.
4642 <li><a accesskey=
"1" href=
"#THE-CAMERA-AND-PROJECTOR">THE CAMERA AND PROJECTOR
</a>
4643 <li><a accesskey=
"2" href=
"#MASKS">MASKS
</a>
4644 <li><a accesskey=
"3" href=
"#CROPPING">CROPPING
</a>
4645 <li><a accesskey=
"4" href=
"#SAFE-REGIONS">SAFE REGIONS
</a>
4646 <li><a accesskey=
"5" href=
"#OVERLAY-MODES">OVERLAY MODES
</a>
4647 <li><a accesskey=
"6" href=
"#TRACK-AND-OUTPUT-SIZES">TRACK AND OUTPUT SIZES
</a>
4652 <a name=
"THE-CAMERA-AND-PROJECTOR"></a>
4653 Next:
<a rel=
"next" accesskey=
"n" href=
"#MASKS">MASKS
</a>,
4654 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITING">COMPOSITING
</a>
4658 <h3 class=
"section">11.1 THE CAMERA AND PROJECTOR
</h3>
4660 <p>In the compositor window, the most important functions are the
4661 <img src=
"camera.png" alt=
"camera.png"> camera button and the
<img src=
"projector.png" alt=
"projector.png"> projector
4662 button. These control operation of the camera and projector. Inside
4663 Cinelerra's compositing pipeline, the camera determines where in the
4664 source video the temporary is copied from. The projector determines
4665 where in the output the temporary is copied to. The temporary is a
4666 frame of video in Cinelerra's memory where all graphics processing is
4667 done. Each track has a different temporary which is defined by the
4668 track size. By resizing the tracks you can create splitscreens, pans,
4675 <img src=
"compositing_pipeline.png" alt=
"compositing_pipeline.png">
4680 <b>Visual representation of the compositing pipeline
</b>.
4682 <p>When editing the camera and projector in the compositing window, the
4683 first track with
<b>record
</b> enabled is the track affected. Even if
4684 the track is completely transparent, it's still the affected track. If
4685 multiple video tracks exist, the easiest way to select one track for
4686 editing is to
<b>shift-click
</b> on the record icon of the track. This
4689 <p>When the
<b>projector
</b> button is enabled in the compositor window,
4690 you're in projector editing mode. A guide box appears in the video
4691 window. Dragging anywhere in the video window causes the guide box to
4692 move, hopefully along with the video.
<b>shift-dragging
</b> anywhere
4693 in the video window causes the guide box to shrink and grow along with
4694 the video. Once you've positioned the video with the projector, you're
4695 ready to master the camera.
4697 <p>Select the
<img src=
"camera.png" alt=
"camera.png"> camera button to enable camera editing mode.
4698 In this mode, the guide box shows where the camera position is in
4699 relation to past and future camera positions but not where it is in
4700 relation to the source video. Dragging the camera box in the
4701 compositor window doesn't move the box but instead moves the location
4702 of the video inside the box.
4704 <p>For example, when you drag the camera left, the video moves right.
4705 When you drag the camera up, the video moves down. When you shift-drag
4706 the camera, the effect is the same as if you zoomed in or out of the
4707 source. The intention of the camera is to produce still photo panning,
4708 while the intention of the projector is to composite several sources in
4711 <p>In the compositing window, there is a popup menu of options for the
4712 camera and projector. Right click over the video portion of the
4713 compositing window to bring up the menu.
4716 <li>Reset Camera causes the camera to return to the center position.
4718 <li>Reset Projector causes the projector to return to the center.
4722 <p>The camera and projector have shortcut operations neither in the popup
4723 menu or represented in video overlays. These are accessed in the
4724 <b>Tool window
</b>. Most operations in the Compositor window have a
4725 tool window which is enabled by activating the
<img src=
"toolwindow.png" alt=
"toolwindow.png">
4728 <p>In the case of the camera and projector, the tool window shows x, y,
4729 and z coordinates. By either tumbling or entering text directly, the
4730 camera and projector can be precisely positioned.
9 justification
4731 types are also defined for easy access. A popular justification
4732 operation is upper left projection after image reduction. This is used
4733 when reducing the size of video with aspect ratio adjustment.
4735 <p>The translation effect allows simultaneous aspect ratio conversion and
4736 reduction but is easier to use if the reduced video is put in the upper
4737 left of the temporary instead of in the center. The track size is set
4738 to the original size of the video and the camera is centered. The
4739 output size is set to the reduced size of the video. Without any
4740 effects, this produces just the cropped center portion of the video in
4743 <p>The translation effect is dropped onto the video track. The input
4744 dimensions of the translation effect are set to the original size and
4745 the output dimensions are set to the reduced size. To put the reduced
4746 video in the center section that the projector shows would require
4747 offsetting
<b>out x and out y
</b> by a complicated calculation.
4748 Instead, we leave
<b>out x and out y
</b> at
0 and use the projector's
4751 <p>Merely by selecting
<img src=
"left_justify.png" alt=
"left_justify.png"> left justify and
4752 <img src=
"top_justify.png" alt=
"top_justify.png"> top justify, the projector displays the reduced
4753 image from the top left corner of the temporary in the center of the
4758 <a name=
"MASKS"></a>
4759 Next:
<a rel=
"next" accesskey=
"n" href=
"#CROPPING">CROPPING
</a>,
4760 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-CAMERA-AND-PROJECTOR">THE CAMERA AND PROJECTOR
</a>,
4761 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITING">COMPOSITING
</a>
4765 <h3 class=
"section">11.2 MASKS
</h3>
4767 <p>Masks select a region of the video for either displaying or hiding.
4768 Masks are also used in conjunction with another effect to isolate the
4769 effect to a certain region of the frame. A copy of one video track may
4770 be delayed slightly and unmasked in locations where the one copy has
4771 interference but the other copy doesn't. Color correction may be
4772 needed in one section of a frame but not another. A mask can be
4773 applied to just a section of the color corrected track while the
4774 vanilla track shows through. Removal of boom microphones, airplanes,
4775 and housewives are other mask uses.
4777 <p>The order of the compositing pipeline affects what can be done with
4778 masks. Mainly, masks are performed on the temporary after effects and
4779 before the projector. This means multiple tracks can be bounced to a
4780 masked track and projected with the same mask.
4782 <p>Our compositing pipeline graph now has a masking stage. There are
8
4783 possible masks per track. Each mask is defined separately, although
4784 they each perform the same operation, whether it's addition or
4791 <img src=
"compositing_pipeline2.png" alt=
"compositing_pipeline2.png">
4796 <b>Compositing pipeline with masks
</b>
4798 <p>To define a mask, go into the Compositor window and enable the
4799 <img src=
"mask.png" alt=
"mask.png"> <b>mask
</b> toggle. Now go over the video and
4800 click-drag. Click-drag again in another part of the image to create
4801 each new point of the mask. While it isn't the conventional bezier
4802 curve behavior, this masking interface performs in realtime what the
4803 effect of the mask is going to be. Creating each point of the mask
4804 expands a rubber band curve.
4806 <p>Once points are defined, they can be moved by
<b>ctrl-dragging
</b> in
4807 the vicinity of the corner. This; however, doesn't smooth out the
4808 curve. The in-out points of the bezier curve are accessed by
4809 <b>shift-dragging
</b> in the vicinity of the corner. Then
4810 <b>shift-dragging
</b> near the in or out point causes the point to
4813 <p>Finally, once you have a mask, the mask can be translated in one piece
4814 by
<b>alt-dragging
</b> the mask. Mask editing in Cinelerra is
4815 identical to how The Gimp edits masks except in this case the effect of
4816 the mask is always on.
4818 <p>The masks have many more parameters which couldn't be represented with
4819 video overlays. These are represented in the tool window for masks.
4820 Selecting the
<img src=
"toolwindow.png" alt=
"toolwindow.png"> question mark when the
<img src=
"mask.png" alt=
"mask.png">
4821 mask toggle is highlighted brings up the mask options.
4823 <p>The
<b>mode
</b> of the mask determines if the mask removes data or
4824 makes data visible. If the mode is subtractive, the mask causes video
4825 to disappear. If the mode is additive, the mask causes video to appear
4826 and everything outside the mask to disappear.
4828 <p>The
<b>value
</b> of the mask determines how extreme the addition or
4829 subtraction is. In the subtractive mode, higher values subtract more
4830 alpha. In the additive mode, higher values make the region in the mask
4831 brighter while the region outside the mask is always hidden.
4833 <p>The mask number determines which one of the
8 possible masks we're
4834 editing. Each track has
8 possible masks. When you click-drag in the
4835 compositor window, you're only editing one of the masks. Change the
4836 value of
<b>mask number
</b> to cause another mask to be edited. The
4837 previous mask is still active but only the curve overlay for the
4838 currently selected mask is visible.
4840 <p>When multiple masks are used, their effects are ORed together. Every
4841 mask in a single track uses the same value and mode.
4843 <p>The edges of a mask are hard by default but this rarely is desired.
4844 The
<b>feather
</b> parameter determines how many pixels to feather the
4845 mask. This creates softer edges but takes longer to render.
4847 <p>Finally, there are parameters which affect one point on the current
4848 mask instead of the whole mask. These are
<b>Delete, x, y
</b>. The
4849 active point is defined as the last point dragged in the compositor
4850 window. Any point can be activated merely by
<b>ctrl-clicking
</b> near
4851 it without moving the pointer. Once a point is activated,
4852 <b>Delete
</b> deletes it and
<b>x, y
</b> allow repositioning by numeric
4857 <a name=
"CROPPING"></a>
4858 Next:
<a rel=
"next" accesskey=
"n" href=
"#SAFE-REGIONS">SAFE REGIONS
</a>,
4859 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MASKS">MASKS
</a>,
4860 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITING">COMPOSITING
</a>
4864 <h3 class=
"section">11.3 CROPPING
</h3>
4866 <p>Cropping changes the value of the output dimensions and the projector
4867 to reduce the visible picture area. Enable the
<img src=
"crop.png" alt=
"crop.png"> crop
4868 toggle and the
<img src=
"toolwindow.png" alt=
"toolwindow.png"> tool window in the
<b>compositing
4869 window
</b> to perform cropping.
4871 <p>This draws a rectangle over the video. Click-drag anywhere in the
4872 video to start a new rectangle. Click-drag over any corner of the
4873 rectangle to reposition the corner.
4875 <p>Alt-click in the cropping rectangle to translate the rectangle to any
4876 position without resizing it.
4878 <p>The tool window allows text entry of the coordinates and executes the
4879 cropping operation. When the rectangle is positioned, hit the
<b>do
4880 it
</b> button in the tool window to execute the cropping operation.
4884 <a name=
"SAFE-REGIONS"></a>
4885 Next:
<a rel=
"next" accesskey=
"n" href=
"#OVERLAY-MODES">OVERLAY MODES
</a>,
4886 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CROPPING">CROPPING
</a>,
4887 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITING">COMPOSITING
</a>
4891 <h3 class=
"section">11.4 SAFE REGIONS
</h3>
4893 <p>On consumer displays the borders of the image are cut off and within
4894 the cutoff point is a region which isn't always square like it is in
4895 the compositor window. The borders are intended for scratch room and
4896 vertical blanking data. You can show where these borders are by
4897 enabling the
<img src=
"titlesafe.png" alt=
"titlesafe.png"> safe regions toggle. Keep titles inside
4898 the inner rectangle and keep action inside the outer rectangle.
4902 <a name=
"OVERLAY-MODES"></a>
4903 Next:
<a rel=
"next" accesskey=
"n" href=
"#TRACK-AND-OUTPUT-SIZES">TRACK AND OUTPUT SIZES
</a>,
4904 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SAFE-REGIONS">SAFE REGIONS
</a>,
4905 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITING">COMPOSITING
</a>
4909 <h3 class=
"section">11.5 OVERLAY MODES
</h3>
4911 <p>Every video track has an overlay mode, accessible by expanding the
4912 track. The overlay mode is a pulldown menu on the left under the
4913 fader. When collapsed, it displays an icon representing the current
4916 <p>Select the
<img src=
"expandpatch_checked.png" alt=
"expandpatch_checked.png"> expand track toggle to view all
4917 the options for a video track if you can't see the overlay mode. The
4918 overlay mode of video tracks is
<b>normal
</b> by default. Select other
4919 modes by clicking the overlay button and selecting an item from the
4922 <p>Overlay modes are processed inside the projector stage of compositing.
4923 The different modes are summarized below.
4927 <b>Normal
</b> uses a traditional Porter-Diff equation to blend tracks with
4928 alpha. When no alpha exists in the project color model, the new track
4929 always replaces the output.
4932 <b>Addition
</b> In this mode, whatever is in the output is added to the
4933 current track. The result is blended based on the current track's
4934 alpha onto the output.
4937 <b>Subtraction
</b> In this mode, the current track is subtracted from the
4938 output and the result is alpha blended onto the output.
4941 <b>Multiply
</b> is the most useful operation. The current track is multiplied
4942 by the output and the result blended onto the output. Usually a black
4943 and white image with no alpha channel or a white title on a black image
4944 is used as the current track. With the multiply operation, only the
4945 output portions under the white area show.
4948 <b>Divide
</b> divides the current track by the output and the result is
4949 blended into the output. It usually results in overloaded levels.
4952 <b>Replace
</b> does no blending and overwrites the output with the current
4959 <a name=
"TRACK-AND-OUTPUT-SIZES"></a>
4960 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#OVERLAY-MODES">OVERLAY MODES
</a>,
4961 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMPOSITING">COMPOSITING
</a>
4965 <h3 class=
"section">11.6 TRACK AND OUTPUT SIZES
</h3>
4967 <p>The size of the temporary and the size of the output in our compositing
4968 pipeline are independant and variable. This fits into everything
4969 covered so far. The camera's viewport is the temporary size. Effects
4970 are processed in the temporary and are affected by the temporary size.
4971 Projectors are rendered to the output and are affected by the output
4972 size. If the temporary is smaller than the output, the temporary is
4973 bordered by blank regions in the output. If the temporary is bigger
4974 than the output, the temporary is cropped.
4976 <p>The temporary size is defined as the track size. Each track has a
4977 different size. Right click on a track to bring up the track's menu.
4978 Select
<b>Resize Track
</b> to resize the track to any arbitrary size.
4979 Alternatively you can select
<b>Match output size
</b> to make the track
4980 the same size as the output.
4982 <p>The output size is set in either
<b>New
</b> when creating a new project
4983 or
<b>Settings-
>Format
</b>. In the Resource window there is another
4984 way to change the output size. Right click on a video asset and select
4985 <b>Match project size
</b> to conform the output to the asset. When new
4986 tracks are created, the track size always conforms to the output size
4987 specified by these methods.
4991 <a name=
"KEYFRAMES"></a>
4992 Next:
<a rel=
"next" accesskey=
"n" href=
"#CAPTURING-MEDIA">CAPTURING MEDIA
</a>,
4993 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMPOSITING">COMPOSITING
</a>,
4994 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
4998 <h2 class=
"chapter">12 KEYFRAMES
</h2>
5000 <p>When you change the fade, camera, projector, or other parameters for a
5001 track, they stay by default the same for the entire durection of the
5002 timeline. Setting static parameters isn't very useful sometimes.
5003 Normally you need to move the camera around over time or change mask
5004 positions. Masks need to follow objects. We create dymanic changes by
5005 defining keyframes. A keyframe is a certain point in time when the
5006 settings for one operation change. In Cinelerra, there are keyframes
5007 for almost every compositing parameter and effect parameter.
5009 <p>Whenever you adjust any parameter, the value is stored in a keyframe.
5010 If the value is stored in a keyframe, why doesn't it always change?
5011 The keyframe it is stored in by default is known as the
<b>default
5012 keyframe
</b>. The default keyframe applies to the entire duration if no
5013 other keyframes are present. The default keyframe is not drawn
5014 anywhere because it always exists. The only way change occurs over
5015 time is if non-default keyframes are created.
5017 <p>Display keyframes for any parameter by using the
<b>view
</b> menu. A
5018 faster way to toggle multiple keyframe types is to bring up
5019 <b>window-
>overlays
</b>. This window allows toggling of every parameter
5020 in the view menu. When keyframes are selected, they are drawn on the
5021 timeline over the tracks they apply to.
5023 <p>Keyframes come in many forms: curves, toggles, modes, and so on.
5024 How to handle the different types of keyframes is described here.
5027 <li><a accesskey=
"1" href=
"#CURVE-KEYFRAMES">CURVE KEYFRAMES
</a>
5028 <li><a accesskey=
"2" href=
"#TOGGLE-KEYFRAMES">TOGGLE KEYFRAMES
</a>
5029 <li><a accesskey=
"3" href=
"#AUTOMATIC-KEYFRAMES">AUTOMATIC KEYFRAMES
</a>
5030 <li><a accesskey=
"4" href=
"#COMPOSITOR-KEYFRAMES">COMPOSITOR KEYFRAMES
</a>
5031 <li><a accesskey=
"5" href=
"#EDITING-KEYFRAMES">EDITING KEYFRAMES
</a>
5036 <a name=
"CURVE-KEYFRAMES"></a>
5037 Next:
<a rel=
"next" accesskey=
"n" href=
"#TOGGLE-KEYFRAMES">TOGGLE KEYFRAMES
</a>,
5038 Up:
<a rel=
"up" accesskey=
"u" href=
"#KEYFRAMES">KEYFRAMES
</a>
5042 <h3 class=
"section">12.1 CURVE KEYFRAMES
</h3>
5044 <p>Many parameters are stored in bezier curves. Go to
<b>view-
>fade
</b> or
5045 <b>view-
>...zoom
</b> to show curves on the timeline for those parameters.
5046 In either arrow editing mode or i-beam editing mode, move the cursor
5047 over the curves in the timeline until it changes shape. Then merely by
5048 clicking and dragging on the curve you can create a keyframe at the
5051 <p>After the keyframe is created, click drag on it again to reposition
5052 it. When you click-drag a second keyframe on the curve, it creates a
5053 smooth ramp.
<b>ctrl-dragging
</b> on a keyframe changes the value of
5054 either the input control or the output control. This affects the
5055 sharpness of the curve. While the input control and the output control
5056 can be moved horizontally as well as vertically, the horizontal
5057 movement is purely for legibility and isn't used in the curve value.
5059 <p>You may remember that The Gimp and the Compositing masks all use
5060 <b>shift
</b> to select control points so why does the timeline use
5061 <b>ctrl
</b>? When you
<b>shift-drag
</b> on a timeline curve, the
5062 keyframe snaps to the value of either the next or previous keyframe,
5063 depending on which exists. This lets you set a constant curve value
5064 without having to copy the next or previous keyframe.
5067 <li><a accesskey=
"1" href=
"#NAVIGATING-CURVE-KEYFRAMES">NAVIGATING CURVE KEYFRAMES
</a>
5072 <a name=
"NAVIGATING-CURVE-KEYFRAMES"></a>
5073 Up:
<a rel=
"up" accesskey=
"u" href=
"#CURVE-KEYFRAMES">CURVE KEYFRAMES
</a>
5077 <h4 class=
"subsection">12.1.1 NAVIGATING CURVE KEYFRAMES
</h4>
5079 <p>There isn't much room on the timeline for a wide range of curve
5080 values. You need to zoom the curves in and out vertically to have any
5081 variability. This is done by
2 tools: the automation fit button
5082 <img src=
"fitautos.png" alt=
"fitautos.png"> and automation zoom menu
<img src=
"autozoom.png" alt=
"autozoom.png">.
5084 <p>The automation fit button scales and offsets the vertical range so the
5085 selected curve area appears in the timeline. If a region of the
5086 timeline is highlighted by the cursor, only that region is scaled.
5087 In/out points don't affect the zoomed region.
<b>Alt-f
</b> also performs
5090 <p>The automation zoom menu manually changes the vertical scaling of the
5091 curves in multiples of
2. Click on its tumbler to change the zoom.
5092 <b>Alt-Up and Alt-Dn
</b> change the automation zoom from the keyboard.
5096 <a name=
"TOGGLE-KEYFRAMES"></a>
5097 Next:
<a rel=
"next" accesskey=
"n" href=
"#AUTOMATIC-KEYFRAMES">AUTOMATIC KEYFRAMES
</a>,
5098 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CURVE-KEYFRAMES">CURVE KEYFRAMES
</a>,
5099 Up:
<a rel=
"up" accesskey=
"u" href=
"#KEYFRAMES">KEYFRAMES
</a>
5103 <h3 class=
"section">12.2 TOGGLE KEYFRAMES
</h3>
5105 <p>Mute is the only toggle keyframe. Mute keyframes determine where the
5106 track is processed but not rendered to the output. Click-drag on these
5107 curves to create a keyframe. Unlike curves, the toggle keyframe has
5108 only two values: on or off. Ctrl and shift do nothing on toggle
5113 <a name=
"AUTOMATIC-KEYFRAMES"></a>
5114 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMPOSITOR-KEYFRAMES">COMPOSITOR KEYFRAMES
</a>,
5115 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TOGGLE-KEYFRAMES">TOGGLE KEYFRAMES
</a>,
5116 Up:
<a rel=
"up" accesskey=
"u" href=
"#KEYFRAMES">KEYFRAMES
</a>
5120 <h3 class=
"section">12.3 AUTOMATIC KEYFRAMES
</h3>
5122 <p>You may have noticed when a few fade curves are set up, moving the
5123 insertion point around the curves causes the faders to reflect the
5124 curve value under the insertion point. This isn't just to look cool.
5125 The faders themselves can set keyframes in automatic keyframe mode.
5126 Automatic keyframe mode is usually more useful than dragging curves.
5128 <p>Enable automatic keyframe mode by enabling the automatic keyframe
5129 toggle
<img src=
"autokeyframe.png" alt=
"autokeyframe.png">. In automatic keyframe mode, every time
5130 you tweek a keyframeable parameter it creates a keyframe on the
5131 timeline. Since automatic keyframes affect many parameters, it's best
5132 enabled just before you need a keyframe and disabled immediately
5135 <p>It's useful to go into the
<b>View
</b> menu and make the desired
5136 parameter visible before performing a change. The location where the
5137 automatic keyframe is generated is under the insertion point. If the
5138 timeline is playing back during a tweek, several automatic keyframes
5139 will be generated as you change the parameter.
5141 <p>When automatic keyframe mode is disabled, a similarly strange thing
5142 happens. Adjusting a parameter adjusts the keyframe immediately
5143 preceeding the insertion point. If two fade keyframes exist and the
5144 insertion point is between them, changing the fader changes the first
5147 <p>There are many parameters which can only be keyframed in automatic
5148 keyframe mode. These are parameters for which curves would take up too
5149 much space on the track or which can't be represented easily by a
5152 <p>Effects are only keyframable in automatic mode because of the number of
5153 parameters in each individual effect.
5155 <p>Camera and projector translation can only be keyframed in automatic
5156 keyframe mode while camera and projector zoom can be keyframed with
5157 curves. It is here that we conclude the discussion of compositing,
5158 since compositing is highly dependant on the ability to change over
5163 <a name=
"COMPOSITOR-KEYFRAMES"></a>
5164 Next:
<a rel=
"next" accesskey=
"n" href=
"#EDITING-KEYFRAMES">EDITING KEYFRAMES
</a>,
5165 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#AUTOMATIC-KEYFRAMES">AUTOMATIC KEYFRAMES
</a>,
5166 Up:
<a rel=
"up" accesskey=
"u" href=
"#KEYFRAMES">KEYFRAMES
</a>
5170 <h3 class=
"section">12.4 COMPOSITOR KEYFRAMES
</h3>
5172 <p>Camera and projector translation is represented by two parameters: x
5173 and y. Therefore it is cumbersome to adjust with curves. Cinelerra
5174 solves this problem by relying on automatic keyframes. With a video
5175 track loaded, move the insertion point to the beginning of the track
5176 and enable automatic keyframe mode.
5178 <p>Move the projector slightly in the compositor window to create a
5179 keyframe. Then go forward several seconds. Move the projector a long
5180 distance to create another keyframe and emphasize motion. This creates
5181 a second projector box in the compositor, with a line joining the two
5182 boxes. The joining line is the motion path. If you create more
5183 keyframes, more boxes are created. Once all the desired keyframes are
5184 created, disable automatic keyframe mode.
5186 <p>Now when scrubbing around with the compositor window's slider, the
5187 video projection moves over time. At any point between two keyframes,
5188 the motion path is read for all time before the insertion point and
5189 green for all time after the insertion point. It's debatable if this
5190 is a very useful feature but it makes you feel good to know what
5191 keyframe is going to be affected by the next projector tweek.
5193 <p>Click-drag when automatic keyframes are off to adjust the preceeding
5194 keyframe. If you're halfway between two keyframes, the first projector
5195 box is adjusted while the second one stays the same. Furthermore, the
5196 video doesn't appear to move in step with the first keyframe. This is
5197 because, halfway between two keyframes the projector translation is
5198 interpolated. In order to set the second keyframe you'll need to scrub
5199 after the second keyframe.
5201 <p>By default the motion path is a straight line, but it can be curved
5202 with control points.
<b>Ctrl-drag
</b> to set either the in or out
5203 control point of the preceeding keyframe. Once again, we depart from
5204 The Gimp because
<b>shift
</b> is already used for zoom. After the in
5205 or out control points are extrapolated from the keyframe,
5206 <b>Ctrl-dragging
</b> anywhere in the video adjusts the nearest control
5207 point. A control point can be out of view entirely yet still
5210 <p>When editing the camera translation, the behavior of the camera boxes
5211 is slightly different. Camera automation is normally used for still
5212 photo panning. The current camera box doesn't move during a drag, but
5213 if multiple keyframes are set, every camera box except the current
5214 keyframe appears to move. This is because the camera display shows
5215 every other camera position relative to the current one.
5217 <p>The situation becomes more intuitive if you bend the motion path
5218 between two keyframes and scrub between the two keyframes. The
5219 division between red and green, the current position between the
5220 keyframes, is always centered while the camera boxes move.
5224 <a name=
"EDITING-KEYFRAMES"></a>
5225 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMPOSITOR-KEYFRAMES">COMPOSITOR KEYFRAMES
</a>,
5226 Up:
<a rel=
"up" accesskey=
"u" href=
"#KEYFRAMES">KEYFRAMES
</a>
5230 <h3 class=
"section">12.5 EDITING KEYFRAMES
</h3>
5232 <p>Keyframes can be shifted around and moved between tracks on the
5233 timeline using similar cut and paste operations to editing media. Only
5234 the keyframes selected in the
<b>view
</b> menu are affected by keyframe
5235 editing operations, however.
5237 <p>The most popular keyframe editing operation is replication of some
5238 curve from one track to the other, to make a stereo pair. The first
5239 step is to solo the source track's record
<img src=
"recordpatch_up.png" alt=
"recordpatch_up.png"> patch
5240 by
<b>shift-clicking
</b> on it. Then either set in/out points or
5241 highlight the desired region of keyframes. Go to
<b>keyframes-
>copy
5242 keyframes
</b> to copy them to the clipboard. Solo the destination track's
5243 record
<img src=
"recordpatch_up.png" alt=
"recordpatch_up.png"> patch by
<b>shift-clicking
</b> on it and
5244 go to
<b>keyframes-
>paste keyframes
</b> to paste the clipboard.
5246 <p>The media editing commands are mapped to the keyframe editing commands
5247 by using the
<b>shift
</b> key instead of just the keyboard shortcut.
5249 <p>This leads to the most complicated part of keyframe editing, the
5250 default keyframe. Remember that when no keyframes are set at all,
5251 there is still a default keyframe which stores a global parameter for
5252 the entire duration. The default keyframe isn't drawn because it
5253 always exists. What if the default keyframe is a good value which you
5254 want to transpose between other non-default keyframes? The
5255 <b>keyframes-
>copy default keyframe
</b> and
<b>keyframes-
>paste
5256 default keyframe
</b> allow conversion of the default keyframe to a
5257 non-default keyframe.
5259 <p><b>Keyframes-
>copy default keyframe
</b> copies the default keyframe to
5260 the clipboard, no matter what region of the timeline is selected. The
5261 <b>keyframes-
>paste keyframes
</b> function may then be used to paste
5262 the clipboard as a non-default keyframe.
5264 <p>If you've copied a non-default keyframe, it can be stored as the
5265 default keyframe by calling
<b>keyframes-
>paste default keyframe
</b>.
5266 After using paste default keyframe to convert a non-default keyframe
5267 into a default keyframe, you won't see the value of the default
5268 keyframe reflected until all the non-default keyframes are removed.
5270 <p>Finally, there is a convenient way to delete keyframes besides
5271 selecting a region and calling
<b>keyframes-
>clear keyframes
</b>.
5272 Merely click-drag a keyframe before its preceeding keyframe or after
5273 its following keyframe on the track.
5277 <a name=
"CAPTURING-MEDIA"></a>
5278 Next:
<a rel=
"next" accesskey=
"n" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>,
5279 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#KEYFRAMES">KEYFRAMES
</a>,
5280 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
5284 <h2 class=
"chapter">13 CAPTURING MEDIA
</h2>
5286 <p>Ideally, all media would be stored on hard drives, CD-ROM, flash, or
5287 DVD and loading it into Cinelerra would be a matter of loading a file.
5288 In reality, very few sources of media can be accessed like a filesystem
5289 but instead rely on tape transport mechanisms and dumb I/O mechanisms
5290 to transfer the data to computers. These media types are imported into
5291 Cinelerra through the Record dialog.
5293 <p>The first step in recording is to configure the input device. In
5294 <b>Settings-
>preferences
</b> are a number of recording parameters
5295 described in configuration See
<a href=
"#RECORDING">RECORDING
</a>. These parameters apply to
5296 recording no matter what the project settings are, because the
5297 recording parameters are usually the maximum capability of the
5298 recording hardware while project settings come and go.
5300 <p>Go to
<b>File-
>record
</b> to record a dumb I/O source. This prompts
5301 for an output format much like rendering does. Once that's done, the
5302 record window and the record monitor pop up.
5304 <p>The record window has discrete sections. While many parameters change
5305 depending on if the file has audio or video, the discrete sections are
5310 The output format area describes the format of the output file and the
5311 current position within it.
5314 The edit batch area lets you change parameters in the current batch.
5317 The transport controls start and stop recording different ways.
5320 The batch list displays all the defined batches.
5323 The confirmation area lets you determine how the output files are
5324 imported into the timeline and quit.
5328 <div class=
"block-image"><img src=
"recording.png" alt=
"recording.png"></div>
5333 <b>Recording window areas
</b>
5335 <p>Recording in Cinelerra is organized around batches. A batch
5336 essentially defines a distinct output file for the recording. For now
5337 you can ignore the batch concept entirely and record merely by hitting
5338 the record button
<img src=
"record.png" alt=
"record.png">.
5340 <p>The record button opens the current output file if it isn't opened and
5341 writes captured data to it. Use the stop button to stop the
5342 recording. Recording can be resumed with the record button without
5343 erasing the file at this point. In the case of a video file, there is
5344 a single frame record button
<img src=
"singleframe.png" alt=
"singleframe.png"> which records a single
5347 <p>When enough media is recorded, choose an insertion method from the
5348 <b>Insertion Strategy
</b> menu and hit
<b>close
</b>.
5351 <li><a accesskey=
"1" href=
"#BATCHES">BATCHES
</a>
5352 <li><a accesskey=
"2" href=
"#EDITING-TUNER-INFORMATION">EDITING TUNER INFORMATION
</a>
5357 <a name=
"BATCHES"></a>
5358 Next:
<a rel=
"next" accesskey=
"n" href=
"#EDITING-TUNER-INFORMATION">EDITING TUNER INFORMATION
</a>,
5359 Up:
<a rel=
"up" accesskey=
"u" href=
"#CAPTURING-MEDIA">CAPTURING MEDIA
</a>
5363 <h3 class=
"section">13.1 BATCHES
</h3>
5365 <p>Now we come to the concept of batches. Batches try to make the dumb
5366 I/O look more like a filesystem. Batches are traditionally used to
5367 divide tape into different programs and save the different programs as
5368 different files instead of recording straight through an entire tape.
5369 Because of the high cost of developing frame-accurate deck control
5370 mechanisms, the only use of batches now is recording different programs
5371 during different times of day. This is still useful for recording TV
5372 shows or time lapse movies as anyone who can't afford proper appliances
5375 <p>The record window supports a list of batches and two recording modes:
5376 interactive and batch recording. Interactive recording happens when
5377 the record button is pressed. Interactive recording starts immediately
5378 and uses the current batch to determine everything except start time.
5379 By default, the current batch is configured to behave like tape.
5381 <p>Batch recording happens when the
<b>start
</b> button is pressed. In
5382 batch recording, the
<b>start time
</b> is the time the batch starts
5385 <p>First, you'll want to create some batches. Each batch has certain
5386 parameters and methods of adjustment.
5390 <b>On
</b> determines whether the batch is included in batch recording
5391 operations. Click the list row under
<b>On
</b> to enable or disable
5395 <b>Path
</b> is the file the batch is going to be recorded to. The
5396 filename specified in the record dialog is the name of the first batch,
5397 to simplify interactive recording, but the filename may be changed in
5398 the record window for any batch in the
<b>edit batch
</b> area.
5401 <b>News
</b> shows whether the file exists or not. This is a very
5402 important attribute since there is no confirmation dialog if the file
5403 exists. The first time you hit record, the file is opened. If the
5404 file exists at this point it's erased. News says
<b>File exists
</b> if
5405 it exists and
<b>OK
</b> if it doesn't. Every time you resume recording
5406 in the same batch, the news should say
<b>Open
</b>, indicating the file
5407 is already opened and won't be erased in the next record button press.
5409 <p>If you change out of the current batch after recording, the file is
5410 closed. Next time you change into the batch, the file will be erased.
5413 <b>Start time
</b> is the
24 hour time of day the batch will start
5414 recording if in batch mode. The start time may become a time of tape
5415 and reel number if deck control is implemented but for now it's a time
5419 <b>Duration
</b> is the length of the batch. It only has meaning if the
5420 <b>Mode
</b> of the batch is
<b>Timed
</b>. Once the recording length
5421 reaches
<b>duration
</b> the recording stops, whether in interactive or
5425 <b>Source
</b> has meaning only when the capturing hardware has multiple
5426 sources. Usually the source is a tuner channel or input. When the
5427 current batch finishes and the next batch begins recording, the source
5428 is changed to what the next batch is set to. This way multiple TV
5429 stations can be recorded at different times.
5433 <p>The record window has a notion of the
<b>current batch
</b>. The
5434 current batch is not the same as the batch which is highlighted in the
5435 batch list. The current batch text is colored red in the batch list.
5436 The highlighted batch is merely displayed in the edit batch section for
5439 <p>By coloring the current batch red, any batch can be edited by
5440 highlighting it, without changing the batch to be recorded.
5442 <p>All recording operations take place in the current batch. If there
5443 are multiple batches, highlight the desired batch and hit
5444 <b>activate
</b> to make it the current batch. If the
<b>start
</b>
5445 button is pressed, the current batch flashes to indicate it's waiting
5446 for the start time in batch mode. If the
<b>record
</b> button is
5447 pressed, the current batch is recorded immediately in interactive mode.
5449 <p>In batch and interactive recording modes, when the current batch
5450 finishes recording the next batch is activated and performed. All
5451 future recording is done in batch mode. When the first batch finishes,
5452 the next batch flashes until its start time is reached.
5454 <p>Interrupt either the batch or the interactive operation by hitting the
5457 <p>Finally there is the
<img src=
"rewind.png" alt=
"rewind.png"> rewind button. In either
5458 interactive or batch recording, the rewind button causes the current
5459 batch to close its file. The next recording operation in the current
5460 batch deletes the file.
5464 <a name=
"EDITING-TUNER-INFORMATION"></a>
5465 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#BATCHES">BATCHES
</a>,
5466 Up:
<a rel=
"up" accesskey=
"u" href=
"#CAPTURING-MEDIA">CAPTURING MEDIA
</a>
5470 <h3 class=
"section">13.2 EDITING TUNER INFORMATION
</h3>
5472 <p>Sometimes in the recording process and the configuration process,
5473 you'll need to define and select tuner channels to either record or
5474 play back to. In the case of the Video4Linux and Buz recording
5475 drivers, tuner channels define the source. When the Buz driver is also
5476 used for playback, tuner channels define the destination.
5478 <p>Defining tuner channels is accomplished by pushing the
<img src=
"channel.png" alt=
"channel.png">
5479 channel button. This brings up the channel editing window. In this
5480 window you add, edit, and sort channels. Also, for certain video
5481 drivers, you can adjust the picture quality.
5483 <p>The
<b>add
</b> operation brings up a channel editing box. The title of
5484 the channel appears in the channel list. The source of the channel is
5485 the entry in the physical tuner's frequency table corresponding to the
5488 <p>Fine tuning in the channel edit dialog adjusts the physical frequency
5489 slightly if the driver supports it. The norm and frequency table
5490 together define which frequency table is selected for defining
5491 sources. If the device supports multiple inputs, the input menu
5494 <p>To sort channels, highlight the channel in the list and push
<b>move
5495 up
</b> or
<b>move down
</b> to move it.
5497 <p>Once channels are defined, the
<b>source
</b> item in the record window
5498 can be used to select channels for recording. The same channel
5499 selecting ability also exists in the record monitor window. Be aware
5500 channel selections in the record monitor window and the record window
5501 are stored in the current batch.
5503 <p>For some drivers an option to
<b>swap fields
</b> may be visible. These
5504 drivers don't get the field order right every time without human
5505 intervention. Toggle this to get the odd and even lines to record in
5510 <a name=
"IMPROVING-PERFORMANCE"></a>
5511 Next:
<a rel=
"next" accesskey=
"n" href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>,
5512 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CAPTURING-MEDIA">CAPTURING MEDIA
</a>,
5513 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
5517 <h2 class=
"chapter">14 IMPROVING PERFORMANCE
</h2>
5519 <p>Let's get one thing perfectly clear. Linux is not a very good
5520 desktop. It's a server. Most of what you'll find on modern Linux
5521 distributions are faceless, network-only programs strategicly designed
5522 to counteract one Microsoft server feature or another and not to
5523 perform very well at user interaction. There are a number of
5524 parameters on Linux, which ordinary people can adjust to make it behave
5525 more like a thoroughbred in desktop usage.
5528 <li><a accesskey=
"1" href=
"#DISABLING-SWAP-SPACE">DISABLING SWAP SPACE
</a>
5529 <li><a accesskey=
"2" href=
"#ENLARGING-SOUND-BUFFERS">ENLARGING SOUND BUFFERS
</a>
5530 <li><a accesskey=
"3" href=
"#FREEING-MORE-SHARED-MEMORY">FREEING MORE SHARED MEMORY
</a>
5531 <li><a accesskey=
"4" href=
"#SPEEDING-UP-THE-HARD-DRIVE">SPEEDING UP THE HARD DRIVE
</a>
5532 <li><a accesskey=
"5" href=
"#DISABLING-CRON">DISABLING CRON
</a>
5533 <li><a accesskey=
"6" href=
"#REDUCING-USB-MOUSE-SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>
5534 <li><a accesskey=
"7" href=
"#ASSORTED-X-TWEEKS">ASSORTED X TWEEKS
</a>
5535 <li><a accesskey=
"8" href=
"#SPEEDING-UP-THE-FILE-SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>
5536 <li><a accesskey=
"9" href=
"#IMPROVING-ZORAN-VIDEO">IMPROVING ZORAN VIDEO
</a>
5541 <a name=
"DISABLING-SWAP-SPACE"></a>
5542 Next:
<a rel=
"next" accesskey=
"n" href=
"#ENLARGING-SOUND-BUFFERS">ENLARGING SOUND BUFFERS
</a>,
5543 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5547 <h3 class=
"section">14.1 DISABLING SWAP SPACE
</h3>
5549 <p>On systems with lots of memory, Cinelerra sometimes runs better without
5550 a swap space. If you have
4 GB of RAM, you're probably better off
5551 without a swap space. If you have
512MB of RAM, you should keep the
5552 swap. If you want to do recording, you should probably disable swap
5553 space in any case. There's a reason for this. Linux only allows half
5554 the available memory to be used. Beyond that, it starts searching for
5555 free pages to swap, in order to cache more disk access. In a
4 GB
5556 system, you start waiting for page swaps after using only
2 GB.
5558 <p>The question then is how to make Linux run without a swap space.
5559 Theoretically it should be a matter of running
5561 <pre class=
"example"> swapoff -a
5563 <p>Unfortunately, without a swap space the
<b>kswapd
</b> tasklet normally
5564 spins at
100%. To eliminate this problem, edit
<b>linux/mm/vmscan.c
</b>.
5565 In this file, put a line saying
<b>return
0;
</b> before it says
5567 <pre class=
"example"> /*
5571 <p>Then recompile the kernel.
5575 <a name=
"ENLARGING-SOUND-BUFFERS"></a>
5576 Next:
<a rel=
"next" accesskey=
"n" href=
"#FREEING-MORE-SHARED-MEMORY">FREEING MORE SHARED MEMORY
</a>,
5577 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DISABLING-SWAP-SPACE">DISABLING SWAP SPACE
</a>,
5578 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5582 <h3 class=
"section">14.2 ENLARGING SOUND BUFFERS
</h3>
5584 <p>In order to improve realtime performance, the audio buffers for all the
5585 Linux sound drivers were limited from
128k to
64k. For recording audio
5586 and video simultaneously and for most audio recording this causes
5587 dropouts. Application of low latency and preemtible kernel patches
5588 make it possible to record more audio recordings but it doesn't improve
5589 recording video with audio. This is where you need to hack the kernel.
5591 <p>To see if your sound buffers are suitable, run the included
5592 <b>soundtest
</b> program with nothing playing or recording. This
5593 allocates the largest possible buffers and displays them. If the
5594 <b>TOTAL BYTES AVAILABLE
</b> is under
131072, you need to see about
5595 getting the buffers enlarged in the driver. While many drivers differ,
5596 we have a hack for at least one driver.
5598 <p>This only applies to the OSS version of the Soundblaster Live driver.
5599 Since every sound card and every sound driver derivative has a
5600 different implementation you'll need to do some searching for other
5601 sound cards. Edit
<b>linux/drivers/sound/emu10k1/audio.c
</b>
5605 <pre class=
"example"> if (bufsize
>=
0x10000)
5609 <pre class=
"example"> if (bufsize
> 0x40000)
5613 <pre class=
"example"> for (i =
0; i
< 8; i++)
5614 for (j =
0; j
< 4; j++)
5618 <pre class=
"example"> for (i =
0; i
< 16; i++)
5619 for (j =
0; j
< 4; j++)
5621 <p>In
<b>linux/drivers/sound/emu10k1/hwaccess.h
</b>
5625 <p><b>#define MAXBUFSIZE
65536</b>
5629 <p><b>#define MAXBUFSIZE
262144</b>
5631 <p>Finally, in
<b>linux/drivers/sound/emu10k1/cardwi.h
</b>
5633 <p><b>#define WAVEIN_MAXBUFSIZE
65536</b>
5637 <p><b>#define WAVEIN_MAXBUFSIZE
262144</b>
5639 <p>Then recompile the kernel modules.
5643 <a name=
"FREEING-MORE-SHARED-MEMORY"></a>
5644 Next:
<a rel=
"next" accesskey=
"n" href=
"#SPEEDING-UP-THE-HARD-DRIVE">SPEEDING UP THE HARD DRIVE
</a>,
5645 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ENLARGING-SOUND-BUFFERS">ENLARGING SOUND BUFFERS
</a>,
5646 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5650 <h3 class=
"section">14.3 FREEING MORE SHARED MEMORY
</h3>
5652 <p>The Linux kernel only allows
32MB of shared memory to be allocated by
5653 default. This needs to be increased to do anything useful. Run the
5656 <p><b>echo
"0x7fffffff" > /proc/sys/kernel/shmmax
</b>
5660 <a name=
"SPEEDING-UP-THE-HARD-DRIVE"></a>
5661 Next:
<a rel=
"next" accesskey=
"n" href=
"#DISABLING-CRON">DISABLING CRON
</a>,
5662 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#FREEING-MORE-SHARED-MEMORY">FREEING MORE SHARED MEMORY
</a>,
5663 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5667 <h3 class=
"section">14.4 SPEEDING UP THE HARD DRIVE
</h3>
5669 <p>This is a very popular command sequence among Linux gurus, which is not
5670 done by default on Linux distributions.
5672 <p><b>hdparm -c3 -d1 -u1 -k1 /dev/hda
</b>
5674 <p><b>-c3
</b> puts the hard drive into
32 bit I/O with sync. This normally
5675 doesn't work due to inept kernel support for most IDE controllers. If
5676 you get lost interrupt or SeekComplete errors, quickly use
<b>-c0
</b>
5677 instead of
<b>-c3
</b> in your command.
5679 <p><b>-d1
</b> enables DMA of course. This frees up the CPU partially during
5682 <p><b>-u1
</b> allows multiple interrupts to be handled during hard drive
5683 transactions. This frees up even more CPU time.
5685 <p><b>-k1
</b> prevents Linux from resetting your settings in case of a
5690 <a name=
"DISABLING-CRON"></a>
5691 Next:
<a rel=
"next" accesskey=
"n" href=
"#REDUCING-USB-MOUSE-SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>,
5692 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SPEEDING-UP-THE-HARD-DRIVE">SPEEDING UP THE HARD DRIVE
</a>,
5693 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5697 <h3 class=
"section">14.5 DISABLING CRON
</h3>
5699 <p>Linux runs some daily operations like compressing man pages. These may
5700 be acceptable background tasks while compiling or word processing but
5701 not while playing video. Disable these operations by editing
5702 <b>/etc/rc.d/init.d/anacron
</b>.
5704 <p>Put
<b>exit
</b> before the first line not beginning in
<b>#
</b>.
5706 <p>In
<b>/etc/rc.d/init.d/crond
</b> put
<b>exit
</b> before the first line not
5707 beginning in
<b>#
</b>. Then make like Win
2000 and reboot.
5709 <p>You can't use the
<b>at
</b> command anymore, but who uses that command
5714 <a name=
"REDUCING-USB-MOUSE-SENSITIVITY"></a>
5715 Next:
<a rel=
"next" accesskey=
"n" href=
"#ASSORTED-X-TWEEKS">ASSORTED X TWEEKS
</a>,
5716 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DISABLING-CRON">DISABLING CRON
</a>,
5717 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5721 <h3 class=
"section">14.6 REDUCING USB MOUSE SENSITIVITY
</h3>
5723 <p>Gamers like high resolution mice, but this can be painful for precisely
5724 positioning the mouse on a timeline or video screen. XFree86 once
5725 allowed you to reduce PS/
2 mouse sensitivity using commands like
5726 <b>xset m
1 1</b> but you're out of luck with USB mice or KVM's.
5728 <p>We have a way to reduce USB mouse sensitivity but it requires editing
5729 the kernel source code. Even though USB mice have been supported for
5730 years, the kernel source code for USB mice is constantly being
5731 rewritten. These instructions were relevant for
2.6.12.3. Edit
5732 <b>/usr/src/linux/drivers/input/mousedev.c
</b>.
5734 <p>After the line saying
5736 <pre class=
"example"> struct mousedev_hw_data {
5740 <pre class=
"example"> #define DOWNSAMPLE_N
100
5741 #define DOWNSAMPLE_D
350
5742 int x_accum, y_accum;
5744 <p>Next, the section which says something like:
5746 <pre class=
"example"> case EV_REL:
5748 case REL_X: mousedev-
>packet.dx += value; break;
5749 case REL_Y: mousedev-
>packet.dy -= value; break;
5750 case REL_WHEEL: mousedev-
>packet.dz -= value; break;
5754 <p>must be replaced by
5756 <pre class=
"example">
5760 mousedev-
>packet.x_accum += value * DOWNSAMPLE_N;
5761 mousedev-
>packet.dx += (int)mousedev-
>packet.x_accum / (int)DOWNSAMPLE_D;
5762 mousedev-
>packet.x_accum -= ((int)mousedev-
>packet.x_accum / (int)DOWNSAMPLE_D) * (int)DOWNSAMPLE_D;
5765 mousedev-
>packet.y_accum += value * DOWNSAMPLE_N;
5766 mousedev-
>packet.dy -= (int)mousedev-
>packet.y_accum / (int)DOWNSAMPLE_D;
5767 mousedev-
>packet.y_accum -= ((int)mousedev-
>packet.y_accum / (int)DOWNSAMPLE_D) * (int)DOWNSAMPLE_D;
5769 case REL_WHEEL: mousedev-
>packet.dz -= value; break;
5776 <p>Change the value of
<b>DOWNSAMPLE_N
</b> to change the mouse sensitivity.
5780 <a name=
"ASSORTED-X-TWEEKS"></a>
5781 Next:
<a rel=
"next" accesskey=
"n" href=
"#SPEEDING-UP-THE-FILE-SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>,
5782 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REDUCING-USB-MOUSE-SENSITIVITY">REDUCING USB MOUSE SENSITIVITY
</a>,
5783 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5787 <h3 class=
"section">14.7 ASSORTED X TWEEKS
</h3>
5789 <p>XFree86 by default can't display Cinelerra's advanced pixmap rendering
5790 very fast. The X server stalls during list box drawing. Fix this by
5791 adding a line to your XF86Config* files.
5793 <p>In the
<b>Section
"Device"</b> area, add a line saying:
5795 <p><b>Option
"XaaNoOffscreenPixmaps"</b>
5797 <p>and restart the X server.
5799 <p>Screen blanking is really annoying, unless you're fabulously rich and
5800 can afford to leave your monitor on
24 hours a day without power saving
5801 mode. In
<b>/etc/X11/xinit/xinitrc
</b> put
5803 <pre class=
"example"> xset s off
5806 <p>before the first
<b>if
</b> statement.
5808 <p>How about those windows keys which no Linux distribution even thinks to
5809 use. You can make the window keys provide ALT functionality by editing
5810 <b>/etc/X11/Xmodmap
</b>. Append the following to it.
5812 <pre class=
"example"> keycode
115 = Hyper_L
5813 keycode
116 = Hyper_R
5817 <p>The actual changes to a window manager to make it recognize window keys
5818 for ALT are complex. In
<b>FVWM
</b> at least, you can edit
5819 <b>/etc/X11/fvwm/system.fvwm2rc
</b> and put
5821 <pre class=
"example"> Mouse
0 T A move-and-raise-or-raiselower
5825 Mouse
0 F A resize-or-raiselower
5826 Mouse
0 S A resize-or-raiselower
5828 <p>in place of the default section for moving and resizing. Your best
5829 performance is going to be on FVWM. Other window managers seem to slow
5830 down video with extra event trapping and aren't as efficient in layout.
5834 <a name=
"SPEEDING-UP-THE-FILE-SYSTEM"></a>
5835 Next:
<a rel=
"next" accesskey=
"n" href=
"#IMPROVING-ZORAN-VIDEO">IMPROVING ZORAN VIDEO
</a>,
5836 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ASSORTED-X-TWEEKS">ASSORTED X TWEEKS
</a>,
5837 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5841 <h3 class=
"section">14.8 SPEEDING UP THE FILE SYSTEM
</h3>
5843 <p>You'll often store video on an expensive, gigantic disk array separate
5844 from your boot disk. You'll thus have to manually install an EXT
5845 filesystem on this disk array, using the
<b>mke2fs
</b> command. By far
5846 the fastest file system is
5848 <pre class=
"example">
5849 mke2fs -i
65536 -b
4096 my_device
5850 tune2fs -r0 -c10000 my_device
5853 <p>This has no journaling, reserves as few blocks as possible for
5854 filenames, and accesses the largest amount of data per block possible.
5855 A slightly slower file system, which is easier to recover after power
5858 <pre class=
"example">
5859 mke2fs -j -i
65536 -b
4096 my_device
5860 tune2fs -r0 -c10000 my_device
5863 <p>This adds a journal which slows down the writes but makes us immune to
5868 <a name=
"IMPROVING-ZORAN-VIDEO"></a>
5869 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SPEEDING-UP-THE-FILE-SYSTEM">SPEEDING UP THE FILE SYSTEM
</a>,
5870 Up:
<a rel=
"up" accesskey=
"u" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>
5874 <h3 class=
"section">14.9 IMPROVING ZORAN VIDEO
</h3>
5876 <p>Video recorded from the ZORAN inputs is normally unaligned or not
5877 completely encoded on the right. This can be slightly compensated by
5878 adjusting parameters in the driver sourcecode.
5880 <p>In
<b>/usr/src/linux/drivers/media/video/zr36067.c
</b> the structures
5881 defined near line
623 affect alignment. At least for NTSC, the
2.4.20
5882 version of the driver could be improved by changing
5884 <pre class=
"example"> static struct tvnorm f60ccir601 = {
858,
720,
57,
788,
525,
480,
16 };
5888 <pre class=
"example"> static struct tvnorm f60ccir601 = {
858,
720,
57,
788,
525,
480,
17 };
5890 <p>In
<b>/usr/src/linux/drivers/media/video/bt819.c
</b> more structures near
5891 line
76 affect alignment and encoding.
5895 <pre class=
"example"> {
858 -
24,
2,
523,
1,
0x00f8,
0x0000},
5897 <p>could be changed to
5898 <pre class=
"example"> {
868 -
24,
2,
523,
1,
0x00f8,
0x0000},
5900 <p>Adjusting these parameters may or may not move your picture closer to
5901 the center. More of the time, they'll cause the driver to lock up
5902 before capturing the first frame.
5904 <h4 class=
"subsection">14.9.1 NEW IN
2.6.5</h4>
5906 <p>In the
2.6 kernels, the video subsystem was rewritten again from
5907 scratch. To adjust the Zoran parameters go to
5908 <b>drivers/media/video/zoran_card.c
</b> and look for a group of lines like
5910 <pre class=
"example"> static struct tvnorm f50sqpixel = {
944,
768,
83,
880,
625,
576,
16 };
5911 static struct tvnorm f60sqpixel = {
780,
640,
51,
716,
525,
480,
12 };
5912 static struct tvnorm f50ccir601 = {
864,
720,
75,
804,
625,
576,
18 };
5913 static struct tvnorm f60ccir601 = {
858,
720,
57,
788,
525,
480,
16 };
5915 static struct tvnorm f50ccir601_lml33 = {
864,
720,
75+
34,
804,
625,
576,
18 };
5916 static struct tvnorm f60ccir601_lml33 = {
858,
720,
57+
34,
788,
525,
480,
16 };
5918 /* The DC10 (
57/
16/
50) uses VActive as HSync, so HStart must be
0 */
5919 static struct tvnorm f50sqpixel_dc10 = {
944,
768,
0,
880,
625,
576,
0 };
5920 static struct tvnorm f60sqpixel_dc10 = {
780,
640,
0,
716,
525,
480,
12 };
5922 /* FIXME: I cannot swap U and V in saa7114, so i do one
5923 * pixel left shift in zoran (
75 -
> 74)
5924 * (Maxim Yevtyushkin
<max@linuxmedialabs.com
>) */
5925 static struct tvnorm f50ccir601_lm33r10 = {
864,
720,
74+
54,
804,
625,
576,
18 };
5926 static struct tvnorm f60ccir601_lm33r10 = {
858,
720,
56+
54,
788,
525,
480,
16 };
5928 <p>These seem to control the image position. At least for the LML33 the
5929 following definition for
<b>f60ccir601_lml33
</b> does the trick.
5931 <pre class=
"example"> static struct tvnorm f60ccir601_lml33 = {
858,
720,
67+
34,
788,
525,
480,
13 };
5935 <a name=
"TROUBLESHOOTING"></a>
5936 Next:
<a rel=
"next" accesskey=
"n" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>,
5937 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>,
5938 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
5942 <h2 class=
"chapter">15 TROUBLESHOOTING
</h2>
5945 <li><a accesskey=
"1" href=
"#BUZ-DRIVER-CRASHES">BUZ DRIVER CRASHES
</a>
5946 <li><a accesskey=
"2" href=
"#DRAGGING-IN-AND-OUT-POINTS-DOESN_0027T-WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>
5947 <li><a accesskey=
"3" href=
"#LOCKING-UP-WHEN-LOADING-FILES">LOCKING UP WHEN LOADING FILES
</a>
5948 <li><a accesskey=
"4" href=
"#SYNCHRONIZATION-LOST-WHILE-RECORDING">SYNCHRONIZATION LOST WHILE RECORDING
</a>
5953 <a name=
"BUZ-DRIVER-CRASHES"></a>
5954 Next:
<a rel=
"next" accesskey=
"n" href=
"#DRAGGING-IN-AND-OUT-POINTS-DOESN_0027T-WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>,
5955 Up:
<a rel=
"up" accesskey=
"u" href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
5959 <h3 class=
"section">15.1 BUZ DRIVER CRASHES
</h3>
5961 <p>First, Zoran capture boards must be accessed using the
<b>Buz
</b> video
5962 driver in
<b>Preferences-
>Recording
</b> and
<b>Preferences-
>Playback
</b>.
5963 Some performance tweeks are available in another section.
5964 See
<a href=
"#IMPROVING-PERFORMANCE">IMPROVING PERFORMANCE
</a>.
5966 <p>Once tweeked, the Buz driver seems to crash if the number of recording
5967 buffers is too high. Make sure
<b>Preferences-
>Recording-
>Frames to
5968 buffer in device
</b> is below
10.
5972 <a name=
"DRAGGING-IN-AND-OUT-POINTS-DOESN'T-WORK"></a>
5973 <a name=
"DRAGGING-IN-AND-OUT-POINTS-DOESN_0027T-WORK"></a>
5974 Next:
<a rel=
"next" accesskey=
"n" href=
"#LOCKING-UP-WHEN-LOADING-FILES">LOCKING UP WHEN LOADING FILES
</a>,
5975 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#BUZ-DRIVER-CRASHES">BUZ DRIVER CRASHES
</a>,
5976 Up:
<a rel=
"up" accesskey=
"u" href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
5980 <h3 class=
"section">15.2 DRAGGING IN AND OUT POINTS DOESN'T WORK
</h3>
5982 <p>Sometimes there will be two edits really close together. The point
5983 selected for dragging may be next to the indended edit on an edit too
5984 small to see at the current zoom level. Zoom in horizontally.
5988 <a name=
"LOCKING-UP-WHEN-LOADING-FILES"></a>
5989 Next:
<a rel=
"next" accesskey=
"n" href=
"#SYNCHRONIZATION-LOST-WHILE-RECORDING">SYNCHRONIZATION LOST WHILE RECORDING
</a>,
5990 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DRAGGING-IN-AND-OUT-POINTS-DOESN_0027T-WORK">DRAGGING IN AND OUT POINTS DOESN'T WORK
</a>,
5991 Up:
<a rel=
"up" accesskey=
"u" href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
5995 <h3 class=
"section">15.3 LOCKING UP WHEN LOADING FILES
</h3>
5997 <p>The most common reason loading files locks up is because the codec
5998 isn't supported. Another reason is because Cinelerra is building
5999 picons for the Resources window. If you load a large number of images,
6000 it needs to decompress every single image to build a picon. Go into
6001 settings-
>preferences-
>interface and disable
<b>Use thumbnails in
6002 resource window
</b> to skip this process.
6006 <a name=
"SYNCHRONIZATION-LOST-WHILE-RECORDING"></a>
6007 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#LOCKING-UP-WHEN-LOADING-FILES">LOCKING UP WHEN LOADING FILES
</a>,
6008 Up:
<a rel=
"up" accesskey=
"u" href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>
6012 <h3 class=
"section">15.4 SYNCHRONIZATION LOST WHILE RECORDING
</h3>
6014 <p>If the framerate of the recording is much lower than the framerate of
6015 the source, the video will accumulate in the recording buffers over
6016 time while the audio and video are well out of sync. Decrease the
6017 <b>number of frames to buffer in the device
</b> in
6018 <b>preferences-
>recording
</b> so the excess frames are dropped instead of
6023 <a name=
"SECRETS-OF-CINELERRA"></a>
6024 Next:
<a rel=
"next" accesskey=
"n" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>,
6025 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TROUBLESHOOTING">TROUBLESHOOTING
</a>,
6026 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
6030 <h2 class=
"chapter">16 SECRETS OF CINELERRA
</h2>
6033 <li><a accesskey=
"1" href=
"#DOLBY-PRO-LOGIC-ENCODING">DOLBY PRO LOGIC ENCODING
</a>
6034 <li><a accesskey=
"2" href=
"#ANALOG-TV-CLEANING">ANALOG TV CLEANING
</a>
6035 <li><a accesskey=
"3" href=
"#DEFEATING-INTERLACING">DEFEATING INTERLACING
</a>
6036 <li><a accesskey=
"4" href=
"#MAKING-VIDEO-LOOK-LIKE-FILM">MAKING VIDEO LOOK LIKE FILM
</a>
6037 <li><a accesskey=
"5" href=
"#CLEARING-OUT-HAZE">CLEARING OUT HAZE
</a>
6042 <a name=
"DOLBY-PRO-LOGIC-ENCODING"></a>
6043 Next:
<a rel=
"next" accesskey=
"n" href=
"#ANALOG-TV-CLEANING">ANALOG TV CLEANING
</a>,
6044 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>
6048 <h3 class=
"section">16.1 DOLBY PRO LOGIC ENCODING
</h3>
6050 <p>Dolby pro logic is an easy way to output
6 channel audio from a
2
6051 channel soundcard with degraded but useful results. Rudimentary Dolby
6052 pro logic encoding can be achieved with clever usage of the effects.
6054 <p>Create
2 audio tracks with the same audio. Apply
<b>invert audio
</b> to
6055 one track. The signal comes out of the back speakers.
6057 <p>Create a single audio track with monaural audio of a different source.
6058 Center it in the
<b>pan
</b> control. The signal comes out of the center
6061 <p>Create other tracks with different signals and pan them left or right
6062 to put signals in the front left or right speaker.
6064 <p>Finally, if a copy of the signal in the back speakers is desired in any
6065 single front speaker, the signal in the back speakers must be delayed
6066 by at least
0.05 seconds and a single new track should be created. Pan
6067 the new track to orient the signal in the front speakers.
6069 <p>If the same signal is desired in all the speakers except the center
6070 speaker, delay the back speakers by
0.5 seconds and delay either the
6071 front left or front right by
0.2 seconds.
6073 <p>If you want to hear something from the subwoofer, create a new track,
6074 select a range, drop a synthesizer effect, and set the frequency below
6075 60 Hz. The subwoofer merely plays anything below around
60Hz.
6077 <p>Other tricks you can perform to separate the speakers are parametric
6078 equalization to play only selected ranges of frequencies through
6079 different speakers and lowpass filtering to play signals through the
6084 <a name=
"ANALOG-TV-CLEANING"></a>
6085 Next:
<a rel=
"next" accesskey=
"n" href=
"#DEFEATING-INTERLACING">DEFEATING INTERLACING
</a>,
6086 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DOLBY-PRO-LOGIC-ENCODING">DOLBY PRO LOGIC ENCODING
</a>,
6087 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>
6091 <h3 class=
"section">16.2 ANALOG TV CLEANING
</h3>
6093 <p>Unless you live in a rich nation like China or are a terrorist, you
6094 probably record analog TV more than you record digital TV. The picture
6095 quality on analog TV is horrible but you can do things in Cinelerra to
6096 make it look more like it did in the studio.
6098 <p>First, when capturing the video, capture it in the highest resolution
6099 possible. For Europeans it's
720x576 and for Americans it's
720x480.
6100 Don't bother adjusting the brightness or contrast in the recording
6101 monitor, although maxing out the color is useful. Capture it using
6102 MJPEG or uncompressed Component Video if possible. If those are too
6103 demanding, then capture it using JPEG. RGB should be a last resort.
6105 <p>Now on the timeline use
<b>Settings-
>Format
</b> to set a YUV colorspace.
6106 Drop a
<b>Downsample
</b> effect on the footage. Set it for
6108 <pre class=
"example"> Horizontal:
2
6109 Horizontal offset:
0
6118 <p>Use the camera tool to shift the picture up or down a line to remove
6119 the most color interference from the image. This is the difference
6126 <img src=
"cleaning1.png" alt=
"cleaning1.png">
6128 <p>If you have vertical blanking information or crawls which constantly
6129 change in each frame, block them out with the
<b>Mask
</b> tool. This
6130 improves compression ratios.
6132 <p>This is about all you can do without destroying more data than you
6133 would naturally lose in compression. The more invasive cleaning
6134 techniques involve deinterlacing.
6138 <a name=
"DEFEATING-INTERLACING"></a>
6139 Next:
<a rel=
"next" accesskey=
"n" href=
"#MAKING-VIDEO-LOOK-LIKE-FILM">MAKING VIDEO LOOK LIKE FILM
</a>,
6140 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ANALOG-TV-CLEANING">ANALOG TV CLEANING
</a>,
6141 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>
6145 <h3 class=
"section">16.3 DEFEATING INTERLACING
</h3>
6147 <p>Interlacing is done on most video sources because it costs too much to
6148 build progressive scanning cameras and progressive scanning CRT's.
6149 Many a consumer has been dissapointed to spend
5 paychecks on a
6150 camcorder and discover what horrible jagged images it produces on a
6153 <p>As for progressive scanning camcorders, forget it. Cost factors are
6154 probably going to keep progressive scanning cameras from ever equalling
6155 the spatial resolution of interlaced cameras. Interlacing is here to
6156 stay. That's why they made deinterlacing effects in Cinelerra.
6158 <p>We don't believe there has ever been a perfect deinterlacing effect.
6159 They're either irreversible or don't work. Cinelerra cuts down the
6160 middle by providing deinterlacing tools that are irreversible sometimes
6161 and don't work sometimes but are neither one or the other.
6163 <p><b>Line Doubling
</b>
6165 <p>This one is done by the
<b>Deinterlace
</b> effect when set to
<b>Odd
6166 lines
</b> or
<b>Even lines
</b>. When applied to a track it reduces the
6167 vertical resolution by
1/
2 and gives you progressive frames with
6168 stairstepping. This is only useful when followed by a scale effect
6169 which reduces the image to half its size.
6171 <p><b>Line averaging
</b>
6173 <p>The
<b>Deinterlace
</b> effect when set to
<b>Average even lines
</b> or
6174 <b>Average odd lines
</b> does exactly what line doubling does except
6175 instead of making straight copies of the lines it makes averages of the
6176 lines. This is actually useful for all scaling.
6178 <p>There's an option for adaptive line averaging which selects which lines
6179 to line average and which lines to leave interlaced based on the
6180 difference between the lines. It doesn't work.
6182 <p><b>Inverse Telecine
</b>
6184 <p>This is the most effective deinterlacing tool when the footage is an
6185 NTSC TV broadcast of a film. See
<a href=
"#INVERSE-TELECINE">INVERSE TELECINE
</a>.
6187 <p><b>Time base correction
</b>
6189 <p>The first three tools either destroy footage irreversibly or don't work
6190 sometimes.
<b>Time base correction
</b> is last because it's the perfect
6191 deinterlacing tool. It leaves the footage intact. It doesn't reduce
6192 resolution, perceptually at least. It doesn't cause jittery timing.
6194 <p>The
<b>Frames to Fields
</b> effect converts each frame to two frames, so
6195 it must be used on a timeline whose project frame rate is twice the
6196 footage's frame rate. In the first frame it puts a line averaged copy
6197 of the even lines. In the second frame it puts a line averaged copy of
6198 the odd lines. When played back at full framerates it gives the
6199 illusion of progressive video with no loss of detail.
6201 <p>Best of all, this effect can be reversed with the
<b>Fields to frames
</b>
6202 nonrealtime effect. That one combines two frames of footage back into
6203 the one original interlaced frame of half the framerate.
6205 <p>Unfortunately, the output of
<b>Frames to Fields
</b> can't be compressed
6206 as efficiently as the original because it introduces vertical twitter
6207 and a super high framerate.
6209 <p>Interlaced
29.97fps footage can be made to look like film by applying
6210 <b>Frames to Fields
</b> and then reducing the project frame rate of the
6211 resulting
59.94fps footage to
23.97fps. This produces no timing jitter
6212 and the occasional odd field gives the illusion of more detail than
6213 there would be if you just line averaged the original.
6215 <p><b>HDTV exceptions
</b>
6217 <p>1920x1080 HDTV is encoded a special way. If it's a broadcast of
6218 original HDTV film, an inverse telecine works fine. If it's a
6219 rebroadcast of a
720x480 source, you need to use a time base and line
6220 doubling algorithm to deinterlace it, See
<a href=
"#g_t1080-TO-480">1080 TO
480</a>.
6224 <a name=
"MAKING-VIDEO-LOOK-LIKE-FILM"></a>
6225 Next:
<a rel=
"next" accesskey=
"n" href=
"#CLEARING-OUT-HAZE">CLEARING OUT HAZE
</a>,
6226 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DEFEATING-INTERLACING">DEFEATING INTERLACING
</a>,
6227 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>
6231 <h3 class=
"section">16.4 MAKING VIDEO LOOK LIKE FILM
</h3>
6233 <p>Video sweetening is constantly getting better. Lately the best thing
6234 you can do for dirt cheap consumer camcorder video is to turn it into
6235 progressive
24fps output. While you can't really do that, you can get
6236 pretty close for the money. Mind you, this procedure can degrade high
6237 quality video just as easily as it improves low quality video. It
6238 should only be used for low quality video.
6242 Step
1 - Set project framerate to twice the video framerate.
6245 Step
2 - Apply a
<b>Sharpen
</b> effect. Set it to sharpness:
25, no
6246 interlacing, and horizontal only.
6249 Step
3 - Drop a
<b>Frame to Fields
</b> effect on the same track. Set
6250 Average Empty Rows on and play through the video a few times to figure
6251 out which field is first. If the wrong field is first, the motion is
6252 shaky. Secondly, any editing in the doubled frame rate may now screw
6253 up the field order. We're still figuring out the easiest way to
6254 support warnings for field glitches but for now you need to go back to
6255 the normal framerate to do editing or play test to make sure the fields
6259 Step
4 - Render just the video to the highest quality file possible.
6262 Step
5 - Import the video back to a new track. Set the project
6263 framerate to
24. The new track should now display more filmish and
6264 sharper images than the original footage.
6268 <p>This entire procedure could be implemented in one nonrealtime effect,
6269 but the biggest problem with that is you'll most often want to keep the
6270 field based output and the
24fps output for posterity. A nonrealtime
6271 effect would require all that processing just for the
24fps copy.
6272 Still debating that one.
6276 <a name=
"CLEARING-OUT-HAZE"></a>
6277 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MAKING-VIDEO-LOOK-LIKE-FILM">MAKING VIDEO LOOK LIKE FILM
</a>,
6278 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>
6282 <h3 class=
"section">16.5 CLEARING OUT HAZE
</h3>
6284 <p>Let's face it, if you're employed you live in Silicon Valley. As such
6285 you probably photograph a lot of haze and never see blue sky ever.
6286 Even if you can afford to briefly go somewhere where there is blue sky,
6287 horizon shots usually can stand for more depth. This is what the
6288 <b>gradient effect
</b> is for.
6290 <p>Drop the gradient effect on hazy tracks. Set the following parameters:
6292 <pre class=
"example"> Angle:
0
6295 Inner color: blue
100% alpha
6296 Outer color: blue
0% alpha
6298 <p>It's important to set the
0% alpha color to blue even though it's
0%
6299 alpha. The color of the outer alpha is still interpolated with the
6300 inner color. This is a generally applicable setting for the gradient.
6301 Some scenes may work better with orange or brown for an evening feel.
6305 <a name=
"SECRETS-OF-CINELERRA-EFFECTS"></a>
6306 Next:
<a rel=
"next" accesskey=
"n" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>,
6307 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SECRETS-OF-CINELERRA">SECRETS OF CINELERRA
</a>,
6308 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
6312 <h2 class=
"chapter">17 SECRETS OF CINELERRA EFFECTS
</h2>
6314 <p>Most effects in Cinelerra can be figured out just by using them and
6315 tweeking. Here are brief descriptions of effects which you might not
6316 utilize fully by mere experimentation.
6319 <li><a accesskey=
"1" href=
"#g_t1080-TO-480">1080 TO
480</a>: How to convert HDTV into SD
6320 <li><a accesskey=
"2" href=
"#CHROMA-KEY">CHROMA KEY
</a>: Create transparency based on color similarities.
6321 <li><a accesskey=
"3" href=
"#COMPRESSOR">COMPRESSOR
</a>: How to reduce the dynamic range of audio.
6322 <li><a accesskey=
"4" href=
"#DECIMATE">DECIMATE
</a>: How to reduce frame rates by eliminating similar frames.
6323 <li><a accesskey=
"5" href=
"#DEINTERLACE">DEINTERLACE
</a>: How to convert interlaced video to progressive video.
6324 <li><a accesskey=
"6" href=
"#DIFFERENCE-KEY">DIFFERENCE KEY
</a>: Create transparency based on color differences.
6325 <li><a accesskey=
"7" href=
"#FREEZE-FRAME">FREEZE FRAME
</a>: How to stop action in the timeline.
6326 <li><a accesskey=
"8" href=
"#HISTOGRAM">HISTOGRAM
</a>: How to change the mapping of different brightness values.
6327 <li><a accesskey=
"9" href=
"#INVERSE-TELECINE">INVERSE TELECINE
</a>: How to convert pulled down frames to progressive frames.
6328 <li><a href=
"#INTERPOLATE-VIDEO">INTERPOLATE VIDEO
</a>: How to create the illusion of higher framerates.
6329 <li><a href=
"#LINEARIZE">LINEARIZE
</a>: Fix gamma in raw camera images
6330 <li><a href=
"#LOOP">LOOP
</a>: How to loop regions of the timeline.
6331 <li><a href=
"#MOTION">MOTION
</a>: The art of motion tracking.
6332 <li><a href=
"#REFRAMERT">REFRAMERT
</a>: Changing the number of frames in a sequence.
6333 <li><a href=
"#REFRAME">REFRAME
</a>: Changing the number of frames in a sequence with rendering.
6334 <li><a href=
"#RESAMPLE">RESAMPLE
</a>: Change the number of samples in a sequence with rendering.
6335 <li><a href=
"#REVERSE-VIDEO_002fAUDIO">REVERSE VIDEO/AUDIO
</a>: How to play regions in reverse.
6336 <li><a href=
"#THRESHOLD">THRESHOLD
</a>: How to get monochrome out of a region of the image.
6337 <li><a href=
"#TIME-AVERAGE">TIME AVERAGE
</a>: How to add trail patterns or increase still image quality.
6338 <li><a href=
"#TITLER">TITLER
</a>: How to add text to a track from inside Cinelerra.
6339 <li><a href=
"#VIDEO-SCOPE">VIDEO SCOPE
</a>: How to view the dynamic range of intensity and hue.
6344 <a name=
"g_t1080-TO-480"></a>
6345 Next:
<a rel=
"next" accesskey=
"n" href=
"#CHROMA-KEY">CHROMA KEY
</a>,
6346 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6350 <h3 class=
"section">17.1 1080 TO
480</h3>
6352 <p>Most TV broadcasts are recieved with a
1920x1080 resolution but
6353 originate from a
720x480 source at the studio. It's a waste of space
6354 to compress the entire
1920x1080 if the only resolvable details are
6355 720x480. Unfortunately resizing
1920x1080 video to
720x480 isn't as
6356 simple as shrinking it.
6358 <p>At the TV station the original
720x480 footage was first converted to
6359 fields of
720x240. Each field was then scaled up to
1920x540. The two
6360 1920x540 fields were finally combined with interlacing to form the
6361 1920x1080 image. This technique allows a consumer TV to display the
6362 resampled image without extra circuitry to handle
720x480 interlacing
6363 in a
1920x1080 image.
6365 <p>If you merely deinterlaced the
1920x1080 images, you would end up with
6366 details of
720x240. The
1080 to
480 effect properly extracts two
6367 1920x540 size fields from the image, resizes them separately, and
6368 combines them again to restore the original
720x480. Tracks to which
6369 it is applied need to be at
1920x1080 resolution. The project settings
6370 in
<b>settings-
>format
</b> should be at
720x480 resolution.
6372 <p>The effect doesn't know if the first row in the
1920x1080 image belongs
6373 to the first row of the
720x480 original. You have to specify what the
6374 first row is in the effect configuration.
6376 <p>The output of this effect is a small image in the middle of the
6377 original
1920x1080 frame. Use the projector to center the output image
6380 <p>Finally, once you have
720x480 interlaced video you can either apply
6381 <b>frames to fields
</b> of
<b>inverse telecine
</b> to further recover original
6386 <a name=
"CHROMA-KEY"></a>
6387 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMPRESSOR">COMPRESSOR
</a>,
6388 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#g_t1080-TO-480">1080 TO
480</a>,
6389 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6393 <h3 class=
"section">17.2 CHROMA KEY
</h3>
6395 <p>This effect erases pixels which match the selected color. They are
6396 replaced with black if there is no alpha channel and transparency if
6397 there is an alpha channel. The selection of color model is important
6398 to determine the behavior.
6400 <p>Chroma key uses either the lightness or the hue to determine what is
6401 erased.
<b>Use value
</b> singles out only the lightness to determine
6402 transparency. Select a center color to erase using the
<b>Color
</b>
6403 button. Alternatively a color can be picked directly from the output
6404 frame by first using the
<b>color picker
</b> in the compositor window and
6405 then selecting the
<b>Use color picker
</b> button. This sets the chroma
6406 key color to the current color picker color.
6408 <p>Be aware that the output of the chroma key is fed back to the
6409 compositor, so selecting a color again from the compositor will use the
6410 output of the chroma key effect. The chroma key should be disabled
6411 when selecting colors with the color picker.
6413 <p>If the lightness or hue is within a certain threshold it's erased.
6414 Increasing the threshold determines the range of colors to be erased.
6415 It's not a simple on/off switch, however. As the color approaches the
6416 edge of the threshold, it gradually gets erased if the slope is high or
6417 is rapidly erased if the slope is low. The slope as defined here is
6418 the number of extra values flanking the threshold required to go from
6419 opaque to transparent.
6421 <p>Normally threshold is very low when using a high slope. The two
6422 parameters tend to be exclusive because slope fills in extra threshold.
6424 <p>The slope tries to soften the edges of the chroma key but it doesn't
6425 work well for compressed sources. A popular softening technique is to
6426 use a maximum slope and chain a blur effect below the chroma key effect
6427 to blur just the alpha.
6431 <a name=
"COMPRESSOR"></a>
6432 Next:
<a rel=
"next" accesskey=
"n" href=
"#DECIMATE">DECIMATE
</a>,
6433 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#CHROMA-KEY">CHROMA KEY
</a>,
6434 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6438 <h3 class=
"section">17.3 COMPRESSOR
</h3>
6440 <p>Contrary to computer science experience, the audio compressor does not
6441 reduce the amount of data required to store the audio. The audio
6442 compressor reduces the dynamic range of the audio. In Cinelerra the
6443 compressor actually performs the function of an expander and
6446 <p>The compressor works by calculating the maximum sound level within a
6447 certain time period of the current position. The maximum sound level
6448 is taken as the input sound level. For every input sound level there
6449 is an output sound level specified by the user. The gain at the
6450 current position is adjusted so the maximum sound level in the time
6451 range is the user specified value.
6453 <p>The compressor has a graph which correlates every input sound level to
6454 an output level. The horizontal direction is the input sound level in
6455 dB. The vertical direction is the ouptut sound level in dB. The user
6456 specifies output sound levels by creating points on the graph. Click
6457 in the graph to create a point. If
2 points exist, drag one point
6458 across another point to delete it. The most recent point selected has
6459 its vales displayed in textboxes for more precise adjustment.
6461 <p>To make the compressor reduce the dynamic range of the audio, make all
6462 the output values greater than the input values except
0 db. To make
6463 the compressor expand the dynamic range of the audio, make all the
6464 output values except
0 db less than the input values. The algorithm
6465 currently limits all sound levels above
0 db to
0 db so to get an
6466 overloaded effect put a gain effect before the compressor to reduce all
6467 the levels and follow it with another gain effect to amplify all the
6468 levels back over
0 db.
6470 <p><b>Reaction secs:
</b> This determines where in relation to the current
6471 position the maximum sound level is taken and how fast the gain is
6472 adjusted to reach that peak. It's notated in seconds. If it's
6473 negative the compressor reads ahead of the current position to get the
6474 future peak. The gain is ramped to that peak over one reaction time.
6475 This allows it to hit the desired output level exactly when the input
6476 peak occurs at the current position.
6478 <p>If the reaction time is positive the compressor scans only the current
6479 position for the gain and ramps gain over one reaction time to hit the
6480 desired output level. It hits the output level exactly one reaction
6481 time after detecting the input peak.
6483 <p><b>Decay secs:
</b> If the peak is higher than the current level, the
6484 compressor ramps the gain up to the peak value. Then if a future peak
6485 is less than the current peak it ramps the gain down. The time taken
6486 to ramp the gain down can be greater than the time taken to ramp the
6487 gain up. This ramping down time is the decay seconds.
6489 <p><b>Trigger:
</b> The compressor is a multichannel effect. Several tracks
6490 can share one compressor. Normally only one track is scanned for the
6491 input peak. This track is specified by the
<b>Trigger
</b>. By sharing
6492 several tracks and playing with the trigger value, you can make a sine
6493 wave on one track follow the amplitude of a drum on another track for
6496 <p><b>No trigger:
</b> The compressor can use one track as the trigger or it
6497 can take the highest value in any track as the peak to assign to all
6498 the tracks. Enabling
<b>No trigger
</b> causes it to assign the highest
6499 value in any track as the peak for all tracks.
6501 <p><b>Smooth only:
</b> For visualizing what the compressor is doing to the
6502 soundlevel, this option causes it to replace the soundwave with just
6503 the current peak value. It makes it very easy to see how
<b>reaction
6504 secs
</b> affects the detected peak values.
6508 <a name=
"DECIMATE"></a>
6509 Next:
<a rel=
"next" accesskey=
"n" href=
"#DEINTERLACE">DEINTERLACE
</a>,
6510 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMPRESSOR">COMPRESSOR
</a>,
6511 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6515 <h3 class=
"section">17.4 DECIMATE
</h3>
6517 <p>This effect drops frames from a track which are most similar in order
6518 to reduce the frame rate. This is usually applied to a DVD to convert
6519 the
29.97 fps video to the
23.97 fps film rate but this decimate effect
6520 can take any input rate and convert it to any lower output rate.
6522 <p>The output rate of
<b>decimate
</b> is the project frame rate. The input
6523 rate is set in the
<b>decimate
</b> user interface. To convert
29.97fps
6524 progressive video to
23.97fps film, apply a decimate effect to the
6525 track. Set the decimate input rate to
29.97 and the project rate to
6528 <p>Be aware every effect layered before decimate processes video at the
6529 decimate input rate and every effect layered after decimate processes
6530 video at the project frame rate. Computationally intensive effects
6531 should come below decimate.
6533 <p>Decimate is not to be confused with
<b>frames to fields
</b>. Frames to
6534 fields does not have a different input rate than output rate. It
6535 merely replicates each frame.
6539 <a name=
"DEINTERLACE"></a>
6540 Next:
<a rel=
"next" accesskey=
"n" href=
"#DIFFERENCE-KEY">DIFFERENCE KEY
</a>,
6541 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DECIMATE">DECIMATE
</a>,
6542 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6546 <h3 class=
"section">17.5 DEINTERLACE
</h3>
6548 <p>The deinterlace effect has evolved over the years to deinterlacing and
6549 a whole lot more. In fact two of the deinterlacing methods,
<b>Inverse
6550 Telecine
</b> and
<b>Frames to Fields
</b>, are separate effects. The
6551 deinterlace effect offers several variations of line replication to
6552 eliminate comb artifacts in interlaced video. It also has some line
6553 swapping tools to fix improperly captured video or make the result of a
6554 reverse effect display fields in the right order.
6558 <a name=
"DIFFERENCE-KEY"></a>
6559 Next:
<a rel=
"next" accesskey=
"n" href=
"#FREEZE-FRAME">FREEZE FRAME
</a>,
6560 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DEINTERLACE">DEINTERLACE
</a>,
6561 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6565 <h3 class=
"section">17.6 DIFFERENCE KEY
</h3>
6567 <p>The differency key creates transparency in areas which are similar
6568 between
2 frames. The Difference key effect must be applied to
2
6569 tracks. One track contains the action in front of a constant
6570 background and another track contains the background with nothing in
6571 front of it. Apply the difference key to the track with the action and
6572 apply a shared copy of it to the track with the background. The track
6573 with the background should be muted and underneath the track with the
6574 action and the colormodel should have an alpha channel.
6576 <p>Pixels which are different between the background and action track are
6577 treated as opaque. Pixels which are similar are treated as
6578 transparent. Change
<b>threshold
</b> in the differency key window to make
6579 more pixels which aren't the same color transparent. Change
<b>slope
</b>
6580 to change the rate at which the transparency tapers off as pixels get
6583 <p>The slope as defined here is the number of extra values flanking the
6584 threshold required to go from opaque to transparent. A high slope is
6585 more useful with a low threshold because slope fills in extra
6588 <p><b>Use value
</b> causes the intensity of pixels to be compared instead of
6591 <p>Applying a blur to the top track with just the alpha channel blurred
6592 can soften the transparency border.
6596 <a name=
"FREEZE-FRAME"></a>
6597 Next:
<a rel=
"next" accesskey=
"n" href=
"#HISTOGRAM">HISTOGRAM
</a>,
6598 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#DIFFERENCE-KEY">DIFFERENCE KEY
</a>,
6599 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6603 <h3 class=
"section">17.7 FREEZE FRAME
</h3>
6605 <p>In its simplest form, highlight a region of the track to freeze, drop
6606 the freeze frame effect on the highlighted region, and the lowest
6607 numbered frame in the affected area will play throughout the entire
6610 <p>Freezeframe has an
<b>enabled
</b> option which can be keyframed. Regions
6611 of a freeze frame effect which are enabled repeat the lowest numbered
6612 frame since the last keyframe. This has unique possibilities.
6614 <p>If a freeze frame effect has a keyframe in the middle of it set to
6615 <b>enabled
</b>, the frame in the middle is repeated in the entire effect.
6617 <p>If a freeze frame effect has several keyframes, each set to
6618 <b>enabled
</b>, every time a keyframe is encountered the frame under it
6619 becomes the frozen one.
6621 <p>If a freeze frame effect alternates between
<b>enabled
</b> and
6622 <b>disabled
</b>, each time an
<b>enabled
</b> keyframe is encountered the
6623 frame under it is replicated until the next
<b>disabled
</b> keyframe. The
6624 disabled regions play through.
6628 <a name=
"HISTOGRAM"></a>
6629 Next:
<a rel=
"next" accesskey=
"n" href=
"#INVERSE-TELECINE">INVERSE TELECINE
</a>,
6630 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#FREEZE-FRAME">FREEZE FRAME
</a>,
6631 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6635 <h3 class=
"section">17.8 HISTOGRAM
</h3>
6637 <p>This shows the number of occurances of each value of a certain color
6638 channel on a histogram plot.
6640 <p>It is always performed in floating point RGB regardless of
6641 the project colorspace. The histogram has two sets of transfer
6642 parameters: the input transfer and the output transfer.
6644 <p>The input transfer is defined by a graph on top of the histogram. The
6645 horizontal direction corresponds to every possible input color. The
6646 vertical direction corresponds to the output color for every input
6647 color. Video entering the histogram is first plotted on the histogram
6648 plot, then it is translated so output values now equal the output
6649 values for each input value on the input graph.
6651 <p>The input graph is edited by adding and removing any number of points.
6652 Click and drag anywhere in the input graph to create a point and move
6653 it. Click on an existing point to make it active and move it. The
6654 active point is always indicated by being filled in. The active
6655 point's input and output color are given in text boxes on top of the
6656 window. The input and output color of the point can be changed through
6659 <p>Points can be deleted by first selecting a point and then dragging it
6660 to the other side of an adjacent point. They can also be deleted by
6661 selecting them and hitting
<b>delete
</b>.
6663 <p>After the input transfer, the image is processed by the output
6664 transfer. The output transfer is simply a minimum and maximum to scale
6665 the input colors to. Input values of
100% are scaled down to the
6666 output's maximum. Input values of
0% are scaled up to the output
6669 <p>Input values below
0 are always clamped to
0 and input values above
6670 100% are always clamped to
100%. Click and drag on the output
6671 gradient's triangles to change it. It also has textboxes to enter
6674 <p>Enable the
<b>automatic
</b> toggle to have the histogram calculate an
6675 automatic input transfer for every frame. It does this by setting
6676 minimum and maximum input points to permit only the middle
99% of the
6677 pixels to pass through. The number of pixels permitted to pass through
6678 is set by the
<b>Threshold
</b> textbox. A threshold of
0.99 scales the
6679 input so
99% of the pixels pass through. Smaller thresholds permit
6680 fewer pixels to pass through and make the output look more contrasty.
6682 <p>A different automatic input transfer is applied to the R, G, and B
6683 channels but not to the value.
6685 <p>The histogram applies a different set of transfers to R, G, B, and
6686 value. The value transfers are applied uniformly to R, G, B after
6687 their discrete transfers are applied. The histogram displayed for the
6688 value transfer is the maximum R, G, or B for every pixel.
6690 <p>Select which transfer to view by selecting one of the channels on the
6691 top of the histogram.
6695 <a name=
"INVERSE-TELECINE"></a>
6696 Next:
<a rel=
"next" accesskey=
"n" href=
"#INTERPOLATE-VIDEO">INTERPOLATE VIDEO
</a>,
6697 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#HISTOGRAM">HISTOGRAM
</a>,
6698 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6702 <h3 class=
"section">17.9 INVERSE TELECINE
</h3>
6704 <p>This is the most effective deinterlacing tool when the footage is a
6705 video transfer of a film. Here the film was converted from
24fps to
6706 60fps. Then the
60fps was downsampled to
30fps by extracting odd and
6707 even lines and interlacing the lines. The IVTC effect is primarily a
6708 way to convert interlaced video to progressive video. It undoes three
6709 patterns of interlacing.
6711 <pre class=
"example"> A AB BC CD D
6715 <p>The first two options are fixed patterns and affected by the
<b>pattern
6716 offset
</b> and
<b>odd field first
</b> parameters. The last option creates
6717 several combinations of lines for each frame and picks the most
6718 progressive combination. It's a brute force algorithm.
6720 <p>This technique doesn't rely on a pattern like other techniques and is
6721 less destructive but the timing is going to be jittery because of the
6722 lack of a frame rate reduction. In order to smooth out the timing, you
6723 need to follow inverse telecine with a decimate effect.
6727 <a name=
"INTERPOLATE-VIDEO"></a>
6728 Next:
<a rel=
"next" accesskey=
"n" href=
"#LINEARIZE">LINEARIZE
</a>,
6729 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INVERSE-TELECINE">INVERSE TELECINE
</a>,
6730 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6734 <h3 class=
"section">17.10 INTERPOLATE VIDEO
</h3>
6736 <p>The interpolate video effect tries to create the illusion of a higher
6737 frame rate from source footage of very low framerates by averaging
6738 frames over time. It averages two input frames for each output frame.
6739 The input frames are at different times, resulting in a dissolve for
6740 all output frames between the input frames. There are two ways of
6741 specifying the input frames. You can specify an input frame rate which
6742 is lower than the project frame rate. This causes input frames to be
6743 taken at even intervals,
6745 <p>You can also specify keyframe locations as the positions of the input
6746 frames. In this mode the output frame rate is used as the input frame
6747 rate and you just create keyframes wherever you want to specify an
6752 <a name=
"LINEARIZE"></a>
6753 Next:
<a rel=
"next" accesskey=
"n" href=
"#LOOP">LOOP
</a>,
6754 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INTERPOLATE-VIDEO">INTERPOLATE VIDEO
</a>,
6755 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6759 <h3 class=
"section">17.11 LINEARIZE
</h3>
6761 <p>Raw camera images store colors in a logarithmic scale. The blacks in
6762 these images are nearly
0 and the whites are supposed to be infinity.
6763 The graphics card and most video codecs store colors in a linear scale
6764 but Cinelerra keeps raw camera images in their original logarithmic
6765 scale when it renders them. This is necessary because the raw image
6766 parser can't always decode the proper gamma values for the images. It
6767 also does its processing in
16 bit integers, which takes away a lot of
6770 <p>The linearize effect converts the logarithmic colors to linear colors
6771 through a gamma value and a maximum value. The gamma value determines
6772 how steep the output curve is and the maximum value is where
1.0 in the
6773 output corresponds to maximum brightness in the input.
6775 <p>The linearize effect has
2 more parameters to simplify gamma
6776 correction. The
<b>automatic
</b> option causes it to calculate
<b>max
</b>
6777 from the histogram of the image. Use this when making a preview of a
6778 long list of images since it changes for every image.
6780 <p>The
<b>use color picker
</b> option uses the value currently in the color
6781 picker to set the
<b>max
</b> value. Note that every time you pick a color
6782 from the compositor window, you need to hit
<b>use color picker
</b> to
6783 apply the new value.
6788 Next:
<a rel=
"next" accesskey=
"n" href=
"#MOTION">MOTION
</a>,
6789 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#LINEARIZE">LINEARIZE
</a>,
6790 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6794 <h3 class=
"section">17.12 LOOP
</h3>
6796 <p>Sections of audio or video can be looped by dropping a
<b>loop
</b> effect
6797 on them. Contrary to the the
<b>settings-
>loop playback
</b> option, the
6798 loop effects can be rendered where the
<b>settings-
>loop playback
</b>
6799 option can not be. The loop effects are also convenient for short
6802 <p>The loop effects have one option: the number of
<b>frames
</b> or
6803 <b>samples
</b> to loop. This specifies the length of the region to loop
6804 starting from either the beginning of the effect or the latest
6805 keyframe. The region is replicated for the entire effect.
6807 <p>Every time a keyframe is set in a loop effect, the keyframe becomes the
6808 beginning of the region to loop. Setting several keyframes in
6809 succession causes several regions to loop. Setting a single keyframe
6810 causes the region after the keyframe to be looped throughout the
6811 effect, no matter where the keyframe is. The end of an effect can be
6812 looped from the beginning by setting the keyframe near the end.
6816 <a name=
"MOTION"></a>
6817 Next:
<a rel=
"next" accesskey=
"n" href=
"#REFRAMERT">REFRAMERT
</a>,
6818 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#LOOP">LOOP
</a>,
6819 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
6823 <h3 class=
"section">17.13 MOTION
</h3>
6825 <p>The motion tracker is almost a complete application in itself. The
6826 motion tracker tracks two types of motion: translation and rotation.
6827 It can track both simultaneously or one only. It can do
1/
4 pixel
6828 tracking or single pixel tracking. It can stabilize motion or cause
6829 one track to follow the motion of another track.
6831 <p>Although the motion tracker is applied as a realtime effect, it usually
6832 must be rendered to see useful results. The effect takes a long time
6833 to precisely detect motion.
6835 <p>The motion tracker works by using one region of the frame as the region
6836 to track. It compares this region between
2 frames to calculate the
6837 motion. This region can be defined anywhere on the screen. Once the
6838 motion between
2 frames has been calculated, a number of things can be
6839 done with that motion vector. It can be scaled by a user value and
6840 clamped to a maximum range. It can be thrown away or accumulated with
6841 all the motion vectors leading up to the current position.
6843 <p>To save time the motion result can be saved for later reuse, recalled
6844 from a previous calculation, or discarded.
6846 <p>The motion tracker has a notion of
2 tracks, the master layer and the
6847 target layer. The master layer is where the comparison between
2
6848 frames takes place. The target layer is where motion is applied either
6849 to track or compensate for the motion in the master layer.
6851 <p>The intricacies of motion tracking are enough to sustain entire
6852 companies and build careers around. The motion tracker in Cinelerra
6853 isn't as sophisticated as some world class motion trackers but it's
6854 enough to sweeten some camcorder footage.
6856 <p>Here is a brief description of the motion tracking parameters:
6859 <li><b>Track translation:
</b> Enables translation operations.
6860 The motion tracker tracks X and Y motion in the master layer and
6861 adjusts X and Y motion in the target layer.
6864 <b>Translation block size:
</b> For the translation operations, a block is
6865 compared to a number of neighboring blocks to find the one with the
6866 least difference. The size of the block to search for is given by this
6870 <b>Translation search radius:
</b> The size of the area to scan for the
6874 <b>Translation search steps:
</b> Ideally the search operation would
6875 compare the translation block with every other pixel in the
6876 translation search radius. To speed this operation up, a subset of
6877 the total positions is searched. Then the search area is narrowed and
6878 rescanned by the same number of search steps until the motion is known
6879 to
1/
4 pixel accuracy.
6882 <b>Block X, Y:
</b> These coordinates determine the center of the
6883 translation block based on percentages of the width and height of the
6884 image. The center of the block should be part of the image which is
6885 visible at all times.
6888 <b>Maximum absolute offset:
</b> The amount of motion detected by the
6889 motion tracker is unlimited if this is
100. If it's under
100 the
6890 amount of motion is limited by that percentage of the image size.
6893 <b>Settling speed:
</b> The motion detected between every frame can be
6894 accumulated to form an absolute motion vector. If the settling speed
6895 is
100 the absolute vector is added to the next frame. If the settling
6896 speed is less than
100 the absolute vector is downscaled by the
6897 settling amount before being added to the next frame.
6900 <b>Track rotation:
</b> Enables rotation operations. The motion tracker
6901 tracks rotation in the master layer and adjusts rotation in the target
6905 <b>Rotation block size:
</b> For rotation operations a single block is
6906 compared to equally sized blocks, each rotated by a different amount.
6907 This is the size of the rotation block.
6910 <b>Rotation search radius:
</b> This is the maximum angle of rotation from
6911 the starting frame the rotation scanner can detect. The rotation scan
6912 is from this angle counterclockwise to this angle clockwise. Thus the
6913 rotation search radius is half the total range scanned.
6916 <b>Rotation search steps:
</b> Ideally every possible angle would be tested
6917 to get the rotation. To speed up the rotation search, the rotation
6918 search radius is divided into a finite number of angles and only those
6919 angles compared to the starting frame. Then the search radius is
6920 narrowed and an equal number of angles is compared in the smaller
6921 radius until the highest possible accuracy is achieved.
6923 <p>Normally you need one search step for every degree scanned. Since the
6924 rotation scanner scans the rotation search radius in two directions,
6925 you need two steps for every degree in the search radius to search the
6929 <b>Draw vectors:
</b> When translation is enabled,
2 boxes are drawn on the
6930 frame. One box represents the translation block. Another box outside
6931 the translation block represents the extent of the translation search
6932 radius. In the center of these boxes is an arrow showing the
6933 translation between the
2 master frames.
6935 <p>When rotation is enabled a single box the size of the rotation block is
6936 drawn rotated by the amount of rotation detected.
6939 <b>Track single frame:
</b> When this option is used the motion between a
6940 single starting frame and the frame currently under the insertion point
6941 is calculated. The starting frame is specified in the
<b>Frame number
</b>
6942 blank. The motion calculated this way is taken as the absolute motion
6943 vector. The absolute motion vector for each frame replaces the
6944 absolute motion vector for the previous frame. Settling speed has no
6945 effect on it since it doesn't contain any previous motion vectors.
6946 Playback can start anywhere on the timeline since there is no
6947 dependance on previous results.
6950 <b>Track previous frame:
</b> Causes only the motion between the previous
6951 frame and the current frame to be calculated. This is added to an
6952 absolute motion vector to get the new motion from the start of the
6953 sequence to the current position. After every frame processed this
6954 way, the block position is shifted to always cover the same region of
6955 the image. Playback must be started from the start of the motion
6956 effect in order to accumulate all the necessary motion vectors.
6959 <b>Previous frame same block:
</b> This is useful for stabilizing jerky
6960 camcorder footage. In this mode the motion between the previous frame
6961 and the current frame is calculated. Instead of adjusting the block
6962 position to reflect the new location of the image, like Track Previous
6963 Frame does, the block position is unchanged between each frame. Thus a
6964 new region is compared for each frame.
6967 <b>Master layer:
</b> This determines the track which supplies the starting
6968 frame and ending frame for the motion calculation. If it's
<b>Bottom
</b>
6969 the bottom track of all the tracks sharing this effect is the master
6970 layer. The top track of all the tracks is the target layer.
6973 <b>Calculation:
</b> This determines whether to calculate the motion at all
6974 and whether to save it to disk. If it's
<b>Don't Calculate
</b> the motion
6975 calculation is skipped. If it's
<b>Recalculate
</b> the motion calculation
6976 is performed every time each frame is rendered. If it's
<b>Save
</b> the
6977 motion calculation is always performed but a copy is also saved. If
6978 it's
<b>Load
</b>, the motion calculation is loaded from a previous save
6979 calculation. If there is no previous save calculation on disk, a new
6980 motion calculation is performed.
6983 <b>Action:
</b> Once the motion vector is known this determines whether to
6984 move the target layer opposing the motion vector or following the
6985 motion vector. If it's
<b>Do Nothing
</b> the target layer is untouched.
6986 If it's
<b>Track...
</b> the target layer is moved by the same amount as
6987 the master layer. This is useful for matching titles to objects in the
6988 frame. If it's
<b>Stabilize...
</b> the target layer is moved opposite to
6989 the motion vector. This is useful for stabilizing an object in the
6990 frame. The motion operations can be accurate to single pixels or
6991 subpixels by changing the action setting.
6996 <li><a accesskey=
"1" href=
"#SECRETS-OF-MOTION-TRACKING">SECRETS OF MOTION TRACKING
</a>
6997 <li><a accesskey=
"2" href=
"#g_t2-PASS-MOTION-TRACKING">2 PASS MOTION TRACKING
</a>
6998 <li><a accesskey=
"3" href=
"#USING-BLUR-TO-IMPROVE-MOTION-TRACKING">USING BLUR TO IMPROVE MOTION TRACKING
</a>
6999 <li><a accesskey=
"4" href=
"#USING-HISTOGRAM-TO-IMPROVE-MOTION-TRACKING">USING HISTOGRAM TO IMPROVE MOTION TRACKING
</a>
7004 <a name=
"SECRETS-OF-MOTION-TRACKING"></a>
7005 Next:
<a rel=
"next" accesskey=
"n" href=
"#g_t2-PASS-MOTION-TRACKING">2 PASS MOTION TRACKING
</a>,
7006 Up:
<a rel=
"up" accesskey=
"u" href=
"#MOTION">MOTION
</a>
7010 <h4 class=
"subsection">17.13.1 SECRETS OF MOTION TRACKING
</h4>
7012 <p>Since it is a very slow effect, there is a method to applying the
7013 motion tracker to get the most out of it. First disable playback for
7014 the track to do motion tracking on. Then drop the effect on a region
7015 of video with some motion to track. Then rewind the insertion point to
7016 the start of the region. Set
<b>Action
</b> -
> <b>Do Nothing
</b>. Set
7017 <b>Calculation
</b> -
> <b>Don't calculate
</b>. Enable
<b>Draw vectors
</b>. Then
7018 enable playback of the track to see the motion tracking areas.
7020 <p>Enable which of
<b>translation motion
</b> or
<b>rotation motion
</b> vectors
7021 you want to track. By watching the compositor window and adjusting the
7022 <b>Block x,y
</b> settings, center the block on the part of the image you
7023 want to track. Then set search radius, block size, and block
7024 coordinates for translation and rotation.
7026 <p>Once this is configured, set the calculation to
<b>Save coords
</b> and do
7027 test runs through the sequence to see if the motion tracker works and
7028 to save the motion vectors. Once this is done, disable playback for
7029 the track, disable
<b>Draw vectors
</b>, set the motion action to perform
7030 on the target layer and change the calculation to
<b>Load coords
</b>.
7031 Finally enable playback for the track.
7033 <p>When using a single starting frame to calculate the motion of a
7034 sequence, the starting frame should be a single frame with the least
7035 motion to any of the other frames. This is rarely frame
0. Usually
7036 it's a frame near the middle of the sequence. This way the search
7037 radius need only reach halfway to the full extent of the motion in the
7040 <p>If the motion tracker is used on a render farm,
<b>Save coords
</b> and
7041 <b>previous frame
</b> mode won't work. The results of the save coords
7042 operation are saved to the hard drives on the render nodes, not the
7043 master node. Future rendering operations on these nodes will process
7044 different frames and read the wrong coordinates from the node
7045 filesystems. The fact that render nodes only visualize a portion of
7046 the timeline also prevents
<b>previous frame
</b> from working since it
7047 depends on calculating an absolute motion vector starting on frame
0.
7051 <a name=
"g_t2-PASS-MOTION-TRACKING"></a>
7052 Next:
<a rel=
"next" accesskey=
"n" href=
"#USING-BLUR-TO-IMPROVE-MOTION-TRACKING">USING BLUR TO IMPROVE MOTION TRACKING
</a>,
7053 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SECRETS-OF-MOTION-TRACKING">SECRETS OF MOTION TRACKING
</a>,
7054 Up:
<a rel=
"up" accesskey=
"u" href=
"#MOTION">MOTION
</a>
7058 <h4 class=
"subsection">17.13.2 2 PASS MOTION TRACKING
</h4>
7060 <p>The method described above is
2 pass motion tracking. One pass is used
7061 just to calculate the motion vectors. A second pass is used to apply
7062 the motion vectors to the footage. This is faster than a single pass
7063 because errors in the motion vector calculation can be discovered
7066 <p>This suffers the disadvantage of not being practical for extremely long
7067 sequences where some error is acceptable, like stabilizing camcorder
7070 <p>The slower method is to calculate the motion vectors and apply them
7071 simultaneously. This method can use one track as the motion vector
7072 calculation track and another track as the target track for motion
7073 vector actions. This is useful for long sequences where some error is
7078 <a name=
"USING-BLUR-TO-IMPROVE-MOTION-TRACKING"></a>
7079 Next:
<a rel=
"next" accesskey=
"n" href=
"#USING-HISTOGRAM-TO-IMPROVE-MOTION-TRACKING">USING HISTOGRAM TO IMPROVE MOTION TRACKING
</a>,
7080 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#g_t2-PASS-MOTION-TRACKING">2 PASS MOTION TRACKING
</a>,
7081 Up:
<a rel=
"up" accesskey=
"u" href=
"#MOTION">MOTION
</a>
7085 <h4 class=
"subsection">17.13.3 USING BLUR TO IMPROVE MOTION TRACKING
</h4>
7087 <p>With extremely noisy or interlaced footage, applying a blur effect
7088 before the motion tracking can improve accuracy. Either save the
7089 motion vectors in a
<b>tracking pass
</b> and disable the blur for the
7090 <b>action pass
</b> or apply the blur just to the
<b>master layer
</b>.
7094 <a name=
"USING-HISTOGRAM-TO-IMPROVE-MOTION-TRACKING"></a>
7095 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#USING-BLUR-TO-IMPROVE-MOTION-TRACKING">USING BLUR TO IMPROVE MOTION TRACKING
</a>,
7096 Up:
<a rel=
"up" accesskey=
"u" href=
"#MOTION">MOTION
</a>
7100 <h4 class=
"subsection">17.13.4 USING HISTOGRAM TO IMPROVE MOTION TRACKING
</h4>
7102 <p>A histogram is almost always applied before motion tracking to clamp
7103 out noise in the darker pixels. Either save the motion vectors in a
7104 <b>tracking pass
</b> and disable the histogram for the
<b>action pass
</b> or
7105 apply the histogram just to the
<b>master layer
</b>.
7109 <a name=
"REFRAMERT"></a>
7110 Next:
<a rel=
"next" accesskey=
"n" href=
"#REFRAME">REFRAME
</a>,
7111 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#MOTION">MOTION
</a>,
7112 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7116 <h3 class=
"section">17.14 REFRAMERT
</h3>
7118 <p>ReframeRT changes number of frames in a sequence of video directly from
7119 the timeline. It has
2 modes, selected by the
2 toggles in the GUI.
7121 <p><b>Stretch
</b> mode multiplies the current frame number of its output by
7122 the scale factor to arrive at the frame to read from its input. If its
7123 current output frame is #
55 and the scale factor is
2, frame #
110 is
7124 read from its input. The stretch mode has the effect of changing the
7125 length of output video by the inverse of the scale factor. If the
7126 scale factor is greater than
1, the output will end before the end of
7127 the sequence on the timeline. If it's less than
1, the output will end
7128 after the end of the sequence on the timeline. The ReframeRT effect
7129 must be lengthened to the necessary length to accomodate the scale
7130 factor. Change the length of the effect by clicking on the endpoint of
7131 the effect and dragging.
7133 <p>Although stretch mode changes the number of the frame read from its
7134 input, it doesn't change the frame rate of the input. Effects before
7135 ReframeRT assume the same frame rate as ReframeRT.
7137 <p><b>Downsample
</b> mode doesn't change the length of the output sequence.
7138 It multiplies the frame rate of the output by the scale factor to
7139 arrive at a frame rate rate to read the input. This has the effect of
7140 replicating the input frames so that they only change at the scaled
7141 frame rate when sent to the output. It doesn't change the length of
7142 the sequence. If the scale factor is
0.5 and the output frame rate is
7143 30 fps, only
15 frames will be shown per second and the input will be
7144 read at
15 fps. Downsample is only useful for scalefactors below
1,
7145 hence the name downsample.
7147 <p>Downsample mode changes the frame rate of the input as well as the
7148 number of the frame to read, so effects before ReframeRT see the frame
7149 rate * the scale factor as their frame rate. If the scale factor is
2
7150 and the output frame rate is
30, the input frame rate will be
60 and
7151 the input frame number will by doubled. This won't normally do
7152 anything but some input effects may behave differently at the higher
7157 <a name=
"REFRAME"></a>
7158 Next:
<a rel=
"next" accesskey=
"n" href=
"#RESAMPLE">RESAMPLE
</a>,
7159 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REFRAMERT">REFRAMERT
</a>,
7160 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7164 <h3 class=
"section">17.15 REFRAME
</h3>
7166 <p>This does exactly the same thing as
<b>ReframeRT
</b> in
<b>Stretch
</b> mode.
7167 It multiplies the output frame number by the scale factor to arrive at
7168 the input frame number and changes the length of the sequence. Unlike
7169 ReframeRT, this must run from the
<b>Video
</b> menu and render its output.
7171 <p>Be aware
<b>Reframe
</b> doesn't write the scaled frame rate as the frame
7172 rate of the rendered file. It produces a file of scaled length and
7173 equal frame rate as the project. The new length is
1/scale factor as
7174 big as the original sequence.
7178 <a name=
"RESAMPLE"></a>
7179 Next:
<a rel=
"next" accesskey=
"n" href=
"#REVERSE-VIDEO_002fAUDIO">REVERSE VIDEO/AUDIO
</a>,
7180 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REFRAME">REFRAME
</a>,
7181 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7185 <h3 class=
"section">17.16 RESAMPLE
</h3>
7187 <p>This multiplies the number of each output sample by a scale factor to
7188 arrive at the number of the input sample. The output file's sample
7189 rate is set to the project sample rate but its length is changed to
7190 reflect the scaled number of samples. It also filters the resampled
7191 audio to remove aliasing.
7193 <p>If the scale factor is
2, every
2 input samples will be reduced to
1
7194 output sample and the output file will have half as many samples as the
7195 input sequence. If it's
0.5, every
0.5 input samples will be stretched
7196 to
1 output sample and the output file will have twice as many samples
7197 as the input sequence.
7201 <a name=
"REVERSE-VIDEO%2fAUDIO"></a>
7202 <a name=
"REVERSE-VIDEO_002fAUDIO"></a>
7203 Next:
<a rel=
"next" accesskey=
"n" href=
"#THRESHOLD">THRESHOLD
</a>,
7204 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#RESAMPLE">RESAMPLE
</a>,
7205 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7209 <h3 class=
"section">17.17 REVERSE VIDEO/AUDIO
</h3>
7211 <p>Media can be reversed on the timeline in realtime. This isn't to be
7212 confused with using the reverse playback on the transport. The reverse
7213 effects reverse the region covered by the effect regardless of the
7214 transport direction. Apply
<b>reverse audio
</b> to an audio track and
7215 play it backwards. The sound plays forward.
7217 <p>The region to be reversed is first determined by what part of the track
7218 the effect is under and second by the locations of keyframes in the
7219 effect. The reverse effects have an
<b>enabled
</b> option which allows
7220 you to set keyframes. This allows may possibilities.
7222 <p>Every
<b>enabled
</b> keyframe is treated as the start of a new reversed
7223 region and the end of a previous reversed region. Several
<b>enabled
</b>
7224 keyframes in succession yield several regions reversed independant of
7225 each other. An
<b>enabled
</b> keyframe followed by a
<b>disabled
</b>
7226 keyframe yields one reversed region followed by a forward region.
7228 <p>Finally, be aware when reversing audio that the waveform on the
7229 timeline doesn't reflect the actual reversed output.
7233 <a name=
"THRESHOLD"></a>
7234 Next:
<a rel=
"next" accesskey=
"n" href=
"#TIME-AVERAGE">TIME AVERAGE
</a>,
7235 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REVERSE-VIDEO_002fAUDIO">REVERSE VIDEO/AUDIO
</a>,
7236 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7240 <h3 class=
"section">17.18 THRESHOLD
</h3>
7242 <p>Threshold converts the image to pure luminance. Then luminance values
7243 below and above the threshold range are converted to black and
7244 luminance values inside the threshold range are converted to white.
7245 The threshold window shows a histogram of luminance values for the
7246 current frame. Click dragging inside the histogram creates a range to
7247 convert to white. Shift-clicking extends one border of this range.
7248 Values for the threshold range can also be specified in the text boxes.
7250 <p>This effect is basically a primitive luminance key. A second track
7251 above the track with the threshold effect can be multiplied, resulting
7252 in only the parts of the second track within the threshold being
7257 <a name=
"TIME-AVERAGE"></a>
7258 Next:
<a rel=
"next" accesskey=
"n" href=
"#TITLER">TITLER
</a>,
7259 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THRESHOLD">THRESHOLD
</a>,
7260 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7264 <h3 class=
"section">17.19 TIME AVERAGE
</h3>
7266 <p>Time average is one effect which has many uses besides creating nifty
7267 trail patterns of moving objects. It's main use is reducing noise in
7268 still images. Merely point a video camera at a stationary subject for
7269 30 frames, capture the frames, and average them using TIME AVERAGE and
7270 you'll have a super high quality print. In floating point colormodels, time
7271 average can increase the dynamic range of lousy cameras.
7273 <p>Inside the time average effect is an accumulation buffer and a
7274 divisor. A number of frames are accumulated in the accumulation buffer
7275 and divided by the divisor to get the average.
7277 <p>Because the time average can consume enourmous amounts of memory, it is
7278 best applied by first disabling playback for the track, dropping the
7279 time average in it, configuring time average for the desired number of
7280 frames, and re-enabling playback for the track.
7282 <p><b>Frames to average:
</b> This determines the number of frames to be
7283 accumulated in the accumulation buffer. For extremely large
7284 integrations it's easier to edit the EDL in a text editor and put in
7285 the number of frames.
7287 <p><b>Accumulate:
</b> This outputs the accumulation buffer without dividing it.
7289 <p><b>Average:
</b> This causes the accumulation buffer to be divided before
7290 being output. This results in the average of all the frames.
7292 <p><b>Inclusive Or:
</b> This causes the accumulation buffer to be replaced by
7293 any pixels which aren't transparent. In combination with motion
7294 tracking it allows entire sequences to be combined to form panoramas.
7296 <p><b>Reprocess frame again:
</b> If an effect before the time average is
7297 adjusted the time average normally doesn't reread the accumulation
7298 buffer to get the change. This forces it to reread the accumulation
7299 buffer when other effects change.
7301 <p><b>Disable subtraction:
</b> In order to represent the accumulation of only
7302 the specified number of frames, the time average retains all the
7303 previous frames in memory and subtracts them out as it plays forward.
7304 It would run out of memory if it had to accumulate thousands of
7305 frames. By disabling subtraction the previous frames are not stored in
7306 memory and only the average function is affected by the frame count.
7310 <a name=
"TITLER"></a>
7311 Next:
<a rel=
"next" accesskey=
"n" href=
"#VIDEO-SCOPE">VIDEO SCOPE
</a>,
7312 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TIME-AVERAGE">TIME AVERAGE
</a>,
7313 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7317 <h3 class=
"section">17.20 TITLER
</h3>
7319 <p>While it is possible to add text to movies by importing still images
7320 from The Gimp and compositing them, the Titler allows you to add text
7321 from within Cinelerra.
7323 <p>The titler has standard options for
<b>font, size, and style
</b>. The
7324 best font is a generic, normal font like Arial in a large size.
7326 <p>The titler also has options you'll only find in moving pictures. The
7327 <b>Justify
</b> operation justifies the text relative to the entire frame.
7328 Once justified, the
<b>X and Y
</b> offset is applied. This allows text to
7329 be justified while at the same time letting you push it within the
7332 <p>The
<b>motion type
</b> scrolls the text in any of the four directions.
7333 When using this, the text may dissappear. Move the insertion point
7334 along the timeline until the text is far enough along the animation to
7335 reappear. The text scrolls on and scrolls off.
7337 <p>Setting
<b>loop
</b> causes the text to scroll completely off and repeat.
7338 Without
<b>loop
</b> the text scrolls off and never reappears.
7340 <p>The speed of the animation is determined by
<b>speed
</b> Set it higher to
7341 speed up the animation.
7343 <p><b>Drop shadow
</b> draws a black copy of the text to the bottom right of
7344 the original text. Useful when drawing text over changing video to
7345 keep the border always visible.
7347 <p>In addition to the scrolling,
<b>Fade in/Fade out
</b> are a second type of
7348 animation. If the fade seconds are
0, no fading is done.
7350 <p><b>Color
</b> picks the color to draw the text in. Usually white is the
7351 only practical color.
7353 <p><b>Stamp timecode
</b> replaces the text with the current position on the
7354 timeline in seconds and frames.
7357 <li><a accesskey=
"1" href=
"#ADDING-FONTS-TO-THE-TITLER">ADDING FONTS TO THE TITLER
</a>: How to add fonts to the titler
7358 <li><a accesskey=
"2" href=
"#THE-TITLE_002dSAFE-REGION">THE TITLE-SAFE REGION
</a>: How to keep text visible on output
7363 <a name=
"ADDING-FONTS-TO-THE-TITLER"></a>
7364 Next:
<a rel=
"next" accesskey=
"n" href=
"#THE-TITLE_002dSAFE-REGION">THE TITLE-SAFE REGION
</a>,
7365 Up:
<a rel=
"up" accesskey=
"u" href=
"#TITLER">TITLER
</a>
7369 <h4 class=
"subsection">17.20.1 ADDING FONTS TO THE TITLER
</h4>
7371 <p>The X Window system originally didn't have a suitable font renderer for
7372 video. It also is restricted to the current bit depth. It doesn't
7373 have a convenient way to know which fonts work with the suitable font
7374 renderer in the desired bit depth. The easiest way we've found to
7375 support fonts in the titler is to have a directory for them at
7376 <b>/usr/lib/cinelerra/fonts
</b>.
7378 <p>The titler supports mainly
<b>TTF
</b>, true type fonts. It supports
7379 others but TTF are the most reliable. To add true type fonts, copy the
7380 <b>.TTF
</b> files to the
<b>/usr/lib/cinelerra/fonts
</b> directory. In that
7381 directory run
<b>ttmkfdir
> fonts.dir
</b> and restart Cinelerra. The new
7382 fonts should appear.
7386 <a name=
"THE-TITLE-SAFE-REGION"></a>
7387 <a name=
"THE-TITLE_002dSAFE-REGION"></a>
7388 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#ADDING-FONTS-TO-THE-TITLER">ADDING FONTS TO THE TITLER
</a>,
7389 Up:
<a rel=
"up" accesskey=
"u" href=
"#TITLER">TITLER
</a>
7393 <h4 class=
"subsection">17.20.2 THE TITLE-SAFE REGION
</h4>
7395 <p>If the video is displayed on a consumer TV, the outer border is going
7396 to be cropped by
5% on each side. Moreover, text which is too close to
7397 the edge looks sloppy. Make sure when adding titles to have the
7398 <b>title-safe
</b> <img src=
"titlesafe.png" alt=
"titlesafe.png"> tool active in the
<b>compositor
</b> window.
7399 The text shouldn't cross the inner rectangle.
7403 <a name=
"VIDEO-SCOPE"></a>
7404 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TITLER">TITLER
</a>,
7405 Up:
<a rel=
"up" accesskey=
"u" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>
7409 <h3 class=
"section">17.21 VIDEO SCOPE
</h3>
7411 <p>The video scope plots two views of the image. One view plots the
7412 intensity of each pixel against horizontal position. They call this
7413 the WAVEFORM. Another view translates hue to angle and saturation to
7414 radius for each pixel. They call this the VECTORSCOPE.
7416 <p>The vectorscope is actually very useful for determining if an image is
7417 saturated. When adjusting saturation, it's important to watch the
7418 vectorscope to make sure pixels don't extend past the
100 radius.
7420 <p>The waveform allows you to make sure image data extends from complete
7421 black to complete white while adjusting the brightness/contrast.
7423 <p>Some thought is being given to having a video scope for recording.
7424 Unfortunately, this would require a lot of variations of the video
7425 scope for all the different video drivers.
7429 <a name=
"PLUGIN-AUTHORING"></a>
7430 Next:
<a rel=
"next" accesskey=
"n" href=
"#KEYBOARD-SHORTCUTS">KEYBOARD SHORTCUTS
</a>,
7431 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SECRETS-OF-CINELERRA-EFFECTS">SECRETS OF CINELERRA EFFECTS
</a>,
7432 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
7436 <h2 class=
"chapter">18 PLUGIN AUTHORING
</h2>
7438 <p>The plugin API in Cinelerra dates back to
1997, before the LADSPA and
7439 before VST became popular. It's fundamentally the same as it was in
7440 1997, with minor modifications to handle keyframes and GUI feedback.
7441 Unfortunately, the GUI is not abstracted from the programmer. This
7442 allows the programmer to use whatever toolkit they want and allows more
7443 flexibility in appearance but it costs more.
7445 <p>There are several types of plugins, each with a common procedure of
7446 implementation and specific changes for that particular type. The
7447 easiest way to implement a plugin is to take the simplest existing one
7448 out of the group and rename the symbols.
7451 <li><a accesskey=
"1" href=
"#INTRODUCING-THE-PULL-METHOD">INTRODUCING THE PULL METHOD
</a>: The current paradigm for plugin writing
7452 <li><a accesskey=
"2" href=
"#COMMON-PLUGIN-FUNCTIONS">COMMON PLUGIN FUNCTIONS
</a>: What all effects have to do.
7453 <li><a accesskey=
"3" href=
"#REALTIME-PLUGINS">REALTIME PLUGINS
</a>: What realtime effects have to do.
7454 <li><a accesskey=
"4" href=
"#NONREALTIME-PLUGINS">NONREALTIME PLUGINS
</a>: What rendered effects have to do.
7455 <li><a accesskey=
"5" href=
"#AUDIO-PLUGINS">AUDIO PLUGINS
</a>: What audio effects have to do.
7456 <li><a accesskey=
"6" href=
"#VIDEO-PLUGINS">VIDEO PLUGINS
</a>: What video effects have to do.
7457 <li><a accesskey=
"7" href=
"#TRANSITION-PLUGINS">TRANSITION PLUGINS
</a>: What transitions have to do.
7458 <li><a accesskey=
"8" href=
"#PLUGIN-GUI_0027S-WHICH-UPDATE-DURING-PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>: How to use currently playing data to draw the GUI.
7459 <li><a accesskey=
"9" href=
"#PLUGIN-QUERIES">PLUGIN QUERIES
</a>: How plugins get information about the data to be processed.
7464 <a name=
"INTRODUCING-THE-PULL-METHOD"></a>
7465 Next:
<a rel=
"next" accesskey=
"n" href=
"#COMMON-PLUGIN-FUNCTIONS">COMMON PLUGIN FUNCTIONS
</a>,
7466 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
7470 <h3 class=
"section">18.1 INTRODUCING THE PULL METHOD
</h3>
7472 <p>The simplest way to design plugins is with the push method. The push
7473 method is intuitive. A source pushes data to a plugin, the plugin does
7474 math operations on it, and the plugin pushes it to a destination. For
7475 6 years this was the way all realtime plugins were driven internally
7476 but it didn't allow you to reduce the rate of data in realtime. While
7477 plugins can still be written as if they're being pushed data, this is
7478 not the way they're processed internally anymore.
7480 <p>The latest evolution in Cinelerra's plugin design is the pull method.
7481 The rendering pipeline starts at the end and the final steps in the
7482 rendering pipeline request data from the steps before them. When the
7483 rendering pipleline eventually requests data from a plugin chain, each
7484 plugin requests data from the plugin before it.
7486 <p>This is less intuitive than the push method but is much more powerful.
7487 Realtime plugins written using the pull method can change the rate data
7488 is presented to the viewer and the direction of playback. The pull
7489 method allows plugins to take in data at a higher rate than they send
7492 <p>To get the power of rate independance, the pull method requires plugins
7493 to know more about the data than they needed to under the push method.
7494 Plugins need to know what rate the project is at and what rate their
7495 individual requested output is at. These two data rates have to be
7496 interchanged for a plugin to configure itself properly.
7498 <p>Keyframes for a plugin are stored relative to the project frame rate.
7499 Queries for the current playback position are given relative to the
7500 project frame rate. This is useless if the plugin was requested data
7501 at twice the project frame rate since the keyframes wouldn't match up
7502 to the right data positions. Two classes of data rates were created to
7503 handle this problem.
7505 <p>Rate conversions are done in terms of the
<b>project rate
</b> and the
7506 <b>requested rate
</b>. The project rate is identical for all plugins. It
7507 is determined by the
<b>settings-
>format
</b> window. The requested rate
7508 is determined by the downstream plugin requesting data from the current
7509 plugin. It is arbitrary. Exactly how to use these rates is described
7514 <a name=
"COMMON-PLUGIN-FUNCTIONS"></a>
7515 Next:
<a rel=
"next" accesskey=
"n" href=
"#REALTIME-PLUGINS">REALTIME PLUGINS
</a>,
7516 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#INTRODUCING-THE-PULL-METHOD">INTRODUCING THE PULL METHOD
</a>,
7517 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
7521 <h3 class=
"section">18.2 COMMON PLUGIN FUNCTIONS
</h3>
7523 <p>All plugins inherit from a derivative of PluginClient. This
7524 PluginClient derivative implements most of the required methods in
7525 PluginClient, but users must still define methods for PluginClient.
7526 The most commonly used methods are predefined in macros to reduce the
7527 typing yet still allow flexibility.
7529 <p>The files they include depend on the plugin type. Audio plugins
7530 include
<b>pluginaclient.h
</b> and video plugins include
7531 <b>pluginvclient.h
</b>. They inherit
<b>PluginAClient
</b> and
7532 <b>PluginVClient
</b> respectively.
7534 <p>Cinelerra instantiates all plugins at least twice when they are used in
7535 a movie. Once instance is the GUI. The other instance is the signal
7536 processor. User input, through a complicated sequence, is propogated
7537 from the GUI instance to the signal processor instance. If the signal
7538 processor wants to alter the GUI, it propogates data back to the GUI
7539 instance. There are utility functions for doing all this.
7541 <p>All plugins define at least three objects:
7545 <b>Processing object
</b> - Contains pointers to all the other objects and
7546 performs the signal processing. This object contains a number of
7547 queries to identify itself and is the object you register to register
7551 <b>User interface object
</b> - This is defined according to the programmer's
7552 discretion. It can either use Cinelerra's toolkit or another toolkit.
7553 It shows data on the screen and collects parameters from the user.
7555 <p>Using Cinelerra's toolkit, the only user interface object a developer
7556 needs to worry about is the Window. The window has pointers to a
7557 number of widgets, a few initialization methods, and a back pointer to
7558 the plugin's processing object. The documentation refers to the usage
7559 of Cinelerra's toolkit.
7561 <p>Depending on the user interface toolkit, a user interface thread may be
7562 created to run the user interface asynchronous of everything else.
7563 Synchronizing the user interface to changes in the plugin's
7564 configuration is the most complicated aspect of the plugin, so the user
7565 interface thread and object are heavily supported by macros if you use
7566 Cinelerra's toolkit.
7569 <b>Configuration object
</b> - This stores the user parameters and always
7570 needs interpolation, copying, and comparison functions. Macros for the
7571 plugin client automatically call configuration methods to interpolate
7577 <li><a accesskey=
"1" href=
"#THE-PROCESSING-OBJECT">THE PROCESSING OBJECT
</a>
7578 <li><a accesskey=
"2" href=
"#THE-CONFIGURATION-OBJECT">THE CONFIGURATION OBJECT
</a>
7579 <li><a accesskey=
"3" href=
"#THE-USER-INTERFACE-OBJECT">THE USER INTERFACE OBJECT
</a>
7584 <a name=
"THE-PROCESSING-OBJECT"></a>
7585 Next:
<a rel=
"next" accesskey=
"n" href=
"#THE-CONFIGURATION-OBJECT">THE CONFIGURATION OBJECT
</a>,
7586 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMMON-PLUGIN-FUNCTIONS">COMMON PLUGIN FUNCTIONS
</a>
7590 <h4 class=
"subsection">18.2.1 THE PROCESSING OBJECT
</h4>
7592 <p>Load up a simple plugin like gain to see what this object looks like.
7593 The processing object should inherit from the intended PluginClient
7594 derivative. Its constructor should take a PluginServer argument.
7596 <pre class=
"example"> MyPlugin(PluginServer *server);
7598 <p>In the implementation, the plugin must contain a registration line with
7599 the name of the processing object like
7601 <pre class=
"example"> REGISTER_PLUGIN(MyPlugin)
7603 <p>The constructor should contain
7605 <pre class=
"example"> PLUGIN_CONSTRUCTOR_MACRO
7607 <p>to initialize the most common variables.
7609 <p>The processing object should have a destructor containing
7611 <pre class=
"example"> PLUGIN_DESTRUCTOR_MACRO
7613 <p>to delete the most common variables.
7615 <p>Another function which is useful but not mandatory is
7617 <pre class=
"example"> int is_multichannel();
7619 <p>It should return
1 if one instance of the plugin handles multiple
7620 tracks simultaneously or
0 if one instance of the plugin only handles
7621 one track. The default is
0 if it is omitted.
7623 <p>Multichannel plugins in their processing function should refer to a
7624 function called
<b>PluginClient::get_total_buffers()
</b> to determine the
7627 <p>To simplify the implementation of realtime plugins, a macro for
7628 commonly used members has been created for the class header, taking the
7629 configuration object and user interface thread object as arguments.
7630 The macro definitions apply mainly to realtime plugins and are not
7631 useful in nonrealtime plugins. Fortunately, nonrealtime plugins are
7634 <pre class=
"example"> PLUGIN_CLASS_MEMBERS(config_name, thread_name)
7636 <p>The commonly used members in PLUGIN_CLASS_MEMBERS are described below.
7639 <li>int load_configuration();
7641 <p>Loads the configuration based on surrounding keyframes and current
7642 position. The class definition for load_configuration should contain
7644 <pre class=
"example"> LOAD_CONFIGURATION_MACRO(plugin_class, config_class)
7646 <p>to implement the default behavior for load_configuration. This stores
7647 whatever the current configuration is inside the plugin's configuration
7648 object and returns
1 if the new configuration differs from the previous
7649 configuration. The return value of load_configuration is used by
7650 another commonly used function, update_gui to determine if the GUI really needs to be updated.
7652 <p>The plugin's configuration object is always called
<b>config
</b> inside
7653 PLUGIN_CLASS_MEMBERS.
7655 <li>VFrame* new_picon();
7657 <p>Creates a picon for display in the resource window. Use
7659 <pre class=
"example"> #include
"picon_png.h"
7660 NEW_PICON_MACRO(plugin_class)
7662 <p>to implement new_picon. In addition, the user should create a
7663 <b>picon_png.h
</b> header file from a PNG image using
<b>pngtoh
</b>.
7664 <b>pngtoh
</b> is compiled in the
<b>guicast/ARCH
</b> directory.
7666 <p>The source PNG image should be called picon.png and can be any format
7669 <li>char* plugin_title();
7671 <p>Returns a text string identifying the plugin in the resource window.
7672 The string has to be unique.
7674 <li>void update_gui();
7676 <p>Should first load the configuration, test for a return of
1, and then
7677 redraw the GUI with the new parameters. All the plugins using GuiCast
7680 <pre class=
"example"> void MyPlugin::update_gui()
7684 if(load_configuration())
7686 thread-
>window-
>lock_window();
7687 // update widgets here
7688 thread-
>window-
>unlock_window();
7693 <p>to handle concurrency and conditions of no GUI.
7697 <p>Instantiate the GUI and switch the plugin to GUI mode. This is implemented with
7699 <pre class=
"example"> SHOW_GUI_MACRO(plugin_class, thread_class)
7701 <li>int set_string();
7703 <p>Changes the title of the GUI window to a certain string. This is implemented with
7705 <pre class=
"example"> SET_STRING_MACRO(plugin_class)
7707 <li>void raise_window();
7709 <p>Raises the GUI window to the top of the stack. This is implemented with
7711 <pre class=
"example"> RAISE_WINDOW_MACRO(plugin_class)
7715 <p>Iimportant functions the processing object must define are the
7716 functions which load and save configuration data from keyframes. These
7717 functions are called by the macros so all you need to worry about is
7718 accessing the keyframe data.
7720 <pre class=
"example"> void save_data(KeyFrame *keyframe);
7721 void read_data(KeyFrame *keyframe);
7723 <p>The read data functions are only used in realtime plugins. The read
7724 data functions translate the plugin configuration between the KeyFrame
7725 argument and the configuration object for the plugin. The keyframes
7726 are stored on the timeline and can change for every project.
7728 <p>Use an object called
<b>FileXML
</b> to do the translation and some
7729 specific commands to get the data out of the KeyFrame argument. See
7730 any existing plugin to see the usage of KeyFrame and FileXML.
7732 <pre class=
"example"> int load_defaults();
7733 int save_defaults();
7735 <p>The load defaults functions are used in realtime and non-realtime
7736 plugins. The load defaults functions translate the plugin
7737 configuration between a Defaults object and the plugin's
7738 configuration. The Defaults object stores configurations in a discrete
7739 file on disk for each plugin but doesn't isolate different
7740 configurations for different projects.
7742 <p>The function overriding
<b>load_defaults
</b> also needs to create the
7743 Defaults object. See any existing plugin to see the usage of
7746 <p>Other standard members may be defined in the processing object,
7747 depending on the plugin type.
7751 <a name=
"THE-CONFIGURATION-OBJECT"></a>
7752 Next:
<a rel=
"next" accesskey=
"n" href=
"#THE-USER-INTERFACE-OBJECT">THE USER INTERFACE OBJECT
</a>,
7753 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-PROCESSING-OBJECT">THE PROCESSING OBJECT
</a>,
7754 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMMON-PLUGIN-FUNCTIONS">COMMON PLUGIN FUNCTIONS
</a>
7758 <h4 class=
"subsection">18.2.2 THE CONFIGURATION OBJECT
</h4>
7760 <p>The configuration object is critical for GUI updates, signal
7761 processing, and default settings in realtime plugins. Be aware it is
7762 not used in nonrealtime plugins. The configuration object inherits
7763 from nothing and has no dependancies. It's merely a class containing
7764 three functions and variables specific to the plugin's parameters.
7766 <p>Usually the configuration object starts with the name of the plugin
7769 <pre class=
"example"> class MyPluginConfig
7774 <p>Following the name of the configuration class, we put in three
7775 required functions and the configuration variables.
7777 <pre class=
"example"> int equivalent(MyPluginConfig
&that);
7778 void copy_from(MyPluginConfig
&that);
7779 void interpolate(MyPluginConfig
&prev,
7780 MyPluginConfig
&next,
7781 int64_t prev_position,
7782 int64_t next_position,
7783 int64_t current_position);
7793 <p>Now you must define the three functions.
<b>Equivalent
</b> is called by
7794 LOAD_CONFIGURATION_MACRO to get the return value. If equivalent
7795 returns
0, the load configuration function causes the GUI to redraw.
7796 If equivalent returns
1, the GUI doesn't redraw.
7798 <p>Then there's
<b>copy_from
</b> which transfers the configuration values
7799 from the argument to the local variables. This is once again used in
7800 LOAD_CONFIGURATION_MACRO to store configurations in temporaries. Once
7801 LOAD_CONFIGURATION_MACRO has replicated the configuration, it loads a
7802 second configuration. Then it interpolates the two configurations to
7803 get the current configuration. The interpolation function performs the
7804 interpolation and stores the result in the local variables.
7806 <p>Normally the interpolate function calculates a previous and next
7807 fraction, using the arguments.
7809 <pre class=
"example"> void MyPluginConfig::interpolate(MyPluginConfig
&prev,
7810 MyPluginConfig
&next,
7811 int64_t prev_position,
7812 int64_t next_position,
7813 int64_t current_position)
7815 double next_scale = (double)(current_position - prev_position) / (next_position - prev_position);
7816 double prev_scale = (double)(next_position - current_position) / (next_position - prev_position);
7818 <p>Then the scales are applied to the previous and next configuration
7819 object to yield the current values.
7821 <pre class=
"example">
7822 this-
>parameter1 = (float)(prev.parameter1 * prev_scale + next.parameter1 * next_scale);
7823 this-
>parameter2 = (float)(prev.parameter2 * prev_scale + next.parameter2 * next_scale);
7824 this-
>parameter3 = (int)(prev.parameter3 * prev_scale + next.parameter3 * next_scale);
7828 <p>Alternatively you can copy the values from the previous configuration
7829 argument for no interpolation.
7831 <p>This usage is the same in audio and video plugins. In video playback,
7832 the interpolation function is called for every frame, yielding smooth
7833 interpolation. In audio playback, the interpolation function is called
7834 only once for every console fragment and once every time the insertion
7835 point moves. This is good enough for updating the GUI while selecting
7836 regions on the timeline but it may not be accurate enough for really
7837 smooth rendering of the effect.
7839 <p>For really smooth rendering of audio, you can still use
7840 load_configuration when updating the GUI. For process_realtime;
7841 however, ignore load_configuration and write your own interpolation
7842 routine which loads all the keyframes in a console fragment and
7843 interpolates every sample. This would be really slow and hard to
7844 debug, yielding improvement which may not be audible. Then of course,
7845 every century has its set of wierdos.
7847 <p>An easier way to get smoother interpolation is to reduce the console
7848 fragment to
1 sample. This would have to be rendered and played back
7849 in a separate program of course. The Linux sound driver can't play
7850 fragments of
1 sample.
7854 <a name=
"THE-USER-INTERFACE-OBJECT"></a>
7855 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#THE-CONFIGURATION-OBJECT">THE CONFIGURATION OBJECT
</a>,
7856 Up:
<a rel=
"up" accesskey=
"u" href=
"#COMMON-PLUGIN-FUNCTIONS">COMMON PLUGIN FUNCTIONS
</a>
7860 <h4 class=
"subsection">18.2.3 THE USER INTERFACE OBJECT
</h4>
7862 <p>The user interface object at the very least consists of a pointer to a
7863 window and pointers to all the widgets in the window. Using
7864 Cinelerra's toolkit, it consists of a
<b>BCWindow
</b> derivative and a
7865 <b>Thread
</b> derivative. The Thread derivative is declared in the plugin
7868 <pre class=
"example"> PLUGIN_THREAD_HEADER(plugin_class, thread_class, window_class)
7870 <p>Then it is defined using
7872 <pre class=
"example"> PLUGIN_THREAD_OBJECT(plugin_class, thread_class, window_class)
7874 <p>This, in combination with the SHOW_GUI macro does all the work in
7875 instantiating the Window. This two class system is used in realtime
7876 plugins but not in nonrealtime plugins. Nonrealtime plugins create and
7877 destroy their GUI in their
<b>get_parameters
</b> function and there's no
7880 <p>Now the window class must be declared in the plugin header. It's
7881 easiest to implement the window by copying an existing plugin and
7882 renaming the symbols. The following is an outline of what happens.
7883 The plugin header must declare the window's constructor using the
7884 appropriate arguments.
7886 <pre class=
"example">
7887 #include
"guicast.h"
7889 class MyPluginWindow : public BC_Window
7892 MyPluginWindow(MyPluginMain *plugin, int x, int y);
7895 <p>This becomes a window on the screen, positioned at x and y.
7897 <p>It needs two methods
7899 <pre class=
"example"> int create_objects();
7902 <p>and a back pointer to the plugin
7904 <pre class=
"example"> MyPlugin *plugin;
7906 <p>The constructor's definition should contain extents and flags causing
7907 the window to be hidden when first created. The create_objects member
7908 puts widgets in the window according to GuiCast's syntax. A pointer to
7909 each widget which you want to synchronize to a configuration parameter
7910 is stored in the window class. These are updated in the
<b>update_gui
</b>
7911 function you earlier defined for the plugin. The widgets are usually
7912 derivatives of a GuiCast widget and they override functions in GuiCast
7913 to handle events. Finally create_objects calls
7915 <pre class=
"example"> show_window();
7918 <p>to make the window appear all at once.
7920 <p>The close_event member should be implemented using
7922 <pre class=
"example"> WINDOW_CLOSE_EVENT(window_class)
7924 <p>Every widget in the GUI needs to detect when its value changes. In
7925 GuiCast the
<b>handle_event
</b> method is called whenever the value
7926 changes. In
<b>handle_event
</b>, the widget then needs to call
7927 <b>plugin-
>send_configure_change()
</b> to propogate the change to any
7928 copies of the plugin which are processing data.
7932 <a name=
"REALTIME-PLUGINS"></a>
7933 Next:
<a rel=
"next" accesskey=
"n" href=
"#NONREALTIME-PLUGINS">NONREALTIME PLUGINS
</a>,
7934 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#COMMON-PLUGIN-FUNCTIONS">COMMON PLUGIN FUNCTIONS
</a>,
7935 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
7939 <h3 class=
"section">18.3 REALTIME PLUGINS
</h3>
7941 <p>Realtime plugins should use PLUGIN_CLASS_MEMBERS to define the basic
7942 set of members in their headers. All realtime plugins must define an
7944 <pre class=
"example"> int is_realtime()
7946 <p>member returning
1. This causes a number of methods to be called
7947 during live playback and the plugin to be usable on the timeline.
7949 <p>Realtime plugins must override a member called
7951 <pre class=
"example"> process_buffer
7953 <p>This function takes different arguments depending on if the plugin
7954 handles video or audio. See an existing plugin to find out which usage
7957 <p>The main features of the process_buffer function are a buffer to store
7958 the output, the starting position of the output, and the requested
7959 output rate. For audio, there's also a size argument for the number of
7962 <p>The starting position of the output buffer is the lowest numbered
7963 sample on the timeline if playback is forward and the highest numbered
7964 sample on the timeline if playback is reverse. The direction of
7965 playback is determined by one of the plugin queries described below.
7967 <p>The position and size arguments are all relative to the frame rate and
7968 sample rate passed to process_buffer. This is the requested data rate
7969 and may not be the same as the project data rate.
7971 <p>The process_realtime function should start by calling
7972 <b>load_configuration
</b>. The LOAD_CONFIGURATION_MACRO returns
1 if the
7973 configuration changed.
7975 <p>After determining the plugin's configuration, input media has to be
7976 loaded for processing. Call
7978 <pre class=
"example"> read_frame(VFrame *buffer,
7980 int64_t start_position,
7985 <pre class=
"example"> read_samples(double *buffer,
7988 int64_t start_position,
7991 <p>to request input data from the object which comes before this plugin.
7992 The read function needs a buffer to store the input data in. This can
7993 either be a temporary you create in the plugin or the output buffer
7994 supplied to process_buffer if you don't need a temporary.
7996 <p>It also needs a set of position arguments to determine when you want to
7997 read the data from. The start position, rate, and len passed to a read
7998 function need not be the same as the values recieved by the
7999 process_buffer function. This way plugins can read data at a different
8000 rate than they output data.
8002 <p>The channel argument is only meaningful if this is a multichannel
8003 plugin. They need to read data for each track in the
8004 get_total_buffers() value and process all the tracks. Single channel
8005 plugins should pass
0 for channel.
8007 <p>Additional members are implemented to maintain configuration in
8008 realtime plugins. Some of these are also needed in nonrealtime
8012 <li>void read_data(KeyFrame *keyframe);
8014 <p>Loads data from a keyframe into the plugin's configuration. Inside the
8015 keyframe is an XML string. It's most easily parsed by creating a
8016 <b>FileXML
</b> object. See an existing plugin to see how the read_data
8017 function is implemented.
8019 <p>Read data loads data out of the XML object and stores values in the
8020 plugin's configuration object. Since configuration objects vary from
8021 plugin to plugin, these functions can't be automated.
8023 <li>void save_data(KeyFrame *keyframe);
8025 <p>Saves data from the plugin's configuration to a keyframe. Inside the
8026 keyframe you'll put an XML string which is normally created by a
8027 FileXML object. See an existing plugin to see how the save_data
8028 function is implemented.
8030 <p>Save data saves data from the plugin's configuration object into the
8033 <li>int load_defaults();
8035 <p>Another way the plugin gets parameters is from a defaults file. The
8036 load and save defaults routines use a Defaults object to parse the
8037 defaults file. The defaults object is created in
<b>load_defaults
</b> and
8038 destroyed in the plugin's destructor. See an existing plugin to see
8039 how the Defaults object is used.
8041 <li>int save_defaults();
8043 <p>Saves the configuration in the defaults object.
8049 <a name=
"NONREALTIME-PLUGINS"></a>
8050 Next:
<a rel=
"next" accesskey=
"n" href=
"#AUDIO-PLUGINS">AUDIO PLUGINS
</a>,
8051 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#REALTIME-PLUGINS">REALTIME PLUGINS
</a>,
8052 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
8056 <h3 class=
"section">18.4 NONREALTIME PLUGINS
</h3>
8058 <p>Some references for non-realtime plugins are
<b>Normalize
</b> for audio
8059 and
<b>Reframe
</b> for video.
8061 <p>Like realtime plugins,
<b>load_defaults
</b> and
<b>save_defaults
</b> must be
8062 implemented. In nonrealtime plugins, these are not just used for
8063 default parameters but to transfer values from the user interface to
8064 the signal processor. There doesn't need to be a configuration class
8065 in nonrealtime plugins.
8067 <p>Unlike realtime plugins, the LOAD_CONFIGURATION_MACRO can't be used in
8068 the plugin header. Instead, the following methods must be defined.
8070 <p>The nonrealtime plugin should contain a pointer to a defaults object.
8072 <pre class=
"example">
8076 <p>It should also have a pointer to a MainProgressBar.
8078 <pre class=
"example">
8079 MainProgressBar *progress;
8081 <p>The progress pointer allows nonrealtime plugins to display their
8082 progress in Cinelerra's main window.
8084 <p>The constructor for a nonrealtime plugin can't use
8085 PLUGIN_CONSTRUCTOR_MACRO but must call
<b>load_defaults
</b> directly.
8087 <p>The destructor, likewise, must call
<b>save_defaults
</b> and
<b>delete
8088 defaults
</b> directly instead of PLUGIN_DESTRUCTOR_MACRO.
8091 <li>VFrame* new_picon();
8093 <p>char* plugin_title();
8095 <p>The usage of these is the same as realtime plugins.
8097 <li>int is_realtime();
8099 <p>This function must return
0 to indicate a nonrealtime plugin.
8102 int get_parameters();
8104 <p>Here, the user should create a GUI, wait for the user to hit an OK
8105 button or a cancel button, and store the parameters in plugin
8106 variables. This routine must return
0 for success and
1 for failure.
8107 This way the user can cancel the effect from the GUI.
8109 <p>Unlike the realtime plugin, this GUI need not run asynchronously of the
8110 plugin. It should block the get_parameters function until the user
8111 selects OK or Cancel.
8113 <li>int load_defaults();
8115 <p>This should create a defaults object and load parameters from the
8116 defaults object into plugin variables.
8118 <li>int save_defaults();
8120 <p>This should save plugin variables to the defaults object.
8122 <li>int start_loop();
8124 <p>If
<b>get_parameters
</b> returned
0 for success, this is called once to
8125 give the plugin a chance to initialize processing. The plugin should
8126 instantiate the progress object with a line like
8128 <pre class=
"example">
8129 progress = start_progress(
"MyPlugin progress...",
8130 PluginClient::get_total_len());
8133 <p>The usage of
<b>start_progress
</b> depends on whether the plugin is
8134 multichannel or single channel. If it's multichannel you always call
8135 start_progress. If it's single channel, you first need to know whether
8136 the progress bar has already started in another instance of the plugin.
8138 <p>If
<b>PluginClient::interactive
</b> is
1, you need to start the progress
8139 bar. If it's
0, the progress bar has already been started.
8141 <p>The PluginClient defines
<b>get_total_len()
</b> and
<b>get_source_start()
</b>
8142 to describe the timeline range to be processed. The units are either
8143 samples or frames and in the project rate.
8145 <li>int process_loop
8147 <p>This is called repeatedly until the timeline range is processed. It
8148 has either a samples or frames buffer for output and a reference to
8149 write_length to store the number of samples processed. If this is an
8150 audio plugin, the user needs to call
<b>get_buffer_size()
</b> to know how
8151 many samples the output buffer can hold.
8153 <p>The plugin must use
<b>read_samples
</b> or
<b>read_frame
</b> to read the
8154 input. These functions are a bit different for a non realtime plugin
8155 than they are for a realtime plugin.
8157 <p>They take a buffer and a position relative to the start of the
8158 timeline, in the timeline's rate. Then you must process it and put the
8159 output in the buffer argument to process_loop. write_length should
8160 contain the number of samples generated if it's audio.
8162 <p>Finally, process_loop must test
<b>PluginClient::interactive
</b> and
8163 update the progress bar if it's
1.
8165 <pre class=
"example"> progress-
>update(total_written);
8167 <p>returns
1 or
0 if the progress bar was cancelled. If it's
1,
8168 process_loop should return
1 to indicate a cancellation. In addition
8169 to progress bar cancellation,
<b>process_loop
</b> should return
1 when the
8170 entire timeline range is processed.
8172 <li>int stop_loop();
8174 <p>This is called after process_loop processes its last buffer.
8176 <p>If PluginClient::is_interactive is
1, this should call
8177 <b>stop_progress
</b> in the progress bar pointer and delete the pointer.
8178 Then it should delete any objects it created for processing in
8185 <a name=
"AUDIO-PLUGINS"></a>
8186 Next:
<a rel=
"next" accesskey=
"n" href=
"#VIDEO-PLUGINS">VIDEO PLUGINS
</a>,
8187 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#NONREALTIME-PLUGINS">NONREALTIME PLUGINS
</a>,
8188 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
8192 <h3 class=
"section">18.5 AUDIO PLUGINS
</h3>
8194 <p>The simplest audio plugin is Gain. The processing object should
8195 include
<b>pluginaclient.h
</b> and inherit from
<b>PluginAClient
</b>. Realtime audio plugins need to
8198 <pre class=
"example"> int process_buffer(int64_t size,
8200 int64_t start_position,
8203 <p>if it's multichannel or
8205 <pre class=
"example"> int process_buffer(int64_t size,
8207 int64_t start_position,
8210 <p>if it's single channel. These should return
0 on success and
1 on
8211 failure. In the future, the return value may abort failed rendering.
8213 <p>The processing function needs to request input samples with
8215 <pre class=
"example"> int read_samples(double *buffer,
8218 int64_t start_position,
8221 <p>It always returns
0. The user may specify any desired sample rate and
8224 <p>Nonrealtime audio plugins need to define
8226 <pre class=
"example"> int process_loop(double *buffer, int64_t
&write_length);
8228 <p>for single channel or
8230 <pre class=
"example"> int process_loop(double **buffers, int64_t
&write_length);
8232 <p>for multi channel. Non realtime plugins use a different set of
8233 read_samples functions to request input data. These are fixed to the
8234 project sample rate.
8238 <a name=
"VIDEO-PLUGINS"></a>
8239 Next:
<a rel=
"next" accesskey=
"n" href=
"#TRANSITION-PLUGINS">TRANSITION PLUGINS
</a>,
8240 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#AUDIO-PLUGINS">AUDIO PLUGINS
</a>,
8241 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
8245 <h3 class=
"section">18.6 VIDEO PLUGINS
</h3>
8247 <p>The simplest video plugin is Flip. The processing object should
8248 include
<b>pluginvclient.h
</b> and inherit from
<b>PluginVClient
</b>.
8249 Realtime video plugins need to define
8251 <pre class=
"example"> int process_buffer(VFrame **frame,
8252 int64_t start_position,
8255 <p>if it's multichannel or
8257 <pre class=
"example"> int process_buffer(VFrame *frame,
8258 int64_t start_position,
8261 <p>if it's single channel.
8263 <p>The nonrealtime video plugins need to define
8265 <pre class=
"example"> int process_loop(VFrame *buffer);
8267 <p>for single channel or
8269 <pre class=
"example"> int process_loop(VFrame **buffers);
8271 <p>for multi channel. The amount of frames generated in a single
8272 process_loop is always assumed to be
1, hence the lack of a
8273 write_length argument. Returning
0 causes the rendering to continue.
8274 Returning
1 causes the rendering to abort.
8276 <p>A set of read_frame functions exist for requesting input frames in
8277 non-realtime video plugins. These are fixed to the project frame rate.
8281 <a name=
"TRANSITION-PLUGINS"></a>
8282 Next:
<a rel=
"next" accesskey=
"n" href=
"#PLUGIN-GUI_0027S-WHICH-UPDATE-DURING-PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>,
8283 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#VIDEO-PLUGINS">VIDEO PLUGINS
</a>,
8284 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
8288 <h3 class=
"section">18.7 TRANSITION PLUGINS
</h3>
8290 <p>The simplest video transition is
<b>wipe
</b> and the simplest audio
8291 transition is
<b>crossfade
</b>. These use a subset of the default class
8292 members of realtime plugins, but so far no analogue to
8293 PLUGIN_CLASS_MEMBERS has been done for transitions.
8295 <p>The processing object for audio transitions still inherits from
8296 PluginAClient and for video transitions it still inherits from
8299 <p>Transitions may or may not have a GUI. If they have a GUI, they must
8300 also manage a thread like realtime plugins. Do this with the same
8301 PLUGIN_THREAD_OBJECT and PLUGIN_THREAD_HEADER macros as realtime
8302 plugins. Since there is only one keyframe in a transition, you don't
8303 need to worry about updating the GUI from the processing object like
8304 you do in a realtime plugin.
8306 <p>If the transition has a GUI, you can use PLUGIN_CONSTRUCTOR_MACRO and
8307 PLUGIN_DESTRUCTOR_MACRO to initialize the processing object. You'll
8308 also need a Defaults object and a Thread object for these macros.
8310 <p>Since the GUI is optional, overwrite a function called
<b>uses_gui()
</b>
8311 to signifiy whether or not the transition has a GUI. Return
1 if it
8312 does and
0 if it doesn't.
8314 <p>Transitions need a
<b>load_defaults
</b> and
<b>save_defaults
</b> function so
8315 the first time they're dropped on the timeline they'll have useful
8318 <p>A
<b>read_data
</b> and
<b>save_data
</b> function takes over after insertion
8319 to access data specific to each instance of the transition.
8321 <p>The most important difference between transitions and realtime plugins
8322 is the addition of an
<b>is_transition
</b> method to the processing
8323 object.
<b>is_transition
</b> should return
1 to signify the plugin is a
8326 <p>Transitions process data in a
<b>process_realtime
</b> function.
8328 <pre class=
"example"> int process_realtime(VFrame *input,
8331 <pre class=
"example"> int process_realtime(int64_t size,
8333 double *output_ptr);
8335 <p>The input argument to process_realtime is the data for the next edit.
8336 The output argument to process_realtime is the data for the previous
8339 <p>Routines exist for determining where you are relative to the
8340 transition's start and end.
8343 <li><b>PluginClient::get_source_position()
</b> - returns the current
8344 position since the start of the transition of the lowest sample in the
8347 <li><b>PluginClient::get_total_len()
</b> - returns the integer length of
8348 the transition. The units are either samples or frames, in the data
8349 rate requested by the first plugin.
8353 <p>Users should divide the source position by total length to get the
8354 fraction of the transition the current
<b>process_realtime
</b> function is
8357 <p>Transitions run in the data rate requested by the first plugin in the
8358 track. This may be different than the project data rate. Since
8359 process_realtime lacks a rate argument, use
<b>get_framerate()
</b> or
8360 <b>get_samplerate
</b> to get the requested rate.
8364 <a name=
"PLUGIN-GUI'S-WHICH-UPDATE-DURING-PLAYBACK"></a>
8365 <a name=
"PLUGIN-GUI_0027S-WHICH-UPDATE-DURING-PLAYBACK"></a>
8366 Next:
<a rel=
"next" accesskey=
"n" href=
"#PLUGIN-QUERIES">PLUGIN QUERIES
</a>,
8367 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#TRANSITION-PLUGINS">TRANSITION PLUGINS
</a>,
8368 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
8372 <h3 class=
"section">18.8 PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</h3>
8374 <p>Effects like
<b>Histogram
</b> and
<b>VideoScope
</b> need to update the GUI
8375 during playback to display information about the signal. This is
8376 achieved with the
<b>send_render_gui
</b> and
<b>render_gui
</b> methods.
8377 Normally in process_buffer, when the processing object wants to update
8378 the GUI it should call
<b>send_render_gui
</b>. This should only be called
8379 in process_buffer. Send_render_gui goes through a search and
8380 eventually calls
<b>render_gui
</b> in the GUI instance of the plugin.
8382 <p>Render_gui should have a sequence like
8384 <pre class=
"example"> void MyPlugin::render_gui(void *data)
8388 thread-
>window-
>lock_window();
8392 thread-
>window-
>unlock_window();
8397 <p>Send_render_gui and render_gui use one argument, a void pointer to
8398 transfer information from the processing object to the GUI. The user
8399 should typecast this pointer into something useful.
8403 <a name=
"PLUGIN-QUERIES"></a>
8404 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PLUGIN-GUI_0027S-WHICH-UPDATE-DURING-PLAYBACK">PLUGIN GUI'S WHICH UPDATE DURING PLAYBACK
</a>,
8405 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>
8409 <h3 class=
"section">18.9 PLUGIN QUERIES
</h3>
8411 <p>There are several useful queries in PluginClient which can be accessed
8412 from the processing object. Some of them have different meaning in
8413 realtime and non-realtime mode. They all give information about the
8414 operating system or the project which can be used to improve the
8415 quality of the processing.
8418 <li><a accesskey=
"1" href=
"#SYSTEM-QUERIES">SYSTEM QUERIES
</a>: Utilities for determining the system resources.
8419 <li><a accesskey=
"2" href=
"#TIMING-QUERIES">TIMING QUERIES
</a>: Utilities for performing time-dependant processing.
8424 <a name=
"SYSTEM-QUERIES"></a>
8425 Next:
<a rel=
"next" accesskey=
"n" href=
"#TIMING-QUERIES">TIMING QUERIES
</a>,
8426 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-QUERIES">PLUGIN QUERIES
</a>
8430 <h4 class=
"subsection">18.9.1 SYSTEM QUERIES
</h4>
8434 <b>get_interpolation_type()
</b> returns the type of interpolation the user
8435 wants for all scaling operations. This is a macro from
8436 overlayframe.inc. It can be applied to any call to the
8437 <b>OverlayFrame
</b> object.
8440 <b>get_project_smp()
</b> Gives the number of CPU's on the system minus
1.
8441 If it's a uniprocessor it's
0. If it's a dual processor, it's
1. This
8442 number should be used to gain parallelism.
8445 <b>get_total_buffers()
</b> Gives the number of tracks a multichannel
8446 plugin needs to process.
8452 <a name=
"TIMING-QUERIES"></a>
8453 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#SYSTEM-QUERIES">SYSTEM QUERIES
</a>,
8454 Up:
<a rel=
"up" accesskey=
"u" href=
"#PLUGIN-QUERIES">PLUGIN QUERIES
</a>
8458 <h4 class=
"subsection">18.9.2 TIMING QUERIES
</h4>
8460 <p>There are two rates for media a realtime plugin has to be aware of: the
8461 project rate and the requested rate. Functions are provided for
8462 getting the project and requested rate. In addition, doing time
8463 dependant effects requires using several functions which tell where you
8468 <b>get_project_framerate()
</b> Gives the frames per second of the video as
8469 defined by the project settings.
8472 <b>get_project_samplerate()
</b> Gives the samples per second of the audio as
8473 defined by the project settings.
8476 <b>get_framerate()
</b> Gives the frames per second requested by the plugin
8477 after this one. This is the requested frame rate and is the same as
8478 the frame_rate argument to process_buffer.
8481 <b>get_samplerate()
</b> Gives the samples per second requested by the plugin
8482 after this one. This is the requested sample rate and is the same as
8483 the sample_rate argument to process_buffer.
8486 <b>get_total_len()
</b> Gives the number of samples or frames in the
8487 range covered by the effect, relative to the requested data rate.
8490 <b>get_source_start()
</b> For realtime plugins it gives the lowest sample
8491 or frame in the effect range in the requested data rate. For
8492 nonrealtime plugins it's the start of the range of the timeline to
8496 <b>get_source_position()
</b> For realtime plugins it's the lowest numbered
8497 sample in the requested region to process if playing forward and the
8498 highest numbered sample in the region if playing backward. For video
8499 it's the start of the frame if playing forward and the end of the frame
8500 if playing in reverse. The position is relative to the start of the
8501 EDL and in the requested data rate.
8503 <p>For transitions this is always the lowest numbered sample of the region
8504 to process relative to the start of the transition.
8507 <b>get_direction()
</b> Gives the direction of the current playback
8508 operation. This is a macro defined in transportque.inc. This is
8509 useful for calling read functions since the read functions position
8510 themselves at the start or end of the region to read, depending on the
8514 <b>local_to_edl()
</b>
8517 <b>edl_to_local()
</b>
8519 <p>These convert between the requested data rate and the project data
8520 rate. They are used to convert keyframe positions into numbers which
8521 can be interpolated at the requested data rate. The conversion is
8522 automatically based on frame rate or sample rate depending on the type
8525 <li><b>get_prev_keyframe(int64_t position, int is_local)
</b>
8527 <li><b>get_next_keyframe(int64_t position, int is_local)
</b>
8529 <p>These give the nearest keyframe before or after the position given.
8530 The macro defined version of load_configuration automatically retrieves
8531 the right keyframes but you may want to do this on your own.
8533 <p>The position argument can be either in the project rate or the
8534 requested rate. Set is_local to
1 if it's in the requested rate and
0
8535 if it's in the project rate.
8537 <p>In each keyframe, another position value tells the keyframe's position
8538 relative to the start of the timeline and in the project rate.
8540 <p>The only way to get smooth interpolation between keyframes is to
8541 convert the positions in the keyframe objects to the requested rate.
8542 Do this by using edl_to_local on the keyframe positions.
8548 <a name=
"KEYBOARD-SHORTCUTS"></a>
8549 Previous:
<a rel=
"previous" accesskey=
"p" href=
"#PLUGIN-AUTHORING">PLUGIN AUTHORING
</a>,
8550 Up:
<a rel=
"up" accesskey=
"u" href=
"#Top">Top
</a>
8554 <h2 class=
"chapter">19 KEYBOARD SHORTCUTS
</h2>
8556 <p>Alex Ferrer started summarizing most of the keyboard shortcuts. Most
8557 of the keys work without any modifier like shift or ctrl. Most windows
8558 can be closed with a
<b>Ctrl-w
</b>. Most operations can be cancelled with
8559 <b>ESC
</b> and accepted with
<b>Enter
</b>.
8561 <h3 class=
"section">19.1 PROGRAM WINDOW
</h3>
8563 <h4 class=
"subsection">19.1.1 Editing Media
</h4>
8565 <pre class=
"example"> z Undo
8571 Shift Spc Paste Silence
8574 shift + click When done over an edit causes the highlighted selection to extend to the cursor position.
8575 When done over the boundary of an effect causes the trim operation to apply to one effect.
8577 <h4 class=
"subsection">19.1.2 Editing Labels
& In/Out Points
</h4>
8579 <pre class=
"example"> [ Toggle In point
8581 l Toggle label at current position
8582 Ctrl
<- Go to Previous Label
8583 Ctrl -
> Go to Next Label
8584 f Fit time displayed to selection
8585 Alt f Fit curve amplitude to highlighted section of curves
8587 <h4 class=
"subsection">19.1.3 Navigation
</h4>
8589 <pre class=
"example"> Right arrow Move right*
8590 Left arrow Move left*
8593 Ctrl Up Expand waveform amplitude
8594 Ctrl Dn Shrink waveform amplitude
8595 Alt Up Expand curve amplitude
8596 Alt Dn Shrink curve amplitude
8599 Ctrl Page Up Expand track height
8600 Ctrl Page Dn Shrink track height
8601 Home Go to beginning of timeline*
8602 End Go to end of timeline*
8605 <p>* You may have to click on the timeline to deactivate any text boxes or
8606 tumblers before these work.
8608 <h4 class=
"subsection">19.1.4 File operations
</h4>
8610 <pre class=
"example"> n New project
8617 Shift B Batch Render
8620 <h4 class=
"subsection">19.1.5 Key Frame Editing
</h4>
8622 <pre class=
"example">
8623 Shift X Cut keyframes
8624 Shift C Copy keyframes
8625 Shift V Paste keyframes
8626 Shift Del Clear keyframes
8627 Alt c Copy default keyframe
8628 Alt v Paste default keyframe
8631 <h4 class=
"subsection">19.1.6 Track Manipulation
</h4>
8633 <pre class=
"example">
8635 u Insert default Audio Transition
8636 Shift T Add Video Track
8637 Shift U Insert Default Video Transition
8639 Shift L Loop playback
8640 Tab Toggle single track arming status
8641 Shift-Tab Toggle every other track's arming status
8644 <h4 class=
"subsection">19.1.7 What's drawn on the timeline
</h4>
8646 <pre class=
"example">
8654 8 Projector keyframes
8661 <h3 class=
"section">19.2 VIEWER
& COMPOSITOR WINDOWS
</h3>
8663 <pre class=
"example">
8671 l Toggle label at current position
8672 Ctrl
<- Go to Previous Label
8673 Ctrl -
> Go to Next Label
8674 Home Go to beginning
8682 <h3 class=
"section">19.3 PLAYBACK TRANSPORT
</h3>
8684 <p>Transport controls work in any window which has a playback transport. They are
8685 accessed through the number pad with num lock disabled.
8687 <pre class=
"example"> 4 Frame back
5 Reverse Slow
6 Reverse + Reverse Fast
8688 1 Frame Forward
2 Forward Slow
3 Play Enter Fast Forward
8692 <p>[ Space bar ] is normal Play, Hitting any key twice is Pause.
8694 <p>Hitting any transport control with CTRL down causes only the region
8695 between the in/out points to be played, if in/out points are defined.
8697 <h3 class=
"section">19.4 RECORD WINDOW
</h3>
8699 <pre class=
"example">
8700 Space Start and pause recording of the current batch
8701 l Toggle label at current position.