Next: , Up: (dir)

SECRETS OF CINELERRA

Version 4

by Adam Williams

Copyright © 2008

1 SHORT CONTENTS

Table of Contents


Next: , Previous: Top, Up: Top

2 ABOUT CINELERRA

BROADCAST 1.0

In 1996 our first editor came out: Broadcast 1.0. It was just a window with a waveform in it, it could cut and paste stereo audio waveforms on a UNIX box, except unlike other audio editors it could handle files up to 2 gigabytes with only 64 megs of RAM. That was a feature normally only accessible to the highest end professional audio houses.

BROADCAST 2.0

In 1997 Broadcast 1.0 was replaced by Broadcast 2.0. This time the window had a menubar, patchbay, console, and transport control. Broadcast 2.0 still only handled audio but this time it handled unlimited tracks, and it could perform effects on audio and save the resulting waveform to disk. More notably a few effects could be performed as the audio was playing back, in realtime. A user could mix unlimited numbers of tracks, adjust fade, pan, and EQ, and hear the result instantly. Amazingly this real time tweeking is still unavailable on most audio programs.

BROADCAST 2000

But Broadcast 2.0 still didn't handle video and it wasn't very graceful at audio either. In 1999 video broke into the story with Broadcast 2000. This iteration of the Broadcast series could do wonders with audio and offered a pretty good video feature set. It could edit video files up to 64 terabytes. It could do everything Broadcast 2.1 did with audio except now all effects for video and audio could be chained and performed on the fly, with instant feedback as a user tweeked parameters during playback. Broadcast 2000 made it very easy to do a lot of processing and editing on video and audio that would otherwise involve many hours setting up command line sequences and writing to disk. For a time it seemed as if the original dream of immersive movie making for everyone regardless of income level had arrived.

CINELERRA

Later on Broadcast 2000 began to come short. Its audio and video was graceful if you knew how to use it efficiently, but quality issues and new user interface techniques were emerging. Broadcast 2000 kept the audio interface from its ancestors, which didn't apply well to video. Users likewise were maturing. No longer would it be sufficient to just edit video on a UNIX box. Most users expected on UNIX the same thing they got in Win or Mac. In mid 2000 designs for a Broadcast 2000 replacement were drafted. The Broadcast name was officially retired from the series and the software would now be called Cinelerra. Cinelerra would allow users to configure certain effects in much less time than required with Broadcast 2000. It would begin to emulate some of the features found in Win and Mac software while not attempting to become a clone. It's interface would be designed for video from the ground up, while supplementing that with the Broadcast audio interface. As always, quality improvements would happen.

LINUX DERIVATIVES

Linux became more and more fragmented after corporations adopted it. Threading once worked the same on all derivatives. Today there are more threading models than days of the week. We try to focus on 1 of the most popular Linux derivatives at any moment. The threading model is ported to that Linux derivative shortly before a release, but Linux derivatives quickly evolve to new threading models and everything breaks.

Also, there is no consistent behaviour for sound and video drivers. The situation with video capture has improved in that modern video sources can all be mounted like disk drives. The audio capture drivers have been a bit more reliable.


Up: ABOUT CINELERRA

2.1 ABOUT THIS MANUAL

This is the original manual for Cinelerra. This manual has been copied and translated into many languages on many websites in varying degrees of completeness.

Organizing information in the easiest manner for users to find out what they need to know is sort of like cataloging the internet. They've been trying to get it right for 30 years and will probably keep trying until the end of time.

There a lot of fragments of documentation scattered throughout the internet about Cinelerra. This document attempts to combine all the pieces of information in one piece.

Like the operating system and compiler for a piece of software, the document writing format is the most important thing in choosing our document format. We wanted a format which would be readable regardless of corporate whims and fads. A piece of software which compiles on GCC and Linux will be usable as long as there are C compilers. Documents written in Texinfo will be readable as long as there's a C compiler.

After many years of searching for the perfect documentation format we've arrived at TexInfo. This format can be converted to HTML, printed, automatically indexed, but most importantly is not bound to any commercial word processor.

There are no screenshots in this manual. Screenshots become obsolete quickly and as a result confuse the users. What looks one way in a screenshot will always look different in the real program because the real program and the manual are always evolving, never perfectly synchronized. It is true that manuals should have screenshots, but our objective in omitting screenshots is to keep the software costs minimal so you don't have to pay for it. That includes additional labor to synchronize the manual with the software.

In addition to telling you the basic editing features of Cinelerra this manual covers tricks that won't be described anywhere else. We're going to try to come up with certain things you can do with Cinelerra that you wouldn't think of on your own.


Next: , Previous: ABOUT CINELERRA, Up: Top

3 INSTALLATION

The Cinelerra package contains Cinelerra and most of the libraries needed to run it. We try to include all the dependancies because of the difficulty in tracking down the right versions. Also included are some utilities for handling files. The following are the general contents of all Cinelerra packages.


Next: , Up: INSTALLATION

3.1 INSTALLING AN RPM

Cinelerra is easiest installed by downloading an RPM and running

     rpm -U --force --nodeps hvirtual*.rpm

on a Fedora 4 system.

On systems which don't support RPM look for a utility called rpm2cpio. Download a Cinelerra RPM and from the / directory run

     rpm2cpio hvirtual*.rpm | cpio -i --make-directories

This doesn't always work because there are many forks of the C library, each incompatible with the others. This is the biggest reason to compile from scratch.


Next: , Previous: INSTALLING AN RPM, Up: INSTALLATION

3.2 COMPILING FROM SCRATCH

It should be noted that the compiler used in building Cinelerra binaries is the free GNU compiler and very conservative optimization flags. Alternative optimization flags and compilers produce varying results. Compiling the source is hard and there's no warranty if the source code fails to compile, but the method for compiling starts by downloading the source code and decompressing.

The compilation is verified on a vanilla Fedora 4 installation, workstation mode. Fedora doesn't install a lot of dependancies like nasm and yasm. Yes, 3 assemblers are now required to assemble x86 code. Compiling the source is hard and there's no warranty if the source code fails to compile, but the method for compiling starts by downloading the source code and decompressing.

     tar jxf cinelerra*.tar.bz2

The compilation is verified on a Fedora 4 installation. Fedora 4 doesn't install a lot of the reqiured compilers. Mainly nasm and yasm, 2 of the 3 assemblers. These have to be installed manually for compilation to succeed.

Enter the hvirtual directory

     cd cinelerra

Then run

     ./configure

This checks the build environment for the right tools and should give you an error if a tool is missing. Once that succeeds run

     make

The make procedure should run through all the directories and put binaries in the i686 or x86_64 directories. When NFS was a lot faster, we compiled Alpha and i686 binaries in the same filesystem with the objects in different subdirectories, so all the binaries are still put in subdirectories.

A lot of libraries are included to get the version numbers right. Some of the libraries don't compile on SMP systems. One solution is to disable SMP when rebooting and reenable it when compilation is finished. Another solution is to rerun make over and over until it gets through the offending libraries.

Once finished, make sure you are root and run

     make install

to install the binaries. If installation fails it means something failed to compile or you weren't root. Run make again and watch for errors.

Sometimes you'll want to run make clean if you're programming something or the system libraries change. In this case, you'll probably need to run configure again because some libraries delete their configuration files in make clean.


Previous: COMPILING FROM SCRATCH, Up: INSTALLATION

3.3 RUNNING CINELERRA

The simplest way to run Cinelerra is by running

     /usr/bin/cinelerra

This command hides a much more capable command line interface. Run cinelerra -h to get a listing of command line options. The use of these options is described in several sections.

For rendering from the command line See RENDERING FILES.


Next: , Previous: INSTALLATION, Up: Top

4 CONFIGURATION

Because of the variety of uses, Cinelerra cannot be run optimally without some intimate configuration for your specific needs. Very few parameters are adjustible at compile time. Runtime configuration is the only option for most configuration because of the multitude of parameters.

Here we discuss not only the configuration options but which of the different API's in Linux are supported.

Go to settings->preferences and to see the options.


Next: , Up: CONFIGURATION

4.1 ENVIRONMENT VARIABLES

In UNIX derivatives, environment variables are global variables in the shell which all applications can read. They are set with a command like set VARIABLE=value. All the environment variables can be viewed with a command like env. Cinelerra recognizes the following environment variables:


Next: , Previous: ENVIRONMENT VARIABLES, Up: CONFIGURATION

4.2 AUDIO DRIVERS

The audio drivers are used for both recording and playback to get data to and from the hardware. Since the same drivers are used for both recording and playback, their functionality is described here in a separate section.


Next: , Up: AUDIO DRIVERS

4.2.1 COMMON SOUND DRIVER ATTRIBUTES


Next: , Previous: COMMON SOUND DRIVER ATTRIBUTES, Up: AUDIO DRIVERS

4.2.2 OSS

This was the first Linux sound driver. It had an open source implementation and a commercial implementation with more sound cards supported. It was the standard sound driver up to linux 2.4. It still is the only sound driver which an i386 binary can use when running on an x86_64 system.


Next: , Previous: OSS, Up: AUDIO DRIVERS

4.2.3 OSS Envy24

The commercial version of OSS had a variant for 24 bit 96 Khz soundcards. This variant required significant changes to the way the sound drivers were used, which is what the OSS Envy24 variant is for.


Next: , Previous: OSS Envy24, Up: AUDIO DRIVERS

4.2.4 ALSA

ALSA is the most common sound driver in Linux 2.6. It supports the most sound cards now. It takes advantage of low latency features in Linux 2.6 to get better performance than OSS had in 2.4 but roughly the same performance that OSS had in 2.0. Unfortunately ALSA is constantly changing. A program which works with it one day may not the next day. New wrappers are being developed on top of ALSA at such a pace, we plan to support them at regular intervals, not at every new release of a new wrapper.

ALSA is no longer portable between i386 and x86_64. If an i386 binary tries to play back on an x86_64 kernel it'll crash. For this scenario, use OSS.


Next: , Previous: ALSA, Up: AUDIO DRIVERS

4.2.5 ESOUND

ESOUND was a sound server that sat on top of OSS. It was written for a window manager called Enlightenment. It supported a limited number of bits and had high latency compared to modern times but multiplexed multiple audio sources. It's unknown whether it still works.


Next: , Previous: ESOUND, Up: AUDIO DRIVERS

4.2.6 RAW 1394

The first interface between linux software and firewire camcorders. This was the least reliable way to play audio to a camcorder. It consisted of a library on top of the kernel commands.


Next: , Previous: RAW 1394, Up: AUDIO DRIVERS

4.2.7 DV 1394

The second rewrite of DV camcorder support in Linux. This was the most reliable way to play audio to a camcorder. This consisted of direct kernel commands.


Previous: DV 1394, Up: AUDIO DRIVERS

4.2.8 IEC 61883

The third rewrite of DV camcorder support in Linux. This is a library on top of RAW 1394 which is a library on top of the kernel commands. It's less reliable than DV 1394 but more reliable than RAW 1394. The next rewrite ought to fix that.


Next: , Previous: AUDIO DRIVERS, Up: CONFIGURATION

4.3 VIDEO DRIVERS

The audio drivers are used for both recording and playback to get data to and from the hardware. Since the same drivers are used for both recording and playback, their functionality is described here in a separate section.


Next: , Up: VIDEO DRIVERS

4.3.1 COMMON VIDEO DRIVER ATTRIBUTES


Next: , Previous: COMMON VIDEO DRIVER ATTRIBUTES, Up: VIDEO DRIVERS

4.3.2 X11

This was the first method of video playback on any UNIX system, valid all the way until 1999. It just writes the RGB triplet for each pixel directly to the window. It's the slowest playback method. It's still useful as a fallback when graphics hardware can't handle very large frames.


Next: , Previous: X11, Up: VIDEO DRIVERS

4.3.3 X11-XV

This was the second big method of video playback in UNIX starting in 1999. It converts YUV to RGB in hardware with scaling. It's the preferred playback method but can't handle large frame sizes. The maximum video size for XV is usually 1920x1080.


Next: , Previous: X11-XV, Up: VIDEO DRIVERS

4.3.4 X11-OPENGL

The most powerful video playback method is OpenGL. With this driver, most effects are done in hardware. OpenGL allows video sizes up to the maximum texture size, which is usually larger than what XV supports, depending on the graphics driver.

OpenGL doesn't affect rendering. It just accelerates playback. OpenGL relies on PBuffers and shaders to do video rendering. The graphics driver must support OpenGL 2 and Cinelerra needs to be explicitely compiled with OpenGL 2 support. This requires compiling it on a system with the OpenGL 2 headers.

PBuffers are known to be fickle. If the graphics card doesn't have enough memory or doesn't have the right visuals, PBuffers won't work. Try seeking several frames or restarting Cinelerra if OpenGL doesn't work.

Because of OpenGL limitations, X11-OpenGL processes everything in 8 bit colormodels, although the difference between YUV and RGB is retained.

The scaling equation in Preferences is ignored by OpenGL. OpenGL always uses linear scaling.

Project and track sizes need to be multiples of 4 for OpenGL to work.

To get the most acceleration, OpenGL-enabled effects must be placed after software-only effects. All rendering before the last software-only effect is done in software. The core Cinelerra operations like camera and projector are of course OpenGL.


Next: , Previous: X11-OPENGL, Up: VIDEO DRIVERS

4.3.5 BUZ

This is a method for playing motion JPEG-A files directly to a composite analog signal. It uses a popular hack of the Video4Linux 1 driver from 2000 to decompress JPEG in hardware. Sadly, even though analog output is largely obsolete, newer drivers have replaced BUZ.


Next: , Previous: BUZ, Up: VIDEO DRIVERS

4.3.6 RAW 1394 VIDEO PLAYBACK

The first interface between linux software and firewire camcorders. This was the least reliable way to play video to a camcorder. It consisted of a library on top of the kernel commands.


Next: , Previous: RAW 1394 VIDEO PLAYBACK, Up: VIDEO DRIVERS

4.3.7 DV 1394 VIDEO PLAYBACK

The second rewrite of DV camcorder support in Linux. This was the most reliable way to play video to a camcorder. This consisted of direct kernel commands.


Previous: DV 1394 VIDEO PLAYBACK, Up: VIDEO DRIVERS

4.3.8 IEC 61883 VIDEO PLAYBACK

The third rewrite of DV camcorder support in Linux. This is a library on top of RAW 1394 which is a library on top of the kernel commands. It's less reliable than DV 1394 but more reliable than RAW 1394. The next rewrite ought to fix that.


Next: , Previous: VIDEO DRIVERS, Up: CONFIGURATION

4.4 PLAYBACK


Next: , Up: PLAYBACK

4.4.1 AUDIO OUT

These determine what happens when you play sound from the timeline.


Previous: AUDIO OUT, Up: PLAYBACK

4.4.2 VIDEO OUT

These determine how video gets from the timeline to your eyes.


Next: , Previous: PLAYBACK, Up: CONFIGURATION

4.5 RECORDING

The parameters here affect what happens when you go to File->Record.... The intention was to make File->Record... go as fast as possible into the record monitoring window, without a lengthy dialog to configure the file format. Instead the file format for recording is set here and it is applied to all recordings. Also set here is the hardware for recording, since the hardware determines the supported file format in most cases.


Next: , Up: RECORDING

4.5.1 FILE FORMAT

This determines the output file format for recordings. It depends heavily on the type of driver used. The interface is the same as the rendering interface. The Record audio tracks toggle must be enabled to record audio. The Record video tracks toggle must be enabled to record video. The wrench button left of each toggle opens a configuration dialog to set the codec corresponding to audio and video. The audio and video is wrapped in a wrapper defined by the File Format menu. Different wrappers may record audio only, video only, or both.

Some video drivers can only record to a certain wrapper. DV, for example, can only record to Quicktime with DV as the video compression. If the video driver is changed, the file format may be updated to give the supported output. If you change the file format to an unsupported format, it may not work with the video driver.


Next: , Previous: FILE FORMAT, Up: RECORDING

4.5.2 AUDIO IN

These determine what happens when you record audio.


Previous: AUDIO IN, Up: RECORDING

4.5.3 VIDEO IN

These determine what happens when you record video.


Next: , Previous: RECORDING, Up: CONFIGURATION

4.6 PERFORMANCE

You'll spend most of your time configuring this section. The main focus of performance is rendering parameters not available in the rendering dialog.


Next: , Up: PERFORMANCE

4.6.1 BACKGROUND RENDERING

Background rendering was originally concieved to allow HDTV effects to be displayed in realtime. Background rendering causes temporary output to constantly be rendered while the timeline is being modified. The temporary output is played during playack whenever possible. It's very useful for transitions and previewing effects which are too slow to display in a reasonable amount of time. If renderfarm is enabled, the renderfarm is used for background rendering, giving you the potential for realtime effects if enough network bandwidth and CPU nodes exist.


Previous: BACKGROUND RENDERING, Up: PERFORMANCE

4.6.2 RENDERFARM

To use the renderfarm set these options. Ignore them for a standalone system


Next: , Previous: PERFORMANCE, Up: CONFIGURATION

4.7 INTERFACE

These parameters affect purely how the user interface works.


Previous: INTERFACE, Up: CONFIGURATION

4.8 ABOUT

This section gives you information about the copyright, the time of the current build, the lack of a warranty, and the versions of some of the libraries. Be sure to agree to the terms of the lack of the warranty.


Next: , Previous: CONFIGURATION, Up: Top

5 CREATING A NEW PROJECT

There are 2 ways to create a new project: going to File->New or loading new files See LOADING FILES. Once a new project is created, all the parameters can be changed later without creating a new project.


Next: , Up: CREATING A NEW PROJECT

5.1 USING THE NEW PROJECT DIALOG

One way is to go to File->New. This dialog contains the parameters for the new project. The sections of the New dialog are described here:


Previous: USING THE NEW PROJECT DIALOG, Up: CREATING A NEW PROJECT

5.2 CHANGING PARAMETERS AFTER LOADING

After a project is created, you have to use the set format dialog to change parameters without deleting the project. Go to Settings->Set format.

Most of the options are identical to the File->New options except the lack of a number of tracks to create and the addition of audio channel locations.

This section is discussed in See SETTING PROJECT ATTRIBUTES.


Next: , Previous: CREATING A NEW PROJECT, Up: Top

6 THE MAIN WINDOWS

When Cinelerra first starts, you'll get four main windows. Hitting CTRL-w in any window closes it.


Next: , Up: THE MAIN WINDOWS

6.1 VIEWER

In here you'll scrub around source media and clips, selecting regions to paste into the project. Operations done in the viewer affect a temporary EDL or a clip but not the timeline.


Next: , Previous: VIEWER, Up: THE MAIN WINDOWS

6.2 COMPOSITOR

This window displays the output of the timeline. It's the interface for most compositing operations or operations that affect the appearance of the timeline output. Operations done in the Compositor affect the timeline but don't affect clips.

The video output has several navigation functions. The video output size is either locked to the window size or unlocked with scrollbars for navigation. The video output can be zoomed in and out and panned. Navigating the video output this way doesn't affect the rendered output, it just changes the point of view in the compositor window.

If it is unlocked from the window size, middle clicking and dragging anywhere in the video pans the point of view.

Hitting the + and - keys zooms in and out of the video output.

Underneath the video output are copies of many of the functions available in the main window. In addition there is a cwindow_zoom.png zoom menu and a cwindow_light.png tally light.

The zoom menu jumps to all the possible zoom settings and, through the Auto option, locks the video to the window size. The zoom menu does not affect the window size.

The tally light turns red when rendering is happening. This is useful for knowing if the output is current.

Right clicking anywhere in the video output brings up a menu with all the zoom levels and some other options. In this particular case the zoom levels resize the entire window and not just the video.

The reset camera and reset projector options center the camera and projector See COMPOSITING.

The Hide controls option hides everything except the video.

On the left of the video output is a toolbar specific to the compositor window. Here are the functions in the toolbar:


Next: , Up: COMPOSITOR

6.2.1 PROTECT VIDEO

protect.png

This disables changes to the compositor output from clicks in it. It is an extra layer on top of the track arming toggle to prevent unwanted changes.


Next: , Previous: PROTECT VIDEO, Up: COMPOSITOR

6.2.2 MAGNIFYING GLASS

magnify.png

This zooms in and out of the compositor output without resizing the window. If the video output is currently locked to the size of the window, clicking in it with the magnifying glass unlocks it and creates scrollbars for navigation.

Left clicking in the video zooms in.

Ctrl clicking in the video zooms out.

Rotating the wheel on a wheel mouse zooms in and out.


Next: , Previous: MAGNIFYING GLASS, Up: COMPOSITOR

6.2.3 MASKS TOOL

mask.png

This brings up the mask editing tool See MASKS. Enable the toolwindow.png tool window to see options for this tool.


Next: , Previous: MASKS TOOL, Up: COMPOSITOR

6.2.4 CAMERA

camera.png

This brings up the camera editing tool See THE CAMERA AND PROJECTOR. Enable the toolwindow.png tool window to see options for this tool.


Next: , Previous: CAMERA, Up: COMPOSITOR

6.2.5 PROJECTOR

projector.png

This brings up the projector editing tool See THE CAMERA AND PROJECTOR. Enable the toolwindow.png tool window to see options for this tool.


Next: , Previous: PROJECTOR, Up: COMPOSITOR

6.2.6 CROP TOOL

crop.png

This brings up the cropping tool See CROPPING. The toolwindow.png tool window must be enabled to use this tool.


Next: , Previous: CROP TOOL, Up: COMPOSITOR

6.2.7 EYEDROPPER

eyedrop.png

This brings up the eyedropper. The eyedropper detects whatever color is under it and stores it in a temporary area. Enabling the toolwindow.png tool info shows the currently selected color. Click anywhere in the video output to select the color at that point.

The eyedropper not only lets you see areas which are clipped, but its value can be applied to many effects. Different effects handle the eyedropper differently.


Next: , Previous: EYEDROPPER, Up: COMPOSITOR

6.2.8 TOOL INFO

toolwindow.png

This brings up a window containing options for the currently selected tool.


Previous: TOOL INFO, Up: COMPOSITOR

6.2.9 SAFE REGIONS TOOL

titlesafe.png

This draws the safe regions in the video output. This doesn't affect the rendered output See SAFE REGIONS.


Next: , Previous: COMPOSITOR, Up: THE MAIN WINDOWS

6.3 PROGRAM

This contains the timeline and the entry point for all menu driven operations. The timeline consists of a vertical stack of tracks with horizontal representation of time. This defines the output of rendering operations and what is saved when you save files. Left of the timeline is the patchbay which contains options affecting each track.

Under the Window menu you'll find options affecting the main windows. default positions repositions all the windows to a 4 screen editing configuration. On dual headed displays, the default positions operation fills only one monitor with windows.


Next: , Previous: PROGRAM, Up: THE MAIN WINDOWS

6.4 RESOURCES

Effects, transitions, clips, and assets are accessed here. Most of the resources are inserted into the project by dragging them out of the resource window. Management of resource allocation is also performed here.


Next: , Previous: RESOURCES, Up: THE MAIN WINDOWS

6.5 SOUND LEVEL METERS

An additional window, the levels window can be brought up from the Window menu. The levels window displays the output audio levels after all mixing is done.

Sound level meters appear in many locations. They can be toggled in the viewer and compositor windows with the show_meters.png level toggle. They appear in the patchbay when a track is expanded (See THE PATCHBAY.) They appear in the recording monitor when audio is being recorded.

The sound levels in the levels window, compositor, and viewer correspond to the final output levels before they are clipped to the soundcard range. In the record monitor they are the input values from the sound card. In the patchbay they are the sound levels for each track after all effects are processed and before downmixing for the output.

Most of the time, audio levels have numerical markings in DB but in the patchbay there isn't enough room.

The sound level is color coded as an extra means of determining the sound level. Even without numerical markings, the sound level color can distinguish between several ranges and overload. Look at the color codings in a meter with numerical markings to see what colors correspond to what sound level. Then for meters in the patchbay in expanded audio tracks, use the color codings to see if it's overloading.

Be aware that sound levels in Cinelerra can go above 0DB. This allows not only seeing if a track is overloading but how much information is being lost by the overloading. Overloading by less than 3DB is usually acceptable. While overloading is treated as positive numbers in Cinelerra, it is clipped to 0 when sent to a sound card or file.

The visible range of the sound level meters is configurable in settings->preferences->interface (See INTERFACE.)


Previous: SOUND LEVEL METERS, Up: THE MAIN WINDOWS

6.6 OTHER WINDOWS

The Overlays window can be brought up from the Window menu. This is a quick way to toggle what is drawn in the timeline. Every option in the View menu is available here.


Next: , Previous: THE MAIN WINDOWS, Up: Top

7 LOADING AND SAVING FILES


Next: , Up: LOADING AND SAVING FILES

7.1 SUPPORTED FILE FORMATS

Here are most of the supported file formats and notes regarding their compression. You may be able to load other formats not described here.

The format of the file affects what Cinelerra does with it. Edit decision lists replace the project settings. Formats which contain media but no edit decisions just add data to the tracks. If your project sample rate is 48khz and you load a sound file with 96khz, you'll still be playing it at 48khz. If you load an EDL file at 96khz and the current project sample rate is 48khz, you'll change it to 96khz.

Some file formats are very slow to display on the timeline. These usually have video which is highly compressed. Drawing highly compressed video picons can be very slow. Disable picon drawing for these files with the draw media toggle to speed up operations.


track_attributes.png Track attributes

Supported file formats are currently:


Next: , Up: SUPPORTED FILE FORMATS

7.1.1 QUICKTIME

Quicktime is not the standard for UNIX but we use it because it's well documented. All of the Quicktime movies on the internet are compressed. Cinelerra doesn't support most compressed Quicktime movies but does support some. If it crashes when loading a Quicktime movie, that means the format probably wasn't supported.

NOTES ON QUICKTIME ENCODING

Here are some notes regarding making Quicktime movies in Cinelerra:

Quicktime is a wrapper for 2 codecs, a video codec and an audio codec. The video and audio codecs are picked separately. The preferred encoding for Quicktime output is MPEG-4 Video and MPEG-4 Audio. This format plays in the commercial players for Windows and has good compression quality. For better compression, use H-264 Video. Unfortunately H-264 decoding is so slow it can't play very large frame sizes.

Cinelerra supports 2 nonstandard codecs: Dual MPEG-4 video and dual H.264 video. These won't play in anything but Cinelerra and XMovie. They are designed for movies where the frames have been divided into 2 fields, each field displayed sequentially. The dual codecs interleave 2 video streams to improve efficiency without requiring major changes to the player.


Next: , Previous: QUICKTIME, Up: SUPPORTED FILE FORMATS

7.1.2 MPEG-4 AUDIO

This is the same as Quicktime with MPEG-4 Audio as the audio codec.


Next: , Previous: MPEG-4 AUDIO, Up: SUPPORTED FILE FORMATS

7.1.3 IMAGE SEQUENCES

Rendering an image sequence is not the same as rendering a single image. When rendering an image sequence Cinelerra generates a table of contents file for the image sequence and makes a different image file for every timeline position. The table of contents can be loaded instead of the individual images to get better performance. To learn more about the different image formats supported in an image sequence, read about still images.


Next: , Previous: IMAGE SEQUENCES, Up: SUPPORTED FILE FORMATS

7.1.4 STILL IMAGES

Rendering a single image causes the image file to be overwritten for every timeline position. No table of contents is created. When loaded, the image takes up one frame in length and doesn't change the project attributes.

Several still image formats not normally found in other programs are described here.


Next: , Up: STILL IMAGES
7.1.4.1 OPEN EXR IMAGES

You may not know about Open EXR. This format stores floating point RGB images. It also supports a small amount of compression. Projects which render to EXR should be in a floating point color model to take advantage of it See SETTING PROJECT ATTRIBUTES. Several compression options are available for EXR.

Select Use Alpha if the project colormodel has an alpha channel and you want to retain it in the file. Otherwise the primary colors are multiplied by the alpha channel.


Previous: OPEN EXR IMAGES, Up: STILL IMAGES
7.1.4.2 RAW DIGITAL CAMERA IMAGES

RAW digital camera images are a special kind of image file which Cinelerra only imports. These must be processed in a floating point color space once they are on the timeline. Raw images from Canon cameras are the only ones tested. They need to have the Linearize effect applied to correct gamma. Because raw images take a long time to interpolate, they are usually viewed first in a proxy file and then touched up.

First apply the Linearize effect to a track of raw images and set it to automatic with 0.6 gamma. Then render the timeline to a Quicktime JPEG file. Append the Quicktime JPEG file in a new track and disable playback of the old track. Now the gamma corrected copy of each raw image can be previewed relatively fast in the same timeline position as the original image.


Next: , Previous: STILL IMAGES, Up: SUPPORTED FILE FORMATS

7.1.5 AVI

AVI with assorted audio and video codecs. Because AVI is so fragmented, your luck will vary.


Next: , Previous: AVI, Up: SUPPORTED FILE FORMATS

7.1.6 MPEG FILES CONTAINING VIDEO

MPEG files containing video can be loaded directly into Cinelerra. If the file is supported, a table of contents is built. If the file is unsupported, it usually crashes or shows very short tracks. Unfortunately, this method of loading MPEG files isn't good enough if you intend to use the files in a renderfarm.

To use MPEG files in a renderfarm you need to run mpeg3toc to generate a table of contents for the file, then load the table of contents. Mpeg3toc needs the absolute path of the MPEG file. If you don't use an absolute path, it assumes the MPEG file is in the same directory that Cinelerra is run from.

MPEG streams are structured into multiple tracks. Each track can be video or audio. Each audio track can have 1-6 channels. Cinelerra converts each channel of audio into a track.

NOTES ON MPEG VIDEO ENCODING

MPEG video encoding is done separately from MPEG audio encoding. In MPEG video there are 2 colormodels. The YUV 4:2:0 colormodel is encoded by a highly optimized version of mpeg2enc with presets for standard consumer electronics. In the process of optimizing mpeg2enc, they got rid of YUV 4:2:2 encoding. The YUV 4:2:2 colormodel is encoded by a less optimized version of mpeg2enc.

YUV 4:2:2 encoding was kept around because the NTSC version of DV video loses too much quality when transferred to YUV 4:2:0. This DV video must be transferred to YUV 4:2:2.

When encoding YUV 4:2:0, the bitrate parameter changes meaning depending on whether the bitrate or quantization is fixed. If the bitrate is fixed, it's the target bitrate. If the quantization is fixed, it's the maximum bitrate allowed. This is a quirk of the mpeg2enc version.


Next: , Previous: MPEG FILES CONTAINING VIDEO, Up: SUPPORTED FILE FORMATS

7.1.7 DVD MOVIES

DVD's are spit into a number of programs, each identified by a unique IFO file. If you want to load a DVD, find the corresponding IFO file for the program of interest. Load the IFO file directly and a table of contents will be built. Alternatively for renderfarm usage, a table of contents can be created separately.

Run

     mpeg3toc -v /cdrom/video_ts/vts_01_0.ifo dvd.toc

or something similar. Then load dvd.toc.


Next: , Previous: DVD MOVIES, Up: SUPPORTED FILE FORMATS

7.1.8 MPEG 1 AUDIO

These are .mp2 and .mp3 files. If fixed bitrate, they can be loaded directly with no table of contents. Variable bitrate streams need to have a table of contents created with mpeg3toc.


Next: , Previous: MPEG 1 AUDIO, Up: SUPPORTED FILE FORMATS

7.1.9 OGG THEORA/VORBIS

The OGG format is an antiquated but supposedly unpatented way of compressing audio and video. The quality isn't as good as H.264 or MPEG-4 Audio. In reality, anyone with enough money and desire can find a patent violation so the justification for OGG is questionable.


Previous: OGG THEORA/VORBIS, Up: SUPPORTED FILE FORMATS

7.1.10 EDIT DECISION LIST

Edit decision lists are generated by Cinelerra for storing projects. They end in .xml. They change project attributes when loaded.

Because edit decision lists consist of text, they can be edited in a text editor.


Next: , Previous: SUPPORTED FILE FORMATS, Up: LOADING AND SAVING FILES

7.2 LOADING FILES

All data that you work with in Cinelerra is acquired either by recording from a device or by loading from disk. This section describes loading.

The loading and playing of files is just as you would expect. Just go to file->Load, select a file for loading, and hit ok. Hit the forward play button and it should start playing, regardless of whether a progress bar has popped up.

Another way to load files is to pass the filenames as arguments on the command line. This creates new tracks for every file and starts the program with all the arguments loaded.

If the file is a still image, the project's attributes are not changed and the first frame of the track becomes the image. If the file has audio, Cinelerra may build an index file for it to speed up drawing. You can edit and play the file while the index file is being built.


Next: , Up: LOADING FILES

7.2.1 INSERTION STRATEGY

Usually three things happen when you load a file. First the existing project is cleared from the screen, second the project's attributes are changed to match the file's, and finally the new file's tracks are created in the timeline.

But Cinelerra lets you change what happens when you load a file.

In the file selection box go to the Insertion strategy box and select it. Each of these options loads the file a different way.

The insertion strategy is a recurring option in many of Cinelerra's functions. In each place the options do the same thing. With these options you can almost do all your editing by loading files.

If you load files by passing command line arguments to Cinelerra, the files are loaded with Replace current project rules.


Previous: INSERTION STRATEGY, Up: LOADING FILES

7.2.2 LOADING MULTIPLE FILES

In the file selection box go to the list of files. Select a file. Go to another file and select it while holding down CTRL. This selects one additional file. Go to another file and select it while holding down SHIFT. This selects every intervening file. This behavior is available in most every list box.

Select a bunch of mp3 files and Replace current project and concatenate tracks in the insertion strategy to create a song playlist.


Next: , Previous: LOADING FILES, Up: LOADING AND SAVING FILES

7.3 LOADING THE BACKUP

There is one special XML file on disk at all times. After every editing operation Cinelerra saves the current project to a backup in $HOME/.bcast/backup.xml. In the event of a crash go to file->load backup to load the backup. It is important after a crash to reboot Cinelerra without performing any editing operations. Loading the backup should be the first operation or you'll overwrite the backup.


Next: , Previous: LOADING THE BACKUP, Up: LOADING AND SAVING FILES

7.4 SAVING FILES

When Cinelerra saves a file it saves an edit decision list of the current project but doesn't save any media. Go to File->save as.... Select a file to overwrite or enter a new file. Cinelerra automatically concatenates .xml to the filename if no .xml extension is given.

The saved file contains all the project settings and locations of every edit but instead of media it contains pointers to the original media files on disk.

For each media file the XML file stores either an absolute path or just the relative path. If the media is in the same directory as the XML file a relative path is saved. If it's in a different directory an absolute path is saved.

In order to move XML files around without breaking the media linkages you either need to keep the media in the same directory as XML file forever or save the XML file in a different directory than the media and not move the media ever again.

If you want to create an audio playlist and burn it on CD-ROM, save the XML file in the same directory as the audio files and burn the entire directory. This keeps the media paths relative.

XML files are useful for saving the current state before going to sleep and saving audio playlists but they're limited in that they're specific to Cinelerra. You can't play XML files in a dedicated movie player. Realtime effects in an XML file have to be resynthesized every time you play it back. The XML file also requires you to maintain copies of all the source assets on hard drives, which can take up space and cost a lot of electricity to spin. For a more persistent storage of the output there's rendering.


Previous: SAVING FILES, Up: LOADING AND SAVING FILES

7.5 RENDERING FILES

Rendering takes a section of the timeline, performs all the editing, effects and compositing, and stores it in a pure movie file. You can then delete all the source assets, play the rendered file in a movie player, or bring it back into Cinelerra for more editing. It's very difficult to retouch any editing decisions in the pure movie file, however, so keep the original assets and XML file around several days after you render it.

All rendering operations are based on a region of the timeline to be rendered. You need to define this region on the timeline. The navigation section describes methods of defining regions. See NAVIGATING THE PROJECT. The rendering functions define the region based on a set of rules. When a region is highlighted or in/out points are set, the affected region is rendered. When no region is highlighted, everything after the insertion point is rendered. Merely by positioning the insertion point at the beginning of a track and unsetting all in/out points, the entire track is rendered.


Next: , Up: RENDERING FILES

7.5.1 SINGLE FILE RENDERING

The fastest way to get media to disk is to use the single file rendering function.

Go to File->render to bring up the render dialog. Select the magnifying glass magnify.png to bring up a file selection dialog. This determines the filename to write the rendered file to and the encoding parameters.

In the render dialog select a format from the File Format menu. The format of the file determines whether you can render audio or video or both. Select the Render audio tracks toggle to generate audio tracks and Render video tracks to generate video tracks.

Select the wrench wrench.png next to each toggle to set compression parameters. If the file format can't store audio or video the compression parameters will be blank. If Render audio tracks or Render video tracks is selected and the file format doesn't support it, trying to render will pop up an error.

The Create new file at each label option causes a new file to be created when every label in the timeline is encountered. This is useful for dividing long audio recordings into individual tracks. When using the renderfarm, Create new file at each label causes one renderfarm job to be created at every label instead of using the internal load balancing algorithm to space jobs.

When Create new file at each label is selected, a new filename is created for every output file. If the filename given in the render dialog has a 2 digit number in it, the 2 digit number is overwritten with a different incremental number for every output file. If no 2 digit number is given, Cinelerra automatically concatenates a number to the end of the given filename for every output file.

In the filename /hmov/track01.wav the 01 would be overwritten for every output file. The filename /hmov/track.wav; however, would become /hmov/track.wav001 and so on and so forth. Filename regeneration is only used when either renderfarm mode is active or creating new files for every label is active.

Finally the render dialog lets you select an insertion mode. The insertion modes are the same as with loading files. In this case if you select insert nothing the file will be written out to disk without changing the current project. For other insertion strategies be sure to prepare the timeline to have the output inserted at the right position before the rendering operation is finished. See EDITING. Editing describes how to cause output to be inserted at the right position.

It should be noted that even if you only have audio or only have video rendered, a paste insertion strategy will behave like a normal paste operation, erasing any selected region of the timeline and pasting just the data that was rendered. If you render only audio and have some video tracks armed, the video tracks will get truncated while the audio output is pasted into the audio tracks.


Next: , Previous: SINGLE FILE RENDERING, Up: RENDERING FILES

7.5.2 BATCH RENDERING

If you want to render many projects to media files without having to repeatedly attend to the Render dialog, batch rendering is the function to use. In this function, you specify many EDL files to render and the unique output files for each. Then Cinelerra loads each EDL file and renders it automatically, without any user intervention. Each EDL file and its output to be rendered is called a batch. This allows a huge amount of media to be processed and greatly increases the value of an expensive computer.

The first thing to do when preparing to do batch rendering is define projects to be rendered. The batch renderer requires a separate EDL file for every batch to be rendered. Set up a project and define the region to be rendered either by highlighting it, setting in/out points around it, or positioning the insertion point before it. Then save the project as an EDL. Define as many projects as needed this way. The batch renderer takes the active region from the EDL file for rendering.

With all the EDL files prepared with active regions, go to File->batch render. This brings up the batch rendering dialog. The interface for batch rendering is a bit more complex than for single file rendering.

A list of batches must be defined before starting a batch rendering operation. The table of batches appears on the bottom of the batch render dialog and is called batches to render. Above this are the configuration parameters for a single batch.

Set the output path, file format, Audio, Video, and Create new file at each label parameters as if it was a single file. These parameters apply to only one batch. In addition to the standard rendering parameters, you must select the source EDL to use in the batch. Do this by setting the EDL path.

If the batches to render list is empty or nothing is highlighted, click New to create a new batch. The new batch will contain all the parameters you just set.

Repeatedly press the New button to create more batches with the same parameters. Highlight any batch and edit the configuration on the top of the batch render window. The highlighted batch is always synchronized to the information displayed.

Click and drag batches to change the order in which they're rendered. Hit delete to permanently remove the highlighted batch.

In the list box is a column which enables or disables the batch. This way batches can be skipped without being deleted. Click on the Enabled column in the list box to enable or disable a batch. If it is checked, the batch is rendered. If it is blank, the batch is skipped.

The other columns in the batch list are informative.

To start rendering from the first enabled batch, hit Start.

Once rendering, the main window shows the progress of the batch. Once the batch finishes, the elapsed column in the batch list is updated and the next batch is rendered until all the enabled batches are finished. The currently rendering batch is always highlighted red.

To stop rendering before the batches are finished without closing the batch render dialog, hit Stop.

To stop rendering before the batches are finished and close the batch render dialog, hit Cancel.

To exit the batch render dialog whether or not anything is being rendered, hit Cancel.


Next: , Previous: BATCH RENDERING, Up: RENDERING FILES

7.5.3 THE RENDER FARM

When bicubic interpolation and HDTV was first done on Cinelerra, the time needed to produce the simplest output became unbearable even on the fastest dual 1.7Ghz Xeon of the time. Renderfarm support even in the simplest form brings HDTV times back in line with SD while making SD faster than realtime.

While the renderfarm interface isn't spectacular, it's simple enough to use inside an editing suite with less than a dozen nodes without going through the same amount of hassle you would with a several hundred node farm. Renderfarm is invoked transparently for all file->render operations when it is enabled in the preferences.

Cinelerra divides the selected region of the timeline into a certain number of jobs which are then dispatched to the different nodes depending on the load balance. The nodes process the jobs and write their output to individual files on the filesystem. The output files are not concatenated. It's important for all the nodes to have access to the same filesystem on the same mount point for assets.

If a node can't access an input asset it'll display error messages to its console but probably not die. If it can't access an output asset it'll cause the rendering to abort.

It should be noted that in the render dialog, the Create new file at each label option causes a new renderfarm job to be created at each label instead of by the load balancer. If this option is selected when no labels exist, only one job will be created.

A Cinelerra renderfarm is organized into a master node and any number of slave nodes. The master node is the computer which is running the GUI. The slave nodes are anywhere else on the network and are run from the command line. Run a slave node from the command line with

cinelerra -d

That is the simplest configuration. Type cinelerra -h to see more options. The default port number may be overridden by passing a port number after the -d.

Most of the time you'll want to bring in the rendered output and fine tune the timing on the timeline. Also some file formats like MPEG can't be direct copied. Because of this, the jobs are left in individual files.

You can load these by creating a new track and specifying concatenate to existing tracks in the load dialog. Files which support direct copy can be concatenated into a single file by rendering to the same file format with renderfarm disabled. Also to get direct copy, the track dimensions, output dimensions, and asset dimensions must be equal.

MPEG files or files which don't support direct copy have to be concatenated with a command line utility. MPEG files can be concatenated with cat.

Configuration of the renderfarm is described in the configuration chapter See RENDERFARM. The slave nodes traditionally read and write data to a common filesystem over a network, thus they don't need hard drives.

Ideally all the nodes on the renderfarm have similar CPU performance. Cinelerra load balances on a first come first serve basis. If the last segment is dispatched to the slowest node, all the fastest nodes may end up waiting for the slowest node to finish while they themselves could have rendered it faster.


Previous: THE RENDER FARM, Up: RENDERING FILES

7.5.4 COMMAND LINE RENDERING

The command line rendering facility consists of a way to load the current set of batch rendering jobs and process them without a GUI. This is useful if you're planning on crashing X repeatedly or want to do rendering on the other side of a low bandwidth network. You might have access to a supercomputer in India but still be stuck in America, exhiled you might say. A command line interface is ideal for this.

To perform rendering from the command line, first run Cinelerra in graphical mode. Go to file->batch render. Create the batches you intend to render in the batch window and close the window. This saves the batches in a file. Set up the desired renderfarm attributes in settings->preferences and exit Cinelerra. These settings are used the next time command line rendering is used.

On the command line run

cinelerra -r

to processes the current batch jobs without a GUI. Setting up all the parameters for this operation is hard. That's why the command line aborts if any output files already exist.

Other parameters exist for specifying alternative files for the preferences and the batches. Attempting to use anything but the defaults is very involved so it hasn't been tested.


Next: , Previous: LOADING AND SAVING FILES, Up: Top

8 NAVIGATING THE PROJECT

The thing you want to do most of the time is get to a certain time and place in the media. Internally the media is organized into tracks. Each track extends across time. Navigation involves both getting to a track and getting to a certain time in the track.


Next: , Up: NAVIGATING THE PROJECT

8.1 NAVIGATING THE PROGRAM WINDOW

The program window contains many features for navigation and displays the timeline as it is structured in memory: tracks stacked vertically and extending across time horizontall. The horizontal scroll bar allows you to scan across time. The vertical scroll bar allows you to scan across tracks.

Below the timeline you'll find the zoom panel. The zoom panel contains values for sample zoom, amplitude, track zoom, and curve zoom. These values in addition to the scrollbars are the main tools for positioning the timeline.


zoompanel.png

Changing the sample zoom causes the amount of time visible to change. If your mouse has a wheel and it works in X11 go over the tumblers and use the wheel to zoom in and out.

The amplitude only affects audio. It determines how big the waveform is if the waveform is drawn.

The track zoom affects all tracks. It determines the height of each track. If you change the track zoom the amplitude zoom compensates so audio waveforms look proportional.

The curve zoom affects the curves in all the tracks. It determines the amplitude and offset of the curves. The tumbler affects curve amplitude but the only way to change curve offset is to use the fit curves button. fit_curves.png

In addition to the graphical tools, you'll probably more often use the keyboard to navigate. Use PAGE UP and PAGE DOWN to scroll up and down the tracks.

Use the LEFT and RIGHT arrows to move across time in small increments. You'll often need to scroll beyond the end of the timeline but scrollbars won't let you do it. Instead use the RIGHT arrow to scroll past the end of timeline.

Use the HOME and END keys to instantly go to the beginning or end of the timeline. In I-beam mode, hold down shift while pressing HOME or END to select the region of the timeline between the insertion point and the