Table of Contents ***************** Cinelerra CV Manual 1 Introduction 1.1 About Cinelerra 1.2 The two versions of Cinelerra 1.3 About this manual 1.4 Getting help 1.5 Tutorials 1.6 HOWTOs 1.7 Miscellaneous links 2 Installation 2.1 Hardware requirements 2.2 Software requirements 2.3 Compiling Cinelerra CV 2.3.1 Usual compilation process 2.3.2 Compiling with debugging symbols 2.4 Running Cinelerra 2.5 Live CDs 2.6 Arch Linux 2.7 Ark Linux 2.8 Debian 2.8.1 Debian binaries 2.8.2 Debian prerequisites 2.9 Ubuntu 2.9.1 Ubuntu packages repositories 2.9.2 Instructions for Ubuntu packages installation 2.10 Gentoo 2.11 Fedora 2.12 Mandriva 2.13 Slackware 2.14 Suse 2.15 MacOSX 3 Configuration 3.1 Environment variables 3.2 Audio drivers 3.2.1 Sound driver attributes 3.2.2 OSS 3.2.3 OSS Envy24 3.2.4 Alsa 3.2.5 Esound 3.2.6 Raw 1394 3.2.7 DV 1394 3.2.8 IEC 61883 3.3 Video drivers 3.3.1 Video driver attributes 3.3.2 X11 3.3.3 X11-XV 3.3.4 X11-OpenGL 3.3.5 Buz 3.3.6 Raw 1394 video playback 3.3.7 DV 1394 video playback 3.3.8 IEC 61883 video playback 3.4 Playback 3.4.1 Audio out 3.4.2 Video out 3.5 Recording 3.5.1 File format 3.5.2 Audio in 3.5.3 Video in 3.6 Performance 3.6.1 Background rendering 3.6.2 Renderfarm 3.7 Interface 3.8 About window 4 Project attributes 4.1 Set format window 4.2 Presets 4.3 Audio attributes 4.4 Video attributes 5 Loading and saving files 5.1 Supported file formats 5.1.1 Quicktime 5.1.2 MPEG-4 audio 5.1.3 Still images 5.1.3.1 Loading still images 5.1.3.2 Still images size 5.1.3.3 Open EXR images 5.1.3.4 Raw digital camera images 5.1.4 Images sequence 5.1.5 AVI 5.1.6 MPEG files containing video 5.1.7 DVD movies 5.1.8 MPEG 1 audio 5.1.9 Ogg Theora/Vorbis 5.1.10 Edit decision list 5.1.11 WAV 5.1.12 PCM 5.1.13 AIFF 5.1.14 AC3 audio 5.2 Loading files 5.2.1 Insertion strategy 5.2.2 Loading multiple files 5.2.3 Loading files from the command prompt 5.2.4 Filtering files by extension 5.2.5 Loading other formats 5.3 Loading the backup 5.4 Saving project files 5.5 Merging projects 6 Program window 6.1 Navigating the program window 6.1.1 Video and audio tracks 6.1.2 Track navigation 6.1.3 The zoom panel 6.1.4 The track popup menu 6.1.5 The insertion point 6.1.6 Editing modes 6.1.7 The in/out points 6.1.8 Using labels in the program window 7 Editing 7.1 The patchbay 7.2 Nudging tracks 7.3 Panning audio tracks 7.4 Automatic audio track panning 7.5 Standard audio mappings 7.6 Manipulating tracks 7.7 Two screen editing 7.8 Drag and drop editing 7.9 Cut and paste editing 7.10 Trimming 8 Compositor window 8.1 Compositor controls 8.1.1 Protect video 8.1.2 Magnifying glass 8.1.3 Masks tool 8.1.4 Camera 8.1.5 Projector 8.1.6 Crop tool 8.1.7 Eyedropper 8.1.8 Tool info 8.1.9 Safe regions tool 8.2 Compositing 8.2.1 The camera and projector 8.2.1.1 The temporary 8.2.1.2 Compositing projector controls 8.2.1.3 Compositing camera controls 8.2.1.4 Popup menu of options 8.2.1.5 The camera and projector tool window 8.2.2 Masks 8.2.3 Cropping 8.2.4 Safe regions 8.2.5 Overlay modes 8.2.6 Track and output sizes 8.2.6.1 Track size 8.2.6.2 Output size 9 Viewer window 10 Resources window 10.1 Navigating the resources 11 Sound level meters window 12 Transport controls 13 Timebar 14 Realtime effects 14.1 Realtime effect types 14.2 Editing realtime effects 14.3 Realtime audio effects 14.3.1 Compressor 14.3.2 Delay audio 14.3.3 Denoise 14.3.4 DenoiseFFT 14.3.5 Despike 14.3.6 EQ Parametric 14.3.7 Freeverb 14.3.8 Gain 14.3.9 Heroine College 14.3.10 Interpolate 14.3.11 Invert Audio 14.3.12 Live audio 14.3.13 Loop audio 14.3.14 Overlay 14.3.15 Pitch shift 14.3.16 Reverse audio 14.3.17 SoundLevel 14.3.18 Spectrogram 14.3.19 Synthesizer 14.3.20 Time stretch 14.4 Realtime video effects 14.4.1 1080 to 480 14.4.2 Aging TV 14.4.3 Blur 14.4.4 Brightness/contrast 14.4.5 Burning TV 14.4.6 Chroma key 14.4.7 Chroma key (HSV) 14.4.8 Color balance 14.4.9 Decimate 14.4.10 Deinterlace 14.4.11 Delay video 14.4.12 Denoise video 14.4.13 Denoise video2 14.4.14 Difference key 14.4.15 DotTV 14.4.16 Downsample 14.4.17 Fields to frames 14.4.18 Flip 14.4.19 Frames to fields 14.4.20 Freeze frame 14.4.21 Gamma 14.4.22 Gradient 14.4.23 Histogram 14.4.24 HolographicTV 14.4.25 Hue saturation 14.4.26 Interpolate video 14.4.27 Interpolate pixels 14.4.28 Inverse telecine 14.4.29 Invert video 14.4.30 Linear blur 14.4.31 Live video 14.4.32 Loop video 14.4.33 Motion 14.4.33.1 Secrets of motion tracking 14.4.33.2 2 pass motion tracking 14.4.33.3 Using blur to improve motion tracking 14.4.33.4 Using histogram to improve motion tracking 14.4.33.5 Motion tracking in action 14.4.33.6 Tracking stabilization in action 14.4.34 Motion blur 14.4.35 Oil painting 14.4.36 Overlay video 14.4.37 Perspective 14.4.38 Polar 14.4.39 RGB-601 14.4.40 Radial blur 14.4.41 ReframeRT 14.4.42 Reroute 14.4.43 Reverse video 14.4.44 Rotate 14.4.45 SVG via Inkscape 14.4.46 Scale 14.4.47 Selective temporal averaging 14.4.48 Sharpen 14.4.49 ShiftInterlace 14.4.50 Swap channels 14.4.51 Threshold 14.4.52 Time average 14.4.53 TimeFront 14.4.54 Title 14.4.54.1 Adding fonts to the titler 14.4.54.2 The title-safe region 14.4.55 Translate 14.4.56 Unsharp 14.4.57 Videoscope 14.4.57.1 The waveform scope 14.4.57.2 The vectorscope 14.4.58 Wave 14.4.59 Whirl 14.4.60 YUV 14.4.61 Zoom blur 15 Rendered effects 15.1 Rendered audio effects 15.1.1 Resample 15.2 Rendered video effects 15.2.1 Reframe 16 Ladspa effects 17 Transitions 17.1 Using transitions 17.2 Dissolve video transition 18 Keyframing 18.1 Curve keyframes 18.1.1 Navigating curve keyframes 18.2 Toggle keyframes 18.3 Automatic keyframes 18.4 Compositor keyframes 18.5 Editing keyframes 19 Capturing media 19.1 Capturing using Cinelerra 19.1.1 Cinelerra recording functions 19.1.2 Batch recording 19.1.3 Editing tuner information 19.2 Capturing using dvgrab 20 Rendering files 20.1 Single file rendering 20.2 Separate files rendering 20.3 Insertion strategy of rendered files 20.4 Batch rendering 20.5 The render farm 20.6 Command line rendering 20.7 Rendering videos for the internet 20.7.1 Encoding a video in MPEG4 format for the internet 20.7.2 Encoding a video in FLV format for the internet 20.8 Quicktime for GNU/Linux compatibility chart 20.9 Making a DVD 20.9.1 Rendering to mpeg2 20.9.1.1 yuv4mpeg pipe through mpeg2enc 20.9.1.2 yuv4mpeg pipe through ffmpeg 20.9.2 Making a DVD menu 20.9.3 Authoring a DVD 20.9.4 Burning a DVD 20.10 Using background rendering 21 Tips 21.1 Encoding into Dolby Pro Logic 21.2 Cleaning analog TV 21.3 Defeating interlacing 21.4 Making video look like film 21.5 Clearing out haze 21.6 Making a ringtone 21.7 Time stretching audio 21.8 Video screen captures 21.9 Improving performance 21.9.1 Disabling swap space 21.9.2 Enlarging sound buffers 21.9.3 Freeing more shared memory 21.9.4 Speeding up the hard drive 21.9.5 Disabling cron 21.9.6 Reducing USB mouse sensitivity 21.9.7 Assorted X tweeks 21.9.8 Speeding up the file system 21.9.9 Improving Zoran video 21.10 Translating Cinelerra 21.10.1 Available localizations 21.10.2 Updating an existing translation 21.10.3 Creating a new translation 21.11 Panning and zooming still images 21.12 HDV 1080i editing using proxy files 21.12.1 Overview 21.12.2 Grabbing HDV from camcorder 21.12.3 Using TOC and WAV files 21.12.4 Making the proxy files 21.12.5 Converting HDV and proxy files 21.12.6 Rendering the HDV project 21.12.7 Other issues 21.13 Adding subtitles 21.14 Creating DVD video from Lower Quality Footage 22 Troubleshooting 22.1 Reporting bugs 22.2 Playback does not stop 22.3 Buz driver crashes 22.4 Dragging edit boundaries does not work 22.5 Locking up when loading files 22.6 Synchronization lost while recording 22.7 Applying gamma followed by blur does not work 22.8 Copy/Paste of track selections does not work in the timeline 22.9 Cinelerra often crashes 22.10 Theme Blond not found error 23 Plugin authoring 23.1 Introducing the pull method 23.2 Common plugin functions 23.2.1 The processing object 23.2.2 The configuration object 23.2.3 The user interface object 23.3 Realtime plugins 23.4 Nonrealtime plugins 23.5 Audio plugins 23.6 Video plugins 23.7 Transition plugins 23.8 Plugin GUI's which update during playback 23.9 Plugin queries 23.9.1 System queries 23.9.2 Timing queries 23.10 Using OpenGL 23.10.1 Getting OpenGL data 23.10.2 Drawing using OpenGL 23.10.3 Using shaders 23.10.4 Aggregating plugins 24 Keyboard shortcuts 24.1 Program window shortcuts 24.1.1 Editing Media shortcuts 24.1.2 Editing Labels and In/Out Points shortcuts 24.1.3 Navigation shortcuts 24.1.4 File operations shortcuts 24.1.5 Key frame editing shortcuts 24.1.6 Track Manipulation shortcuts 24.1.7 What is drawn on the timeline shortcuts 24.2 Viewer and compositor windows shortcuts 24.3 Playback transport shortcuts 24.4 Record window shortcuts GNU General Public License Cinelerra CV Manual ******************* 1 Introduction ************** 1.1 About Cinelerra =================== For years, some people have wanted a way to edit their audio and video in one place as fluidly as writing text. Cinelerra tries to be a single location for all your audio and video editing needs. All the recording, editing, and playback are handled here. It can be used as an audio player. It can be used to record audio or video. It can even be used as a photo retoucher. There are two types of moviegoers: producers who create new content and revisit it for further refinement, and consumers who want to acquire the content and watch it. Cinelerra is not intended for consumers. Cinelerra has many features for uncompressed content, high resolution processing, and compositing. Producers need these features in order to retouch many generations of footage, which makes Cinelerra very complex. Consumers should consider other tools such as Avidemux (`http://www.avidemux.org/'), Kino (`http://kinodv.org/') or Kdenlive (`http://kdenlive.org/'). Quote from Miro's Wiki (`http://www.mitvwiki.org/Cinelerra'): "The key difference between Cinelerra and many of the commercial editors is that Cinelerra hides much less from the user, exposing much of the inner workings to direct interaction. This can be harder to use, but does make it tremendously powerful, and for some operations blistering fast." 1.2 The two versions of Cinelerra ================================= There are two branches of Cinelerra. One can be found at `http://www.heroinewarrior.com' and the other at `http://cvs.cinelerra.org'. This documentation is focused on Cinelerra-CV (Community Version). The official Cinelerra source code is developed "upstream" by Heroine Virtual, Ltd (HV). HV shares its code base with a community version of Cinelerra (Cinelerra-CV), but does not actively participate with the community of developers responsible for Cinelerra-CV. HV likes to work on its own copy of Cinelerra, releasing code on a periodic basis every 6 months or so. Cinelerra-CV was founded by developers who wanted to extend the functionality and fix bugs inherent in the HV code base. They decided to develop Cinelerra in a community fashion and not create a separate fork of the original HV code. So, the Cinelerra CV code is very similar to the official release. CV coders apply bug fixes (`http://bugs.cinelerra.org'), enhancements to the SVN and compliance fixes. Programmers occasionally send patches upstream. In this way, Cinelerra CV has a number of features that the official version does not. Unlike other programs, the HV release can not be described as "stable". After HV's Cinelerra is released, there are often bugs or unusable new features. When there is a new release, a CV member (j6t) merges HV's code with Cinelerra CV code, taking the enhancements from HV and reformatting the CV code (white spaces, function naming, directory naming) to be more similar to HV's with slight changes to implementations. After the merge, the latest Cinelerra CV release is a little unstable as users find bugs. Time permitting, the CV programmers will address as many of these bugs as possible. In this way, Cinelerra CV can be seen as the community's attempt to stabilize HV's release. As mentioned, the community adds new enhancements to the HV source. Members will comment on each other's implementations in order to create a more fully functional and stable product. Occasionally, HV will give feedback on implementations that the members of the CV submit to it. However, not all of the enhancements that the community create make it upstream; for example, YUV pipe rendering. Given the above discussion, obtaining the SVN just before a merge will generally be more stable than a post-merge CV version. Be aware that existing project description files, or Edit Decision Lists (discussed below), may not be compatible with the newly merged CV version. With any version of Cinelerra, the task of finding bugs is relatively easy. However, clearly and concisely documenting these bugs for the community that fixes them is a task that we ask of all users of the software. The community is very responsive. Please help them by creating well-formed bug reports. You may join our mailing list at `http://cvs.cinelerra.org'. 1.3 About this manual ===================== This manual edition is 1.55.EN, for Cinelerra CV version 2.1. You may redistribute it and/or modify it under the terms of the GNU General Public License, as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This manual originates from "Secrets of Cinelerra", an excellent primer written by Adam WILLIAMS from HEROINE VIRTUAL LTD. In 2003 Alex FERRER created a Wiki based on that manual and added many screenshots and topic descriptions. At that time, Cinelerra CV still did not have its own manual and information regarding the Community Version of Cinelerra was scattered across the Internet (mailing-list, IRC, websites, wiki, etc). In 2006, Nicolas MAUFRAIS combined the original "Secrets of Cinelerra" with the contents from Alex FERRER's Wiki into a unified document. Cinelerra-CV documentation maintainers: English: Nicolas MAUFRAIS (coordinator), Raffaella TRANIELLO (apprentice sorcerer) Manual translators: French: Jean-Luc COULON Brazilian Portuguese: Flavio SOARES (maintainer), Willie MARCEL Spanish: Alberto RAMALLO, Gustavo Iņiguez GOYA (chapter 17 - Keyframes) Basque: Iņaki Larraņaga MURGOITIO "Dooteo". Other contributors: Alexandre BOURGET, Kevin BROSIUS, Carlos DAVILA, Cillian DE ROISTE, Rafael DINIZ, Pierre DUMUID, Mike EDWARDS, Martin ELLISON, Graham EVANS, Alex FERRER, Scott FRASE, Joe FRIEDRICHSEN, gour, Gus Gus, Terje HANSSEN, Mikko HUHTALA, Ben JORDEN, Nathan KIDD, Marcin KOSTUR, Joseph L., David MCNAB, Valentina MESSERI, Sean PAPPALARDO, Paolo RAMPINO, Herman ROBAK, Dana ROGERS, Jim SCOTT, Andraz TORI, Raffaella TRANIELLO, Hermann VOSSELER, Norval WATSON. Thanks to the GNU project team, and particularly to Karl BERRY, maintainer of GNU Texinfo, for the precious help he gave us during the elaboration of this manual. The sources of the manuals are Texinfo files. They are in the same SVN repository as Cinelerra's source code (hvirtual/doc folder). They can be converted in many formats. The doc/README_en file contains instructions for building the manual in PDF, HTML (single page) HTML (one page per chapter, in a folder), plain TXT, TXT in DokuWiki sintax (one file per chapter, in a folder), Docbook. You can participate on editing this manual by making changes in the Cinelerra-CV wiki: `http://cvs.cinelerra.org/docs/wiki/doku.php' If you would like to translate this manual in your language, see the doc/TRANSLATIONS file and contact the Cinelerra CV Community. 1.4 Getting help ================ Help can be found at: * IRC channel: #cinelerra on Freenode * Mailing list: `https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra' * Cinelerra CV website: `http://cvs.cinelerra.org' 1.5 Tutorials ============= Some Cinelerra tutorials are available on the internet: * Cinelerra Tutorial - Getting Started, by Rob FISHER `http://www.robfisher.net/video/cinelerra1.html' * Cinelerra video tutorials, by The Source - tutorials (talk and screencast) inside The Source Show `http://www.thesourceshow.org/node/11' #1 is in Episode 6 "The Return Of The Pixel" from min 45 to min 60 (Introduction to Cinelerra and non linear editing, the 4 windows interface, project attributes, loading files). #2 is in Episode 1 "The Filesystem Menace" from min 32 to min 54 (Arming tracks, sample zoom, selection boxes, two screen editing, cut and paste editing, adding and moving tracks, drag and drop editing, trimming, transitions). #3 is in Episode 2 "Attack Of The Elephants (Dream)" from min 45 to 1:12 (Keyframes, camera and projector, masks, titles, effects). * Edicion de video bajo GNU/Linux (Cinelerra), in Spanish, by Gustavo Iņiguez GOYA `http://kutxa.homeunix.org/cinelerra' * Guide d'utilisation de Cinelerra, in French `http://www.funix.org/fr/linux/cinelerra.htm' * Faire un montage video French tutorial for beginners on Cinelerra HV, by Laurent BELLEGARDE `http://laurent.bellegarde.free.fr/lprod/tutoriels/tutoriel_cinelerra_niv1_debutant.pdf' * Capturando e editando video usando Software Livre, in Portuguese, by Rafael DINIZ `https://docs.indymedia.org/view/Sysadmin/Cinelerra' * Tutorial Cinelerra, in Portuguese, by Leo GERMANI `http://www.estudiolivre.org/tiki-index.php?page=Cinelerra' * Cinelerra is very easy, Introduction to Cinelerra, for beginners, by Paolo RAMPINO `http://project.akirad.net/node/12' 1.6 HOWTOs ========== Some HOWTOs for specific needs are available on the internet: * Beginner's Guide to Exporting Video from Cinelerra, by Scott FRASE `http://content.serveftp.net/video/renderTest/guideToCinExport.html' * Capturing desktop screens in Cinelerra, screencast by Scott FRASE `http://www.youtube.com/watch?v=MhaOgNQ0Bbc' * HOWTO use the Chromakey (HSV) plugin, by Jerome CORNET `http://jcornet.free.fr/linux/chromakey.html' * HOWTO make professional looking Scrolled Credits in Cinelerra, by David MCNAB `http://www.freenet.org.nz/misc/cintitles/' * Crear títulos diferentes con Cinelerra in Spanish, by Gustavo Iņiguez GOYA - how to add effects to titles. With downloadable sample projects. `http://kutxa.homeunix.org/bloga/2007/08/13/crear-titulos-diferentes-con-cinelerra/#more-246' * SimAV's HOWTOs, by Simeon VOLKEL - How to create a picture in picture effect, How to create overlays, How to change theme. `http://g-raffa.eu/SimAV/' * Tips for Transcoding Cinelerra Compatible Video with FFmpeg, MEncoder, by Alexander GRUNDNER `http://www.alexandergrundner.com/2007/07/19/tips-for-transcoding-cinelerra-compatible-video-with-ffmpeg-mencoder' * FFMPEG compatibility - HOWTO produce videos that can be played in common proprietary multimedia players `http://ffmpeg.mplayerhq.hu/compat.html' 1.7 Miscellaneous links ======================= Miscellaneous links: * Interlacing `http://neuron2.net/LVG/interlacing.html' * What is Deinterlacing? Facts, solutions, examples `http://www.100fps.com' * MPEG-2 FAQ `http://bmrc.berkeley.edu/frame/research/mpeg/mpeg2faq.html' * "Exporting edited HD content back to the camcorder" (HDV related) `http://dvinfo.net/conf/showthread.php?t=76674' * A Quick Guide to Digital Video Resolution and Aspect Ratio Conversions `http://lipas.uwasa.fi/~f76998/video/conversion' * Colour specification and image coding `http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html' * DVD Video - about DVD structure `http://wlug.org.nz/DVDVideo' * Creating DVD videos on Linux and Unix - an excellent high level overview of DVD authoring in general on Linux `http://womble.decadent.org.uk/talks/dvd-ukuug06/dvd-talk-ukuug06-paper.html' * lprod - Libre Production a French Wiki full of resources for Open Source video editing, especially for Cinelerra HV (among them an Ubuntu package) `http://fr.lprod.org/wiki/doku.php' * Cinelerra CV Glossary for newbies `http://g-raffa.eu/Cinelerra/cin_glossary.html' 2 Installation ************** This is the general contents of all Cinelerra packages. * Foreign language translations - These go into `/usr/share/locale' * Cinelerra executable - This goes into `/usr/bin' * Cinelerra plugins - These go into `/usr/lib/cinelerra' in 32 bit systems and `/usr/lib64/cinelerra' in 64 bit systems. * soundtest - Utility for determining sound card buffer size. * mplexlo - Multiplexing of MPEG elementary streams without standards conformance but more efficiently. * mpeg3cat - Utility for reading an MPEG file from a certain standard and outputting it to stdout. * mpeg3toc, mpeg3cat, mpeg3dump - Utilities for indexing and reading MPEG files. * mpeg3peek - Utility for displaying the byte offset of a frame in an MPEG file. 2.1 Hardware requirements ========================= Cinelerra is demanding on all PC subsystems, as reading, decoding and playing video can be quite taxing. Thus, performance and usability of Cinelerra are directly proportional to the video format (SVCD/DV/HDV/HD/etc) used and the CPU and I/O bus speeds and video and memory bus architecture of your hardware. Therefore, it stands to reason that a less powerful system will be sufficient for users working with audio only or lower resolution video formats. However, that same system may slow down considerably when playing back a higher resolution format, such as DV video. Effects and several tracks of audio will compound these problems. Given these constraints, here are some suggestions for running Cinelerra: * CPU speed At least 500 MHz CPU speed, anything less would be useless. Dual-core and SMP processors greatly improve Cinelerra speed. * Memory When working with video, a large amount of free memory available can help speed up operations by avoiding unnecessary disk swaps and keeping material ready accessible. Have at least 256 Megabytes of memory. To really use Cinelerra for higher resolution video formats and larger projects, greater than 1 Gb memory space is suggested. * Storage Video editing can be quite I/O intensive. Storage requirements are based on your particular video editing needs. If you expect to produce long pieces in uncompressed or larger resolution formats, you should have large (>200 Gb) and fast (<10ms) disk drives. For example, DV uses about 3.5 Megs per second, or 12 Gigs per hour. For smaller projects you might get away with 1 Gb. RAID0 (stripe set), RAID1+0 (striped/mirrored) or RAID5 (stripe set with parity) will also speed playback * Video adapters Since version 2.1, Cinelerra benefits from OpenGL hardware acceleration. Make sure the video card you use supports OpenGL 2.0 in order to benefit from that acceleration. Nvidia series 7 (ie. 7600GS) are known to work well. Unfortunately, ATI's Linux drivers do not support a complete implementation of OpenGL 2.0. If you are going to send a composite signal directly to a TV or video recorder, make sure your video card supports it. * Multiple monitors You can use XFree86's Xinerama features to work on multiple monitor heads. This feature can be a very effective way of increasing productivity. * TV-Out If your Adapter supports a TV-Out option, connecting a TV or S-Video monitor to it is a great way to view your material as it will be seen on TV screen. * Video grabbers If you have an analog video camera, or want to grab video from a trusty old VCR, you need some sort of video grabber. Video grabbers are supported through Video4Linux in Cinelerra. * Firewire Firewire is the fastest way to download material into your system. Unless you will be importing your media from a CD, any other pre-captured format or use an analog video grabber, you will need firewire on your system. * DV cameras There is an large variety of DV cameras that can be used with Cinelerra. Almost any camera that can connect using firewire will work. Be sure to set the appropriate parameters on the video grabbing system to match your particular camera. `http://www.linux1394.org' has a complete listing of supported cameras. 2.2 Software requirements ========================= To install Cinelerra you should have a current version of GNU/Linux with the X Window System (e.g., X.org) and some audio management software properly running. You should also have the following libraries installed (partial list): * a52dec * dv * faac * ffmpeg * fftw * lame * libavc1394 * libfaad2 * libraw1394 * mjpegtools * OpenEXR * theora * x264 You will also need the headers for all required libraries. For many distributions, this means that you will need to install the "-dev" or "devel" packages that correspond to your installed library packages. In addition to the libraries listed here, be sure you have the X library headers. Missing headers will usually result in compilation failing with cryptic error messages. 2.3 Compiling Cinelerra CV ========================== 2.3.1 Usual compilation process ------------------------------- You can install Cinelerra CV by fetching the source code and compiling it. That is the method to use if you want to compile the most up-to-date version of Cinelerra CV. The source code of Cinelerra-CV is available from a Subversion (SVN) repository. Subversion is available for download at `http://subversion.tigris.org/', but most likely your distribution has prebuilt packages. Complete documentation of subversion is available at `http://svnbook.red-bean.com/nightly/en/index.html'. 1. First you have to fetch Cinelerra CV's sources from the SVN repository (approximately 170Mb or 60Mb for a read-only checkout). Run the following command: `svn checkout svn://svn.skolelinux.org/cinelerra/trunk/hvirtual' The svn command above will create in your current working directory a directory hvirtual that contains the sources. 2. Go to the hvirtual directory: `cd hvirtual' 3. Create the `./configure' file by running: `autoreconf -i --force' 4. Then run the `.configure' file: `./configure --with-buildinfo=svn/recompile' This option makes the revision number to be shown in the About tab of the Preferences window. You can have a look at all the other options available by running: `./configure --help' Most of the missing dependencies should be listed after running. 5. And run make: `make' If you wish to log the make output in order to search for errors, this command can be used: `make 2>&1 | tee logfile' 6. Install Cinelerra CV: `sudo make install' 7. Finally run as root (for first time compilation only): `ldconfig' Notes: * SMP machine: If you compile Cinelerra CV on a multiprocessor machine (SMP), we recommend you to add the `-j 3' option to make in order to benefit from the available CPUs. * For x86 CPUs only: You probably want to enable MMX support. To do that, run `./configure' with the `--enable-mmx32' option. If you do that, you may have to use the `--without-pic' option too, otherwise, compilation may fail. * For Pentium-M: Here are some useful compiler flags: `./configure --prefix=/usr --enable-x86 --enable-mmx32 --enable-freetype2 --with-buildinfo=svn/recompile CFLAGS='-O3 -pipe -fomit-frame-pointer -funroll-all-loops -falign-loops=2 -falign-jumps=2 -falign-functions=2 -ffast-math -march=pentium-m -mfpmath=sse,387 -mmmx -msse'' * For 64bits: As root, run: `./autogen.sh' `./configure' Replace `-prefer-non-pic' with `-fPIC \' in your `quicktime/ffmpeg/libavcodec/i386/Makefile.am' file. `make' `make install' * Updating the source code: If you already fetched the sources of an out of date revision, you can update to the latest revision by running: `svn update' * Installing old revisions: If you wish to fetch an old revision, run: `svn checkout -r svn://svn.skolelinux.org/cinelerra/trunk/hvirtual' * Installing several revisions: If you wish to install several revisions of Cinelerra CV on your computer, create a `/usr/local_cinelerra' folder, and use the following options with `./configure' (replace `xxx' by the number of the revision you are compiling): `--prefix=/usr/local_cinelerra/rxxx --exec-prefix=/usr/local_cinelerra/rxxx --program-suffix=_rxxx' You will have to run Cinelerra CV from the directory in which it is installed: `cd /usr/local_cinelerra/rxxx' `./cinelerra_rxxx' If you install Cinelerra using this method, the translated `.po' files do not get installed correctly. If you want to run Cinelerra in another language, *Note Environment variables::, for specific instructions. * Automake version: You need automake version 1.7 to build. 1.4 will not work. Autoconf 2.57 is also required to build. 2.3.2 Compiling with debugging symbols -------------------------------------- When Cinelerra CV crashes, one can compile it with debugging symbols and run it inside gdb. The information displayed by gdb is far more detailed and will help CV developers find bugs faster. First, fetch the SVN sources as usual. Then, run the following commands: `cd hvirtual' `nice -19 autoreconf -i --force' `mkdir ../hvdbg' `cd ../hvdbg' `nice -19 ../hvirtual/configure CXXFLAGS='-O0 -g' CFLAGS='-O0 -g' --with-buildinfo=svn/recompile' `cd quicktime/ffmpeg' `nice -19 make CFLAGS='-O3'' `cd ../..' `nice -19 make' `nice -19 make install' *Note Reporting bugs::, for information about running Cinelerra inside gdb. 2.4 Running Cinelerra ===================== The simplest way to run Cinelerra is by running `/usr/bin/cinelerra' Command line options are also available by typing `cinelerra -h' These options are described in several sections below. For rendering from the command line *Note Rendering files::. If you get this error message when running Cinelerra for the first time: WARNING:/proc/sys/kernel/shmmax is 0x2000000, which is too low *Note Freeing more shared memory::, for details. 2.5 Live CDs ============ You can try and use Cinelerra on a computer without having to install it on your system. This is possible by using Live CDs, that are GNU/Linux distributions which boot from a CD, without installation on a hard drive. Here are some of the Live CD's known to contain Cinelerra: * Knoppix - the "original" Debian-based LiveDistro - `http://www.knoppix.org' * dyne:bolic - for multimedia production - uses Window Maker window manager - `http://www.dynebolic.org' * Elive - Debian based live CD using Enlightenment window manager - `http://www.elivecd.org' * x-evian - Debian based live CD for multimedia creations - `http://x-evian.org' * Mediainlinux - Knoppix based - `http://www.mediainlinux.org/' * Musix - Knoppix based live CD for audio production, graphic design and video editing - `http://musix.org.ar' * pho (garbure) - dedicated to video editing - `http://garbure.org/pho/' * Slo-Tech - based on Debian and Morphix - `http://linux.slo-tech.com' * ArtistX - Debian based live CD, Gnome or KDE. For multimedia productions - `http://artistx.org' 2.6 Arch Linux ============== Cinelerra CV is included in the Arch Linux community repository. To install the cinelerra package enable the community repository first (See `http://wiki.archlinux.org/index.php/AUR_User_Guidelines' for more info). Then run the following command from the command line: `pacman -Sy cinelerra-cv' 2.7 Ark Linux ============= Cinelerra CV is included in the Ark Linux package repository. To install the cinelerra package use the Install Software tool in Mission Control or run the following commands from a command line: `apt-get update' `apt-get install cinelerra'. 2.8 Debian ========== 2.8.1 Debian binaries --------------------- Andraz TORI maintains build rules for Debian Sid. He also makes binary .deb packages for Sid. They are built from the unofficial SVN releases. Debian Sid packages can be found here: * Apt source for i386: `deb http://www.kiberpipa.org/~minmax/cinelerra/builds/sid/ ./' * Apt source for Pentium4 (optimized): `deb http://www.kiberpipa.org/~minmax/cinelerra/builds/pentium4/ ./' * Apt source for Pentium-M (optimized): `deb http://www.kiberpipa.org/~minmax/cinelerra/builds/pentiumm/ ./' * Apt source for AthlonXP (optimized): `deb http://www.kiberpipa.org/~minmax/cinelerra/builds/athlonxp/ ./' Valentina MESSERI built also * Apt source for Opteron (AMD64) (optimized): `deb http://giss.tv/~vale/debian64/ ./' Christian MARILLAT makes binary Debian packages, built from the unofficial SVN releases, for stable, testing and unstable. * Apt source for amd64, hppa, i386, ia64, powerpc (not optimized): `deb http://www.debian-multimedia.org BRANCH main' Note: BRANCH = stable, testing or unstable Note: Install debian-multimedia-keyring to add in your keyring Marillat's gpg-key. Note: If Cinelerra produces the following error: `cinelerra: relocation error: /usr/lib/libavcodec.so.0.4.8: undefined symbol: faacDecOpen' You can solve the problem by entering the following command as root: `apt-get install --reinstall libfaad2-0=2.0.0-0.5' 2.8.2 Debian prerequisites -------------------------- Standard development packages These are packages which might be considered "standard" development pacakges. The chances are, though, that you wouldn't have them installed by default, so you will probably need them: * libtool * nasm * x11proto-xf86vidmode-dev - needed if you get `error: X11/extensions/xf86vmode.h: No such file or directory' * libxv-dev - needed if you get `error: X11/extensions/Xvlib.h: No such file or directory' * libxxf86vm-dev - needed if you get `/usr/bin/ld: cannot find -lXxf86vm' Extra Debian packages These are development packages which are "non-standard", and you'll almost certainly have to install them if you want to compile Cinelerra: * libogg-dev * libvorbis-dev * libtheora-dev * libopenexr-dev * libdv-dev * libpng-dev * libjpeg62-dev * libtiff4-dev * libfreetype6-dev * libfaad-dev * libsndfile1-dev * uuid-dev Some packages which may or may not be required: * libavutil-dev * libmpeg3-dev * libavcodec-dev External packages You need some prerequisites which are not found in Debian's official repositories. You should add in your `/etc/apt/sources.list' the following line, which is Christian Marillat's repository: `deb http://www.debian-multimedia.org/ sid main' You will need to apt-get install the following packages: * libx264-dev * libfaac-dev 2.9 Ubuntu ========== 2.9.1 Ubuntu packages repositories ---------------------------------- For Ubuntu 8.04 Hardy Heron: * for all x86 (full working on 32 and 64 bits), by Paolo RAMPINO: deb http://repository.akirad.net akirad-hardy main Installation notes: - To add this repository in your sources list use the following terminal command: `sudo wget http://repository.akirad.net/dists/hardy.list -O /etc/apt/sources.list.d/akirad.list' -Installations from this repository need an authentication key. Add it by typing the following command in your terminal: `wget -q http://repository.akirad.net/dists/akirad.key -O- | sudo apt-key add -' - Cinelerra package is available in 5 variants: cinelerra (x86 and x86_64 without opengl 2.0 video card) cinelerra-generic (all x86 and x86_64 with opengl 2.0 video card) cinelerra-k7 (amd32 without opengl 2.0 video card) cinelerra-k7gl (amd32 with opengl 2.0 video card) cinelerra-k8 (amd k8 optimized with opengl 2.0 video card) - Cinelerra must be set to work with PulseAudio. Open Cinelerra and go to Settings->Preferences->Playback->Audio Driver. Select ESound and set the following parameters: Server: Port: 7007 - These packages set shmmax to 0x7fffffff and add non-English language support for Cinelerra. - Please, report any package bug to akir4d at gmail dot com For Ubuntu 7.10 Gutsy Gibbon: * for all x86 (full working on 32 and 64 bits), by Paolo RAMPINO: deb http://repository.akirad.net akirad-gutsy main Installation notes: - To add this repository in your sources list use the following terminal command: `sudo wget http://repository.akirad.net/dists/gutsy.list -O /etc/apt/sources.list.d/akirad.list' -Installations from this repository need an authentication key. Add it by typing the following command in your terminal: `wget -q http://repository.akirad.net/dists/akirad.key -O- | sudo apt-key add -' - Cinelerra package is available in 5 variants: cinelerra (all x86 and x86_64 without opengl 2.0 video card) cinelerra-generic (all x86 and x86_64 with opengl 2.0 video card) cinelerra-k7 (all amd32 without opengl 2.0 video card) cinelerra-k7gl (all amd32 with opengl 2.0 video card) cinelerra-k8 (all amd64 with opengl 2.0 video card) - These packages set shmmax to 0x7fffffff and add Cinelerra non-English language support on Ubuntu. - Please, report any package bug to akir4d at gmail dot com * for i386 (not working on amd 32 bits), by Valentina MESSERI: deb http://giss.tv/~vale/ubuntu32 ./ * for AMD64 (and also Core Duo Intel64), by Valentina MESSERI: deb http://giss.tv/~vale/ubuntu64 ./ Note: - If your package manager complains that it does not have the right version of libfaac (1.25) you can install: `http://www.debian-multimedia.org/dists/stable/main/binary-amd64/package/libfaac0.php' For Ubuntu 7.04 Feisty Fawn: * for i386, optimised for UbuntuStudio, with OpenGL, by Valentina MESSERI: deb http://giss.tv/~vale/ubuntuopengl/ ./ * for AMD64 (and also Core Duo Intel64), by Valentina MESSERI: deb http://giss.tv/~vale/ubuntu64 ./ * for AMD64, with OpenGL disabled, by Valentina MESSERI: deb http://giss.tv/~vale/ubuntu64NOopengl/ ./ * for i386, by muzzol: deb http://www.kiberpipa.org/~muzzol/cinelerra/feisty-i386/ ./ * for i686, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/feisty/cinelerra/i686/ ./ * for athlonxp, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/feisty/cinelerra/athlonxp/ ./ * for pentium4, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/feisty/cinelerra/pentium4/ ./ For Ubuntu 6.10 Edgy Eft: * by muzzol deb http://www.kiberpipa.org/~muzzol/cinelerra/edgy-i386/ ./ * by Valentina MESSERI: deb http://giss.tv/~vale/ubuntu32 ./ For Ubuntu 6.06 Dapper Drake * necessary mjpegtools ubuntu backport, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/dapper/mjpegtools ./ * for pentium4, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/dapper/cinelerra/pentium4/ ./ * for i686, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/dapper/cinelerra/i686/ ./ * for athlonxp, by Jure CUHALEV: deb http://www.kiberpipa.org/~gandalf/ubuntu/dapper/cinelerra/athlonxp/ ./ 2.9.2 Instructions for Ubuntu packages installation --------------------------------------------------- Chose a repository from the ones above according to your release and CPU type and install the package. Here are 3 ways of doing that: With Synaptic Package Manager: Open the Software Sources Window. You can do it in two ways: - Go to System -> Administraton -> Software Sources - Inside Synaptic Package Manager: Go to Settings -> Repositories. Make sure you have universe, multiverse and restricted sources checked in the first tab. Click on tab Third Party. Click on the Add button and enter your chosen repository. Clicking Add Source will display the new repository enabled in the Software Sources window. You should now see Cinelerra in the list of packages available in Synaptic. Follow Synaptic instructions for installation. With the command line: Edit directly your `/etc/apt/sources.list' file. Make sure you have universe, multiverse and restricted sources enabled by checking you have the following line uncommented: deb http://archive.ubuntu.com/ubuntu dapper universe multiverse restricted Add the complete APT line of your chosen repository. Install Cinelerra by typing in your terminal: apt-get update and then apt-get install cinelerra With GDebi Package Installer: Send Firefox to the web address of the repository (e.g. http://www.kiberpipa.org/~muzzol/cinelerra/edgy-i386/.) Click on the .deb link for your chosen Cinelerra package (e.g. cinelerra_2.1.0+svn20070109-0ubuntu1_i386.deb) A dialog window will ask you to confirm your intention to open this file with GDebi Package installer. Clicking OK will start the download. If during the process you get errors about not satisfiable dependencies, try installing the problematic library with the same method from the same webpage. HOWTOs for package installation or compilation from source code * Installation of Ubunty Feisty AMD64 Cinelerra package: `https://help.ubuntu.com/community/CinelerraOnFeistyAMD64' * Compilation from source code on Ubuntu 7.10 Gutsy Gibbon (for beginners): `http://www.g-raffa.eu/Cinelerra/cin_compilation.html' * Compilation from source code on Ubuntu 7.10 Gutsy Gibbon: `http://lab.dyne.org/cinelerra/Gutsy' * Compilation from source code on Ubuntu 6.10 Edgy Eft: `http://www.ubuntuforums.org/showthread.php?t=320701&highlight=cinelerra' * Compilation from source code on Ubuntu Breezy: `http://placide.home.sapo.pt/cinelerra02.html' * Compilation from source code on Ubuntu (for beginners, in Italian): `https://faberlibertatis.org/wiki/Cinelerra_CV_su_Ubuntu' 2.10 Gentoo =========== Installation for Gentoo GNU/Linux is very straight forward. Simply type: emerge cinelerra-cvs as root and it should install and run without any problems. Note that you may need to put cinelerra-cvs in your `/etc/portage/package.keywords' file in order to unmask it: echo "=media-video/cinelerra-cvs ~x86" >> /etc/portage/package.keywords See `http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=3' for details. If you are running on an architecture other than x86 e.g. amd64, you will need to replace ~x86 with the relevant architecture e.g. ~amd64. You may also want to adjust the USE flags. First run emerge -av cinelerra-cvs to see what flags are available and then add the relevant ones to `/etc/portage/package.use': echo "media-video/cinelerra-cvs ieee1394" >> /etc/portage/package.use This would enable support for firewire devices. 2.11 Fedora =========== Cinelerra is included in the Freshrpms repository at `http://freshrpms.net'. The easiest way to install packages from Freshrpms is to include the repository in the yum configuration. Also make sure that the Fedora Extras repository is enabled. This is the case by default on Fedora 5 and 6, and Core and Extras are merged into one on Fedora 7. For Fedora 8 see `http://kernelreloaded.blog385.com/index.php/archives/install-cinelerra-on-fedora-8/' On Fedora 6, as the user root do: rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/6/\ freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm On Fedora 5, do: rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/5/\ freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm Then type: yum -y install cinelerra to get and install Cinelerra and all the dependencies, including ffmpeg and mjpegtools. If it does not work, check the `/etc/yum.conf' file and make sure that the Freshrpms config gets included from the `/etc/yum.repos.d'. Notes: * The package collection of Freshrpms may overlap and/or conflict with other third-party repositories such as Livna, which may also carry audio and video libraries and Cinelerra. It may be a good idea to stick with one repository and not mix packages from several different third-party repositories. * The header files of the various libraries are needed for compiling Cinelerra from source. The header files are included in separate devel packages that are included in the Fedora and Freshrpms repositories and can be installed with yum. At least the following are required: OpenEXR-devel SDL-devel a52dec-devel alsa-lib-devel e2fsprogs-devel faac-devel faad2-devel ffmpeg-devel fftw-devel imlib2-devel lame-devel libXv-devel libXxf86vm-devel libavc1394-devel libdv-devel libiec61883-devel libogg-devel libraw1394-devel libsndfile-devel libtheora-devel libvorbis-devel mjpegtools-devel x264-devel xvidcore-devel * If you want to compile Cinelerra from source on Fedora Core 6, detailed instructions on how to install the necessary dependent files can be found at: `http://crazedmuleproductions.blogspot.com /2007/03/fedora-core-6-cinelerra-dependencies.html' 2.12 Mandriva ============= Cinelerra packages for Mandriva are made by PLF are ready to install. Read `http://plf.zarb.org/packages.php' for more information. 2.13 Slackware ============== Rafael DINIZ build Slackware packages for Cinelerra. * For x86: `http://slack.sarava.org/packages/slackware/slackware-11.0/multimedia/' * For slackintosh: `http://slack.sarava.org/packages/slackintosh/slackintosh-11.0/multimedia/' 2.14 Suse ========= RPMs for SuSE 9 are built from SVN sources by Kevin BROSIUS, and available at `http://cin.kevb.net/files/RPM/' RPMs for OpenSUSE 10.1 and 10.2, architecture i586 and x86_64, are built from SVN by Leon FREITAG at Packman. They are available at `http://packman.links2linux.org/package/cinelerra/16413'. The RPM package(s) can be installed as root in a terminal using this command: rpm -Uvh package_name.rpm The following installation case shows four screenshots for a GUI based Cinelerra SVN installation on OpenSUSE 10.2 i586 using YaST2. First by adding packman's YaST2 repository as a YaST2 Installation source, and next the package installation with the YaST2 Software Manager. Start the YaST Control center on OpenSUSE 10.2 and add the root password when requested: Start the YaST2 installation source tool, select the HTTP protocol and add the servername for packman as shown. Synchronization with Zenworks may take some time, wait until it is finished. Start the YaST2 Software Management. Enter "Cinelerra" in the left search field and next check the checkboxes for the Cinelerra packages in the right window. If an older version of Cinelerra is installed on beforehand visible with a lock symbol, delete it, possibly try an update first. Click Accept to start the package installation and afterwards Next to finish. 2.15 MacOSX =========== FIXME 3 Configuration *************** Because of its flexibility, Cinelerra cannot be optimized without special configuration for your specific needs. Unfortunately, very few parameters are adjustable at compile time. Therefore, runtime configuration is the only option for most users because of the multitude of parameters available. Below are configuration options as well as the supported API's in GNU/Linux. In Cinelerra, go to settings->preferences to see the options. 3.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: * LADSPA_PATH If you want to use LADSPA plugins, this must be defined: a colon separated list of directories to search for LADSPA plugins. These are not native Cinelerra plugins. *Note Ladspa effects::. * GLOBAL_PLUGIN_DIR The directory in which Cinelerra should look for native plugins. The default is `/usr/lib/cinelerra' but you may need an alternate directory if you share the same executable directory among many machines via NFS. Plugins of different binary formats need to be in different directories. * LANG and LANGUAGE Cinelerra can be localized to display menus and messages in many languages. Cinelerra language settings are normally read from your GNU/Linux language settings. To run Cinelerra on a language different than the one selected on your system just change the LANG and LANGUAGE environment variables. For example, open a shell and type: `export LANG=es_ES LANGUAGE=es_ES', then run `cinelerra' from the same shell. It will open set on the Spanish language. Available languages are: * en_EN - English * es_ES - Espanol * sl_SI - Slovenian * fr_FR - Francais * eu_ES - Euskera * de_DE - German * pt_BR - Brazilian Portuguese * it_IT - Italian If your distribution has only UTF-8 support (like Ubuntu), first you must create the language charset with this command: `localedef -c -i (language_prefix) -f (your ISO-8859 variant) (language_prefix).(your ISO-8859 variant)' This is an example for Italian language: `localedef -c -i it_IT -f ISO-8859-15 it_IT.ISO-8859-15' Then you can run cinelerra with this command: `env LANG=$(echo $LANG | sed -e s/UTF-8/(your ISO-8859 variant)/g) cinelerra' This is an example for Italian language: `env LANG=$(echo $LANG | sed -e s/UTF-8/ISO-8859-15/g) cinelerra' In some cases (e.g. if you compiled Cinelerra specifying a `--prefix=' option different from `/usr/local') the translated .po files are not installed. If you can't run Cinelerra in your chosen language, try running the following commands before changing the LANG and LANGUAGE environment variables: `cd hvirtual' `./configure prefix=/usr' `cd po' `sudo make install' 3.2 Audio drivers ================= The audio drivers are used for both recording and playback. Their functionality is described below: 3.2.1 Sound driver attributes ----------------------------- * Device path Usually a file in the `/dev/' directory which controls the device. * Bits The number of bits of precision Cinelerra should set the device for. This sometimes has a figurative meaning. Some sound drivers need to be set to 32 bits to perform 24 bit playback and will not play anything when set to 24 bits. Some sound drivers need to be set to 24 bits for 24 bit playback. * Port The IEEE1394 standard specifies something known as the port. This is probably the firewire card number. * Channel The IEEE1394 standard specifies something known as the channel. For DV cameras it is always 63. * Device The chosen device. * Stop playback locks up This ALSA only checkbox is needed if stopping playback causes the software to lock up. 3.2.2 OSS --------- This was the first GNU/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 GNU/Linux 2.4. It still is the only sound driver which an i386 binary can use when running on an x86_64 system. 3.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, hence the need for the new driver. 3.2.4 Alsa ---------- ALSA is the most common sound driver in GNU/Linux 2.6. It supports most of soundcards now. It takes advantage of low latency features in GNU/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. We plan to support them at regular intervals, though 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 will crash. For this scenario, use OSS. 3.2.5 Esound ------------ ESOUND was a sound server that sat on top of OSS. It was written for a window manager called Enlightenment. It supports a limited number of bits and has high latency compared to more modern drivers, but it does have the ability to multiplex multiple audio sources. It is unknown whether it still works. 3.2.6 Raw 1394 -------------- The was the first interface between GNU/Linux software and firewire camcorders. It is the least reliable way to play audio to a camcorder and consists of a library on top of the kernel commands. 3.2.7 DV 1394 ------------- This is the second rewrite of DV camcorder support in GNU/Linux. This is the most reliable way to play audio to a camcorder and consists of direct kernel commands. 3.2.8 IEC 61883 --------------- The third rewrite of DV camcorder support in GNU/Linux. This is a library on top of RAW 1394 which is a library on top of the kernel commands. It is less reliable than DV 1394 but more reliable than RAW 1394. The next rewrite ought to fix that. Visit `http://www.linux1394.org' for more information and the latest drivers. 3.3 Video drivers ================= The video drivers are used for video playback in the compositor and the viewer. 3.3.1 Video driver attributes ----------------------------- * Display The interface is intended for dual monitor displays. Depending on the value of Display, the Compositor window will appear on a different monitor from the rest of the windows. * Device path Usually a file in the `/dev/' directory which controls the device. * Swap fields Make the even lines odd and the odd lines even when sending to the device. On an NTSC or 1080i monitor the fields may need to be swapped to prevent jittery motion. * Output channel You may need a specific connector to send video out to devices with multiple outputs. * Port The IEEE1394 standard specifies something known as the port. This is probably the firewire card number. * Channel The IEEE1394 standard specifies something known as the channel. For DV cameras it is always 63. 3.3.2 X11 --------- This was the first method of graphical display on any UNIX system. It just writes the RGB triplet for each pixel directly to the window. It is the slowest playback method. It is still useful as a fallback when graphics hardware can not handle very large frames. 3.3.3 X11-XV ------------ This was an enhancement to X11 in 1999. It converts YUV to RGB in hardware with scaling. It is the preferred playback method but can not handle large frame sizes. The maximum video size for XV is usually 1920x1080. 3.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. To enable it you will need a binary built with OpenGL support. The `configure' option to enable OpenGL is `--enable-opengl'. You need a video card which supports OpenGL 2.0. Recent Nvidia video cards should work. You also need to use a video driver supporting OpenGL 2.0, such as Nvidia's binary driver. To know if your video driver supports OpenGL 2.0, type the following command: `glxinfo | grep "OpenGL version"' * Video driver supporting hardware OpenGL 2.0 rendering: `OpenGL version string: 2.0.2 NVIDIA 87.74' * Video driver not supporting hardware OpenGL 2.0 rendering: `OpenGL version string: 1.4 (2.0.2 NVIDIA 87.74)' OpenGL relies on PBuffers and shaders to do video rendering. The graphics driver must support OpenGL 2.0 and Cinelerra needs to be explicitly compiled with OpenGL 2.0 support. This requires compiling it on a system with the OpenGL 2.0 headers. PBuffers are known to be fickle. If the graphics card does not have enough memory or does not have the right visuals, PBuffers will not work. If OpenGL does not work, try seeking several frames or restarting Cinelerra. Limitations: * OpenGL does not affect rendering. It just accelerates playback. * X11-OpenGL processes everything in 8 bit color models, although the difference between YUV and RGB is retained. * OpenGL does not work with frames whose size is larger than 4096x4096. Here is what is written in the console when working with large frames: `BC_Texture::create_texture frame size x bigger than maximum texture 4096x4096.' * The scaling equation set in the preferences window is ignored by OpenGL. OpenGL always uses linear scaling. * Project and track sizes need to be multiples of four 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 OpenGL. * Not all of the effects support OpenGL acceleration. The following effects support OpenGL: Brightness, Chromakey, Chromakeyhsv, Color balance, Deinterlace, Diffkey, Dissolve, Flip, Frames to fields, Freeze frame, Gamma, Gradient, Histogram, Hue saturation, Interpolate Pixels, Invert video, Linear blur, Overlay, Perspective, Radial blur, RGB601, Rotate, Scale, Threshold, Zoomblur. 3.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. Even though analog output is largely obsolete, newer drivers have replaced BUZ. 3.3.6 Raw 1394 video playback ----------------------------- This was the first interface between GNU/Linux software and firewire camcorders. It is the least reliable way to play video to a camcorder and it consists of a library on top of the kernel commands. 3.3.7 DV 1394 video playback ---------------------------- The second rewrite of DV camcorder support in GNU/Linux. This was the most reliable way to play video to a camcorder and consists of direct kernel commands. 3.3.8 IEC 61883 video playback ------------------------------ The third rewrite of DV camcorder support in GNU/Linux. This is a library on top of RAW 1394 and is less reliable than DV 1394 but more reliable than RAW 1394. The next rewrite ought to fix that. Visit `http://www.linux1394.org' for more information and the latest drivers. 3.4 Playback ============ 3.4.1 Audio out --------------- These determine what happens when you play sound from the timeline. * Playback buffer size For playing audio, small fragments of sound are read from disk and processed sequentially in a virtual console. A larger value here causes more latency when you change mixing parameters but yields more reliable playback. Some sound drivers do not allow changing of the console fragment, so latency is unchanged no matter what the value. Previously, a good way of ensuring high quality playback was to read bigger fragments from the disk and break them into smaller fragments for the soundcard. That changed when the virtual console moved from the push model to the pull model. Since different stages of the rendering pipeline can change the rate of the incoming data, it would be difficult to disconnect the size of the console fragments from the size of the fragments read from disk. * Audio offset The ability to tell the exact playback position on GNU/Linux sound drivers is poor, if it is provided at all. Since this information is required for proper video synchronization, it has to be accurate. The audio offset allows users to adjust the position returned by the sound driver in order to reflect reality. The audio offset does not affect the audio playback or rendering at all. It merely changes the synchronization of video playback. The easiest way to set the audio offset is to create a timeline with one video track and one audio track. Expand the audio track and center the audio pan. The frame rate should be larger than 24 fps and the sampling rate should be greater than 32000. The frame size should be small enough for your computer to render it at the full framerate. Highlight a region of the timeline starting at 10 seconds and ending at 20 seconds. Drop a gradient effect on the video track and configure it to be clearly visible. Drop a synthesizer effect on the audio and configure it to be clearly audible. Play the timeline from 0 and watch to see if the gradient effect starts exactly when the audio starts. If it does not, expand the audio track and adjust the nudge. If the audio starts ahead of the video, decrease the nudge value. If the audio starts after the video, increase the nudge value. Once the tracks play back synchronized, copy the nudge value to the audio offset value in preferences. Note: if you change sound drivers or you change the value of Use software for positioning information, you will need to change the audio offset because different sound drivers are unequally inaccurate. * View follows playback This causes the timeline window to scroll when the playback cursor moves. This can bog down the X Server or cause the timeline window to lock up for long periods of time while drawing the assets. * Use software for positioning information Most soundcards and sound drivers do not give reliable information on the number of samples the card has played. You need this information for synchronization when playing back video. This option causes the sound driver to be ignored and a software timer to be used for synchronization. * Audio playback in realtime Back in the days when 150 MHz was the maximum speed for a personal computer, this setting allowed uninterrupted playback during periods of heavy load. It forces the audio playback to the highest priority in the kernel. Today, it is most useful for achieving very low latency between console tweeks and soundcard output. You must be root to get real-time priority. * Audio driver There are many sound drivers for GNU/Linux. This allows selecting one sound driver and setting parameters specific to it. The sound drivers and their parameters are described in the sound driver section. *Note Audio drivers::. 3.4.2 Video out --------------- These determine how video gets from the timeline to your eyes. * Play every frame This causes every frame of video to be displayed even if it means that the playback of the video track(s) will fall behind. This option should always be enabled unless you use uncompressed codecs. As of 1/2007, most compressed codecs do not support frame dropping anymore. * Framerate achieved The number of frames per second being displayed during playback. This is updated during playback only. * Decode frames asynchronously If you have lots of memory and more than one CPU, this option can improve playback performance by decoding video on one CPU as fast as possible while dedicating the other CPU to playing back video. It assumes all playback operations are forward and no frames are dropped. Operations involving reverse playback or frame dropping are negatively impacted. Since this option requires enormous amounts of memory, Cinelerra may crash if the input frames are very large. * Scaling equation This algorithm is used when video playback involves any kind of scaling or translation in the virtual console. This does not affect 1:1 playback. * Nearest neighbor enlarge and reduce Low quality output with fast playback. Produces jagged edges and uneven motion. * Bicubic enlarge and bilinear reduce High quality output with slow playback. Bicubic interpolation is used for enlarging, which blurs slightly but does not show stair step artifacts. A bilinear interpolation is used for reduction, which produces very sharp images and reduces noise. Bilinearly reduced images can be sharpened with a sharpen effect with less noise side effects than a normal sized image. * Bilinear enlarge and bilinear reduce When slight enlargement is needed, a bilinear enlargement looks better than a bicubic enlargement. * Preload buffer for Quicktime The Quicktime/AVI decoder can handle DVD sources better when this is set to around 10000000. This reduces the amount of seeking required. When reading high bitrate sources from a hard drive, this tends to impair performance by slowing down decoding. For normal use this should be 0. * DVD subtitle to display DVD IFO files usually contain subtitle tracks. These must be decoded with the MPEG decoder. Select Enable subtitles to enable subtitle decoding. There are usually multiple subtitle tracks indexed by number and starting from 0. Enter the index number of the subtitle track to be decoded in the "DVD Subtitle to display" text box or use the tumbler to increase the index value. Go to the asset corresponding to the MPEG file in the Resources window and right click. Click on Info. The number of subtitle tracks is shown at the bottom. * Interpolate CR2 images Enables interpolation of CR2 images. Interpolation is required since the raw image in a CR2 file is a Bayer pattern. The interpolation uses dcraw's built-in interpolation and is very slow. This operation can be disabled and the Interpolate Pixels effect used instead for faster previewing. * White balance CR2 images This enables white balancing for CR2 images if interpolation is also enabled. This is because proper white balancing needs a blending of all 3 primary colors. White balance uses the camera's matrix which is contained in the CR2 file. Disabling white balancing is useful for operations involving dark frame subtraction. The dark frame and the long exposure need to have the same color matrix. If you disable Interpolate CR2 Images and use the Interpolate Pixels effect, be aware the Interpolate Pixels effect always does both interpolation and white balancing using the camera's matrix, regardless of the settings in Preferences. Dark frame subtraction needs to be performed before Interpolate Pixels. * Video driver Normally video on the timeline goes to the compositor window during both continuous playback and when the insertion point is repositioned. Instead of sending video to the Compositor window, the video driver can be set to send video to another output device during continuous playback. However, this does not affect where video is routed when the insertion point is repositioned. The video drivers and their parameters are described in the video drivers section. *Note Video drivers::. 3.5 Recording ============= The parameters here expedite the File->Record... function by allowing the user to pre-configure the file format. The file format is applied to all recordings. Also set here is the hardware for recording, since the hardware determines the supported file format (in most cases). 3.5.1 File format ----------------- This determines the output file format for recordings. It depends heavily on the type of driver used. The menu selections are the same as the rendering interface. See *Note Rendering files::. 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 in order to set the compression scheme (codec) for each audio and video output stream. The audio and video is wrapped in a container format 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 container. DV, for example, can only record to Quicktime with DV as the video compression scheme. 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. 3.5.2 Audio in -------------- These determine what happens when you record audio. * Record driver This is used for recording audio in the Record window. It may be configured the same as the Record Driver for video if the audio and video are wrapped in the same stream. Available parameters vary depending on the driver. Note that the drivers are the same as those available in Preferences->Playback. *Note Audio drivers::. * Samples to write to disk at a time First, audio is read in small fragments from the device. Then, many small fragments are combined into a large fragment before writing to disk. The disk writing process is done in a different thread. The value here determines how large the combination of fragments is for each disk write. * Sample rate for recording Regardless of what the project settings are, the value set here will be the sample rate used for recording. The sample rate should be set to the highest value the audio device supports. 3.5.3 Video in -------------- These determine what happens when you record video. * Record driver This is used for recording video in the Record window. It may be configured the same as the Record Driver for video if the audio and video are wrapped in the same container. Available parameters vary depending on the driver. Note that the drivers available are the as those available in Preferences->Playback. *Note Video drivers::. * Frames to record to disk at a time Frames are recorded in a pipeline. First, frames are buffered in the device. Then, they are read into a larger buffer for writing to disk. The disk writing is done in a separate thread from the device reading. For certain codecs the disk writing uses multiple processors. The value set here determines how many frames are written to disk at a time. * Frames to buffer in device This is the number of frames to store in the device before reading and determines how much latency there can be in the system before frames are dropped. * Use software for positioning information Video uses audio for synchronization, but most soundcards do not give accurate position information. Selecting this options makes Cinelerra calculate an estimation of audio position in software instead of hardware for synchronization. * Sync drives automatically For high bitrate recording, the disk drives you use may be fast enough to store the data but your operating system may wait several minutes and stall as it writes several minutes of data at a time. This forces the operating system to flush its buffers every second instead of every few minutes to produce slightly better real-time behavior. * Size of captured frame This is the size of the recorded frames in pixels. It is independent of the project frame size because most video devices only record a fixed frame size. If the frame size given here is not supported by the device, Cinelerra may crash. * Frame rate for recording The frame rate recorded is different from the project settings. This sets the recorded frame rate. 3.6 Performance =============== You will spend most of your time configuring this section. The main focus of the performance section is rendering parameters not available in the rendering dialog. * Cache items To speed up rendering, several assets are kept open simultaneously. This determines how many are kept open. A number too large may exhaust your memory pretty fast and result in a crash. A number too small may result in slow playback as assets need to be reopened more frequently. * Seconds to preroll renders Some effects need a certain amount of time to settle in. Checking this option sets a number of seconds to render without writing to disk before the selected region is rendered. When using the renderfarm, you will sometimes need to preroll to get seemless transitions between the jobs. Every job in a renderfarm is prerolled by this value. This does not affect background rendering, however. Background rendering uses a different preroll value. * Force single processor use Cinelerra tries to use all processors on the system by default, but sometimes you will only want to use one processor, like in a renderfarm client. This forces only one processor to be used. In addition, the operating system usually uses the second processor for disk access. So this option is really a 1.25 processor mode. The value of this parameter is used in renderfarm clients. 3.6.1 Background rendering -------------------------- Background rendering was originally conceived to allow HDTV effects to be displayed in real-time. Background rendering causes temporary output to be rendered constantly while the timeline is being modified. The temporary output is displayed during playback whenever possible. This is useful for transitions and previewing effects that are too slow to display in real time. If a renderfarm is enabled, the renderfarm is used for background rendering. This gives you the potential for real-time effects if enough network bandwidth and CPU nodes exist. Background rendering is enabled in the Performance tab of the Preferences window. It has one interactive function Settings menu -> Set background render. This sets the point where background rendering starts up to the position of the insertion point. If any video exists, a red bar appears in the time ruler showing what has been background rendered. It is often useful to insert an effect or a transition and then select Settings menu -> Set background render right before the effect to preview it in real time and full framerates. * Frames per background rendering job This only works if a renderfarm is being used; otherwise, background rendering creates a single job for the entire timeline. The number of frames specified here is scaled to the relative CPU speed of rendering nodes and used in a single renderfarm job. The optimum number is 10 - 30 since network bandwidth is used to initialize each job. * Frames to preroll background This is the number of frames to render ahead of each background rendering job. Background rendering is degraded when preroll is used since the jobs are small. When using background rendering, this number is ideally 0. Some effects may require 3 frames of preroll. * Output for background rendering Background rendering generates a sequence of image files in a certain directory. This parameter determines the filename prefix of the image files. It should be on a fast disk, accessible to every node in the renderfarm by the same path. Since hundreds of thousands of image files are usually created, `ls' commands will not work in the background rendering directory. The browse button for this option normally will not work either, but the configuration button for this option works. * File format The file format for background rendering has to be a sequence of images. The format of the image sequences determines the quality and speed of playback. JPEG is good most of the time. 3.6.2 Renderfarm ---------------- To use the renderfarm, set these options. Ignore them for a standalone system * Use render farm for rendering When selected, all the file->render operations use the renderfarm. * Nodes Displays all the nodes on the renderfarm and shows which ones are active. Nodes are added by entering the host name of the node, verifying the value of port and selecting add node. If you have hundreds of nodes, experienced users may be better off editing the `~/.bcast/.Cinelerra_rc' file rather than using configuration dialog. Remember that `.Cinelerra_rc' is overwritten whenever a copy of Cinelerra exits. Once nodes are created, select the ON column to activate and deactivate nodes. Nodes may be edited by highlighting a row and hitting apply changes. * Hostname Edit the hostname of an existing node or enter the hostname of a new node here. * Port Edit the port number of an existing node or enter the port number of a new node here. * Apply changes When editing an existing node, select this to commit the changes to hostname and port. The changes will not be committed if you do not click this button. * Add node Create a new node with the hostname and port settings. * Delete node Deletes whatever node is highlighted in the nodes list. * Sort nodes Sorts the nodes list based on the hostname. * Reset rates This sets the framerate for all the nodes to 0. Frame rates are used to scale job sizes based on CPU speed of the node. Frame rates are calculated only when renderfarm is enabled. * Total jobs to create Determines the number of jobs to dispatch to the renderfarm. The more jobs you create, the more finely balanced the renderfarm becomes. You can determine the total jobs to create by multiplying the number of nodes including the master node by some number. Multiply them by 1 to have one job dispatched for every node. Multiply them by 3 to have 3 jobs dispatched for every node. If you have 10 slave nodes and one master node, specify 33 to have a well balanced renderfarm. 3.7 Interface ============= These parameters affect purely how the user interface works. * Time format Various representations of time are given. Select the most convenient one. The time representation can also be changed by clicking on the timebar. * Index files go here Back in the days when 4 MB/sec was extremely fast for a hard drive, index files were introduced to speed up drawing the audio tracks. This option determines where index files are placed on the hard drive. * Size of index file This determines the size of an index file. Larger index sizes allow smaller files to be drawn faster, while slowing down the drawing of large files. Smaller index sizes allow large files to be drawn faster, while slowing down small files. * Number of index files to keep To keep the index directory from becoming unruly, old index files are deleted. This determines the maximum number of index files to keep in the directory. * Delete existing indexes When you change the index size or you want to clean out excess index files, this deletes all the index files. * Use thumbnails The Resource Window displays thumbnails of assets by default. Drawing asset thumbnails can take a while. This option disables thumbnail drawing. * Dragging edit boundaries does what Cinelerra not only allows you to perform editing by dragging edit boundaries, but also defines three separate operations that occur when you drag an edit boundary. Here you can select the behavior of each mouse button. The usage of each editing mode is described in the editing chapter. *Note Trimming::. * Min dB for meter Some sound sources have a lower noise threshold than others. Everything below the noise threshold is meaningless. This option sets the meters to clip below a certain level. Consumer soundcards usually bottom out at -65. Professional soundcards bottom out at -90. *Note Sound level meters window::. * Max dB for meter This sets the maximum sound level represented by the sound meters. No matter what this value is, no soundcard can play sound over 0 dB. This value is presented merely to show how far over the limit a sound wave is. *Note Sound level meters window::. * Theme Cinelerra supports variable themes. Select one here and restart Cinelerra to see it. 3.8 About window ================ 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. 4 Project attributes ******************** 4.1 Set format window ===================== When you play media files in Cinelerra, the media files have a certain number of tracks, a certain frame size, a certain sample size, and so on and so forth. No matter what attributes the media file has, it is played back according to the project attributes. So, if an audio file's sample rate is different than the project attributes, it is resampled. In like fashion, if a video file's frame size is different than the project attributes, the video is composited on a black frame, either cropped or bordered with black. The project attributes are adjusted in Settings->Set Format and to a lesser extent in File->New. When you adjust project settings in File->New, a new, empty timeline is created. Every timeline created from this point on uses the same settings. When you adjust settings in Settings->Format, media on the timeline is left unchanged. Also, every timeline created from this point uses the same settings. Set Format window In addition to the traditional settings for sample rate, frame rate, frame size, Cinelerra uses some unusual settings like channel positions, color model, and aspect ratio. 4.2 Presets =========== Select an option from this menu to have all the project settings set to one of the known standards. 4.3 Audio attributes ==================== * Tracks Sets the number of audio tracks for the new project. Tracks can be added or deleted later, but options are provided here for convenience. * Samplerate Sets the samplerate of the audio. The project samplerate does not have to be the same as the media sample rate that you load. Media is resampled to match the project sample rate. * Channels Sets the number of audio channels for the new project. The number of audio channels does not have to be the same as the number of tracks. * Channels positions The currently enabled audio channels and their positions in the audio panning boxes in the track patchbay are displayed in the channel position widget. The channel position widget The channels are numbered. When rendered, the output from channel 1 is rendered to the first output track in the file or the first soundcard channel of the soundcard. Later channels are rendered to output tracks numbered consecutively. The audio channel positions correspond to where in the panning widgets each of the audio outputs is located. The closer the panning position is to one of the audio outputs, the more signal that speaker gets. Click on a speaker icon and drag to change the audio channel location. The speakers can be in any orientation. A different speaker arrangement is stored for every number of audio channels since normally you do not want the same speaker arrangement for different numbers of channels. Channel positions is the only setting that does not affect the output necessarily. It is merely a convenience, so that when more than two channels are used, the pan controls on the timeline can distinguish between them. It has nothing to do with the actual arrangement of speakers. Different channels can be positioned very close together to make them have the same output. *Note Panning audio tracks::. 4.4 Video attributes ==================== * Tracks Sets the number of video tracks the new project is assigned. Tracks can be added or deleted later, but options are provided here for convenience. * Framerate Sets the framerate of the video. The project framerate does not have to be the same as an individual media file frame rate that you load. Media is reframed to match the project framerate. * Canvas size Sets the size of the video output. In addition, each track also has its own frame size. Initially, the New Project dialog creates video tracks whose size match the video output. The video track sizes can be changed later without changing the video output. *Note The track popup menu::. * Aspect ratio Sets the aspect ratio. The aspect ratio is applied to the video output. The aspect ratio can be different than the ratio that results from the formula: h / v (the number of horizontal pixels divided into the number of vertical pixels). If the aspect ratio differs from the results of the formula above, your output will be in non-square pixels. * Auto aspect ratio If this option is checked, the New Project dialog always recalculates the Aspect ratio setting based upon the given Canvas size. This ensures pixels are always square. * Color model The project will be stored in the color model video intermediates selected in the dropdown. Color model is very important for video playback because video has the disadvantage of being very slow. Although it is not noticeable, audio intermediates contain much more information than the audio on disk and the audio which is played. Audio always uses the highest bandwidth intermediate because it is fast. Video intermediates must use the least amount of data for the required quality because it is slow, but video intermediates still use a higher bandwidth color model than video which is stored and video which is played. This allows more processing to be done with less destruction of the original data. The video is stored on disk in one colormodel, usually a YUV derivative. When played back, Cinelerra decompresses it from the file format directly into the format of the output device. If effects are processed, Cinelerra decompresses the video into an intermediate colormodel first and then converts it to the format of the output device. The selection of an intermediate colormodel determines how fast and accurate the effects are. Cinelerra colormodels are described using a certain packing order of components and a certain number of bits for each component. The packing order is printed on the left and the bit allocation is printed on the right. * RGB-888 This allocates 8 bits for the R, G, and B channels and no alpha. This is normally used for uncompressed media with low dynamic range. * RGBA-8888 This allocates an alpha channel to the 8 bit RGB colormodel. It is used for overlaying multiple tracks. * YUV-888 This allocates 8 bits for Y, U, and V. This is used for low dynamic range operations in which the media is compressed in the YUV color space. Most compressed media is in YUV and this derivate allows video to be processed fast with the least color degradation. * YUVA-8888 This allocates an alpha channel to the 8 bit YUV colormodel for transparency. * RGB-Float This allocates a 32 bit float for the R, G, and B channels and no alpha. This is used for high dynamic range processing with no transparency. * RGBA-Float This adds a 32 bit float for alpha to RGB-Float. This is used for high dynamic range processing with transparency. In order to do effects which involve alpha channels, a colormodel with an alpha channel must be selected. These are RGBA8888, YUVA8888, and RGBA Float. The 4 channel colormodels are slower than 3 channel colormodels, with the slowest being RGBA Float. Some effects, like fade, work around the need for alpha channels while other effects, like chromakey, require an alpha channel to do anything, so it is a good idea to try the effect without alpha channels to see if it works before settling on an alpha channel and slowing it down. When using compressed footage, YUV colormodels are usually faster than RGB colormodels. They also destroy fewer colors than RGB colormodels. If footage stored as JPEG or MPEG is processed many times in RGB, the colors will fade whereas they will not fade if processed in YUV. Years of working with high dynamic range footage have shown floating point RGB to be the best format for high dynamic range. 16 bit integers were used in the past and were too lossy and slow for the amount of improvement. RGB float does not destroy information when used with YUV source footage and also supports brightness above 100%. Be aware that some effects, like Histogram, still clip above 100% when in floating point. 5 Loading and saving files ************************** 5.1 Supported file formats ========================== Here are most of the supported file formats that can be loaded and redered to, with 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 stored in XML save the project settings. Formats which contain media but no edit decisions just add data to the tracks. If your project sample rate is 48 kHz and you load a sound file with 96khz, you will still be playing it at 48 kHz. If you load an EDL file at 96khz and the current project sample rate is 48 kHz, you will change it to 96 kHz. Some file formats are very slow to display on the timeline. These usually have video which is highly compressed. Drawing highly compressed video thumbnails on the timeline (picons) can be very slow. Disable picon drawing for these files with the draw media toggle in the patchbay to speed up operations. Supported file formats that Cinelerra can import and export are currently: 5.1.1 Quicktime --------------- Quicktime is not the standard for UNIX but we use it because it is well documented. All of the Quicktime movies on the internet are compressed. Cinelerra supports some compressed Quicktime movies. If Cinelerra crashes when loading a Quicktime movie, it is most likely because the format was not supported. Quicktime is a container for two streams, a video stream and an audio stream. These streams are compressed using separate encoding schemes. The preferred encoding for Quicktime output is MPEG-4 Video and MPEG-4 Audio. This format is compatible in the commercial players for Windows, has good compression quality and good output quality. For better compression, use H-264 video. Unfortunately H-264 decoding is so slow it can not play very large frame sizes. Cinelerra supports two non-standard codecs: Dual MPEG-4 video and Dual H.264 video. These will not play in anything but Cinelerra and XMovie. They are designed for movies where the frames have been divided into two fields, each field displayed sequentially. The dual codecs interleave two video streams to improve efficiency without requiring major changes to the player. 5.1.2 MPEG-4 audio ------------------ This is the same as Quicktime with MPEG-4 Audio as the audio codec. 5.1.3 Still images ------------------ 5.1.3.1 Loading still images ............................ You can load still images on video tracks just like you do for any video file. Supported file formats are mainly: PNG, TIF, TGA or JPG, EXR, raw digital camera images. When loaded on the timeline, by default the image takes up one frame in length. To view the image, zoom in time () on the timeline so you can see the single frame. To extend the length of the image, drag its boundaries just as you would do with regular video media. You can drag the boundaries of a still image as much as you want. Images in Cinelerra have the ability to be dragged to an infinite length. Cinelerra lets you define the initial duration of the loaded images. The parameter is set in the Images section of the Settings->Preferences->Recording window. Unless your original material comes from a digital source (like a digital photo camera), the first thing you have to do before you can use it is to somehow capture the assets into a usable digital medium. For old photos, paper maps, drawings or diagrams, you might have to scan them into a file format like PNG, TIF, TGA or JPG files by using a digital scanner. You might want to use Gimp to post-process the images, clean damaged areas or color correct the assets. If your assets come from a digital source like a digital camera or a screen capture, be sure to capture the material using the best resolution possible. This will allow you to get the best quality output from your Cinelerra project. Rendering a video to a single image causes the final image file to be overwritten for every timeline position. The rendered file is a single still image of the last frame of the video. No table of contents is created. *Note Images sequence::. 5.1.3.2 Still images size ......................... Imported images always stay at their original size. Therefore, you may need to scale your pictures before importing them in Cinelerra. For resizing your picture to fit the project size you can use Imagemagick (`http://www.imagemagick.org/script/index.php') Example: `convert inputfile.jpg -resize 720x576 outputfile.jpg' You have to take into account the aspect ratio of your video. For example, PAL images aspect ratio is 4/3, but 720x576 is 5/4. For your imported images to be displayed correctly, you have to rescale their horizontal size: new horizontal size=(5 / 4) / (4 / 3) x original horizontal size For PAL videos, you have to multiply the horizontal size of the pictures you want to import by a factor of 0.9375. Here is a small shell script which, when ran from a folder containing jpg images, resize those images and put the new images in a `resized' folder: Note: Make sure you have installed Imagemagick which provides the functions 'identify' and 'convert' used in the script. #/bin/sh mkdir resized for element in `ls . | grep -i '\.jpe*g$\'`; do size=`identify ${element}` width=`echo ${size} | sed '+s+.*JPEG ++' | sed '+s+x.*++'` height=`echo ${size} | sed '+s+.*JPEG [0-9]*x++' | sed '+s+DirectClass.*++'` let new_width=${width}*9375/10000 convert -resize "${new_width}x${height}!" -quality 100 ${element} resized/${element} done When the size of your image is different from the size of your project, but the ratio is the same, you might want to keep the image at its original size, to load it on a dedicated track and adjust the display of it with the camera zoom. *Note The camera and projector::. 5.1.3.3 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 the benefits of EXR. *Note Project attributes::. Several compression options are available for EXR. * PIZ: Lossless wavelet compression. This is the best compression. * ZIP: Lossless gzip algorithm. * RLE: Lossless run length encoding. This is the fastest, but worst compression. * PXR24: Lossy compression where the floating point numbers are converted to 24 bits and compressed with gzip. 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. 5.1.3.4 Raw digital camera images ................................. RAW digital camera images are a special kind of image file that Cinelerra only imports. Once they are on the timeline, these must be processed in a floating point color space. Raw images from Canon cameras are the only ones tested. They need to have the Gamma 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 Gamma 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. 5.1.4 Images sequence --------------------- An images sequence is a series of ordered still pictures (e.g. the frames of an animated scene). They can be loaded as multiple files. An image sequence can be represented in Cinelerra also by an image list file, called also Table Of Contents file (TOC). A TOC is a text file with a specific format containing absolute paths to every frame in the sequence plus additional information like image resolution, fileformat and sequence framerate. To get better performance, the table of contents can be loaded as a single asset instead of the individual images. A TOC is not a media file but it behaves like a video clip. Cinelerra creates TOC files by rendering to "Images sequence". When rendering a video to an images sequence Cinelerra creates a different image file for every timeline position and generates a TOC for this images sequence. This is useful to split video into frames as single stills. When rendering a series of stills to an images sequence Cinelerra generates a TOC for the images sequence but also creates a different image file for every still. The source files are copied and renamed. The TOC file contains the paths to the new files. This is useful only when you want to create a list and change the format of your source files. For creating a TOC file without creating new image files you can use external list generators like IMG2LIST 0.1.5. (by Claudio "malefico" ANDAUR) or Seven Gnomes (by Peter SEMILETOV). See `http://cvs.cinelerra.org/user-tips.php'. Cinelerra can create TOCs with the following formats: JPEG, PNG, EXR, TIFF, TGA. Images lists can be edited manually. 5.1.5 AVI --------- Because AVI (Audio-Video Interleave) is so fragmented with varied audio and video codecs, you may not be able to play all AVI formatted files. 5.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 is not good enough if you intend to use the files in a renderfarm. To use MPEG files in a renderfarm, you need to run mpeg3toc in order to generate a table of contents for the file and then load the table of contents. mpeg3toc needs the absolute path of the MPEG file. If you do not use an absolute path, it assumes that 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 two 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 is the target bitrate. If the quantization is fixed, it is the maximum bitrate allowed. This is a quirk of the mpeg2enc version. 5.1.7 DVD movies ---------------- DVD are split 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'. 5.1.8 MPEG 1 audio ------------------ MPEG 1 audio files have .mp2 and .mp3 extension. If the files are encoded using a fixed bitrate, they can be loaded directly on Cinelerra. Otherwise a table of contents (TOC) needs to be created and loaded as resources in place of the audio file. If you know your audio stream has variable bitrate or if you see Cinelerra can't seek and playback your file properly, you must create the TOC using mpeg3toc. Here is an example of command: `mpeg3toc -v /path/to/myfile.mp3 myfile.toc' `myfile.toc' is the Table of Contents that can be loaded as resource. The path should be absolute unless you plan to always keep your .xml in the same directory as the filename. For renderfarms the filesystem prefix should be / and the movie directory mounted under the same directory on each node. 5.1.9 Ogg Theora/Vorbis ----------------------- The OGG format is an antiquated but supposedly unpatented way of compressing audio and video. The quality is not 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. 5.1.10 Edit decision list ------------------------- Edit decision lists are generated by Cinelerra for storing projects. EDL files end in .xml. When loaded, they change the attributes of the current project. Because edit decision lists consist of text, they can be edited in a text editor. 5.1.11 WAV ---------- FIXME 5.1.12 PCM ---------- FIXME 5.1.13 AIFF ----------- FIXME 5.1.14 AC3 audio ---------------- FIXME 5.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 Files, select a file for loading, and click ok. Depending on the setting of the Insertion Strategy list box, your file will be either loaded on the Resources Media window or directly on the Program window. In this last case, click the forward play button and it should start playing, regardless of whether a progress bar has appeared. The Load window 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 in order to speed up drawing. You can edit and play the file while the index file is being built. 5.2.1 Insertion strategy ------------------------ Usually, three things happen when you load a file: 1. the existing project is cleared from the screen 2. the project's attributes are changed to match the file's attributes 3. the new file's tracks are created in the timeline However, Cinelerra lets you change what happens when you load a file. In the Load dialog window go to the Insertion strategy box and select one of the options of the drop down menu. Each of these options loads the file a different way. * Replace current project All tracks in the current project are deleted and a set of new tracks are created to match the source file. Project attributes are only changed when loading XML. If multiple files are selected for loading, Cinelerra adds a set of new tracks for each file. New resources are created in the Resources Window, replacing the current ones. * Replace current project and concatenate tracks Same as replace current project, except that if multiple files are selected, Cinelerra will concatenate the tracks of each file, inserting different source files in the same set of tracks, one after another, in alphanumeric order, starting at 0. New resources are created in the Resources Window, replacing the current ones. * Append in new tracks The current project is not deleted and new tracks are created for the source, one set of tracks for each file. New resources are created in the Resources Window * Concatenate to existing tracks The current project is not deleted and new files are concatenated to the existing armed tracks, inserted in the same set of tracks of the current project, one after another, in alphanumeric order, starting at the end of the tracks. If the current project has more tracks than the source, the source file will be inserted in the first set of armed tracks. If no tracks are armed, no files will be inserted. New resources are created in the Resources Window * Paste at insertion point The file is pasted into the timeline at the insertion point, on the first set of armed tracks. If multiple files are selected for loading, they will be inserted on the same set of tracks, one after the other. New resources are created in the Resources Window * Create new resources only The timeline is unchanged and new resources are created in the Resources Window only. Using these options, you can almost do all your editing by loading files. The insertion strategy is a recurring option in many of Cinelerra's functions. In each place the options do the same thing. If you load files by passing command line arguments to Cinelerra, the files are loaded with Replace current project rules. 5.2.2 Loading multiple files ---------------------------- In the Load dialog go to the list of files. Select a file. Go to another file and select it while holding down . This selects one additional file. Go to another file and select it while holding down . This selects every intervening file. This behavior is available in most list box. Use this method and the Concatenate to existing tracks insertion strategy to create an images slideshow or a song playlist. 5.2.3 Loading files from the command prompt ------------------------------------------- Another way to load files is to pass the filenames as arguments on the command line. `cinelerra myvideo.mov myothervideo.mov' This starts the program with all the arguments loaded and creates new tracks for every file. 5.2.4 Filtering files by extension ---------------------------------- If there are too many files in your media directory, it can be difficult to find the file you want. For this purpose, the Load window allows you to filter which files are displayed in the list box by extension name. Click the dropdown box (right below the file name text box) and select the file extension of your media (i.e. mpg, mov, mp3, avi, etc). The file list now shows only files with the selected extension. 5.2.5 Loading other formats --------------------------- If you can not load a particular kind of video clip and do not have the original source file, you will have to convert it to a format supported by Cinelerra. To convert your file to mpeg2 is a good solution, since Cinelerra load that format without any problem. In that case, you should use ffmpeg to do the convertion. However, the mpeg2 formats requires the video to have specific image size and framerates: * PAL is 720x576 at 25 fps * NTSC is 720x480 at 29.97 (=30000/1001) fps For input files which do not have those properties, you should use mencoder to convert to MPEG4. You can identify the codecs and container of any video by running the following command: `mplayer -identify ' * Converting with ffmpeg: `ffmpeg -sameq -i original_video.xyz converted_video.mpeg' The `-sameq' option maintains the original quality. * Converting with mencoder: `mencoder original_video.xyz -ovc lavc -lavcopts vcodec=mpeg4:\' `vhq:vbitrate=6000 -oac mp3lame -lameopts br=256:vol=1 \' `-ffourcc DIVX -o converted_video.avi' 5.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, the first thing you should do after restarting Cinelerra is select File->Load backup in order to load the backup. This will start Cinelerra at the point in your editing operations directly before the program crashed. It is important after a crash to restart Cinelerra without performing any editing operations as you will overwrite the backup. Note that the backup.xml file is always an only file, also when you are working with two instances of Cinelerra open at the same time. In this case, the last operation made in whatever instance will overwrite the backup. 5.4 Saving project files ======================== Cinelerra saves projects as XML files. Go to File->Save. Select a file to overwrite or enter a new file. Cinelerra automatically concatenates `.xml' to the filename if no `.xml' extension is given. When Cinelerra saves a file, it saves an edit decision list (EDL) of the current project but does not save any media. The saved file consists of text. It contains all the project settings and locations of every edit. Instead of media, the file 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 is in a different directory, an absolute path is saved. You have to be careful when moving files around: you risk to break the media linkages. You can keep the media and the XML file in the same directory forever and freely move the whole directory, since relative paths are saved. Alternatively you can save the XML file in a different directory than the media but you can't move the media ever again. In this case you can freely move your XML file around, since absolute paths are saved. If you saved your XML file in the same directory of your media but you would like to move your project to another location, you can change the paths from relative to absolute by going to File->Save as... and entering the new location. Similarly if you saved your project outside your media directory but you would like to move your media to another location, you can change the paths from absolute to relative by going to File->Save as... and saving your XML file in the same directory of the media. If you want to create an audio playlist and burn it on a 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. It must be said that since an XML file is a text file, you can always repair broken media linkage by editing the XML file in a text editor. For every media you moved, search for the old path and replace it with the new one. Don't forget to make a backup copy of your XML file before doing any editing! You can replace the path of every asset whose source file you moved also within the program, by entering the new location in the Asset info window. To open this window, right click on the asset in the Resources window and choose Info... in the popup menu. Directly type the path in the first field of the dialog or click on the magnifier on the right to browse your files. Operating from the GUI is convenient only when a very small number of changes is needed. XML files are useful in saving the current state of Cinelerra before retiring from an editing session. XML files are specific to Cinelerra only. You can not play XML files in a dedicated movie player. Real-time effects in an XML file have to be re-synthesized every time you play it back. The XML file also requires you to maintain copies of all the source assets on hard disk, which can take up space and cost a lot of electricity to spin. Render your projects to a final format for more persistent storage of the output. 5.5 Merging projects ==================== To merge several separate projects into one big one : 1. Open Cinelerra 2. Load project A 3. Open a second copy of Cinelerra 4. Load project B 5. Cut and paste from A to B 6 Program window **************** This window contains the timeline and the entry point for all menu driven operations. The timeline consists of a vertical stack of tracks with a horizontal representation of time. This defines the output of rendering operations and what is saved when you save files. To the left of the timeline is the patchbay which contains options affecting each track. The timeline Under the Window menu, you will find options that affect 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. 6.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 horizontally. The horizontal scroll bar allows you to scan across time. The vertical scroll bar allows you to scan across tracks. 6.1.1 Video and audio tracks ---------------------------- A video track Video tracks represent the duration of your videos and clips, just as if you placed real photographic film stock end-to-end on a table. The individual images you see on the track are samples of what is located at that particular instant on the timeline. An audio track Audio tracks represent your sound media as an audio waveform. Following the film analogy, it would be as if you "viewed" magnetic tape horizontally on your table. You can adjust the horizontal and vertical magnification of the tracks and the magnification of the audio "waveform" display using the zoom panel bar controls. Every track on the timeline has a set of attributes on the left, called the patch bay. It is used to control the behavior of the tracks. The most important attribute is arm track. 6.1.2 Track navigation ---------------------- Track Navigation involves both selecting a specific audio or video track and moving to a certain time in the track. The program window contains many features for navigation and displays the timeline as it is structured in memory. The vertical scroll bar allows you to scan across tracks. For vertical scrolling you can use also the mouse wheel. The horizontal scroll bar allows you to scan across time. For horizontal scrolling you can use also the mouse wheel with the key. In addition to the graphical tools, you may also use the keyboard to navigate. As a general rule, keyboard navigation is faster than navigation with a mouse. Use and to scroll up and down the tracks. You will often need to scroll beyond the end of the timeline, but the scrollbars will not let you do it. Instead, use the RIGHT arrow to scroll past the end of timeline. Use the and keys to instantly go to the beginning or end of the timeline. In I-beam mode, hold down while pressing or in order to select the region of the timeline between the insertion point and the key pressed. 6.1.3 The zoom panel -------------------- Below the timeline, you will find the zoom panel. The zoom panel contains values for sample zoom (duration visible on the timeline), amplitude (audio waveform scale), track zoom (height of tracks in the timeline), and curve zoom(automation range). In addition to the scrollbars, these zooms are the main tools for positioning the timeline. Image: zoompanel.png Changing the sample zoom causes the unit of time displayed in the timeline to change size. It allows you to view your media all the way from individual frames to the entire length of your project. The higher the setting, the more frames you can see per screen. The sample zoom value is not an absolute reference for the unit of time since it refers to the duration visible on the timeline and thus changes also as you modify the length of the program window horizontally. Use the `UP' and `DOWN' arrows to change the sample zoom by a power of two. If your mouse has a wheel and it works in X11, mouse over the tumblers and use the wheel to zoom in and out. The amplitude only affects audio. It determines how large the waveform appears. `CTRL-UP' and `CTRL-DOWN' cause the amplitude zoom to change. The track zoom affects all tracks. It determines the height of each track. If you change the track zoom, the amplitude zoom compensates so that the audio waveforms look proportional. `CTRL-PGUP' and `CTRL-PGDOWN' cause the track zoom to change. The curve zoom affects the curves in all the tracks of the same type. It determines the value range for curves. First select the automation type (audio fade, video fade, zoom, X,Y) then use the left tumblers for the minimum value and the right tumblers for the maximum value or manually enter the values in the text box. Normally you will use -40.0 to 6.0 for audio fade and 0.0 to 100.0 for video fade. *Note The patchbay::. The tumblers changes curve amplitude, but the only way to curve offset is to use the fit curves button . `ALT-UP' and `ALT-DOWN' cause the curve amplitude to change. 6.1.4 The track popup menu -------------------------- Each Track has a popup menu. To activate the track popup menu, RIGHT-click on the track. The popup menu affects the track whether the track is armed on the patch bay or not. The Track Menu contains a number of options: * Attach Effect - opens a dialog box of effects applicable to the type of track (audio/video) * Move up - moves the selected track one step up in the stack. * Move down - moves the selected track one step down in the stack. * Delete track - removes the track from the timeline * Add Track - adds a track of the same media type (audio/video) as the one selected. * Resize Track - resizes the track * Match Output Size - resizes the track to match the current output size 6.1.5 The insertion point ------------------------- The insertion point is the flashing hairline mark that vertically spans the timeline in the program window. Analogous to the cursor on your word processor, the insertion point marks the place on the timeline where the next activity will begin. It's the point where a paste operation takes place. When rendering, it defines the beginning of the region of the timeline to be rendered. It is also the starting point of all playback operations. The insertion point on the main window, represented as a vertical hair-line at the 00:00.500 point Normally, the insertion point is moved by clicking inside the main timebar. Any region of the timebar not obscured by labels and in or out points is a hotspot for repositioning the insertion point. In cut and paste editing mode only, the insertion point can be moved also by clicking in the timeline itself. The main timebar When moving the insertion point the position is either aligned to frames or aligned to samples. When editing video, you will want to align to frames. When editing audio you will want to align to samples. Select your preference by using Settings->Align cursor on frames. 6.1.6 Editing modes ------------------- Editing modes are two different methods of operation that affect the insertion point and the editing on the timeline. They are: * drag and drop mode * cut and paste mode The editing mode is determined by selecting the arrow or the i-beam in the buttonbar. Alternatively you can use as a keyboard shortcut to toggle between modes. The editing mode buttons If the arrow is highlighted, it enables drag and drop mode. In drag and drop mode, clicking in the timeline does not reposition the insertion point. Double-clicking in the timeline selects the entire edit the mouse pointer is over. Dragging in the timeline repositions the edit the mouse pointer is over. This is useful for reordering audio playlists, sorting movie scenes, moving effects around. To cut and paste in drag and drop mode you need to set in/out points to define an affected region. *Note The in/out points::. *Note Drag and drop editing::. If the i-beam is highlighted it enables cut and paste mode. In cut and paste mode, clicking in the timeline repositions the insertion point. Double-clicking in the timeline selects the entire edit the cursor is over. Dragging in the timeline highlights a region. The highlighted region becomes the region affected by cut and paste operations and the playback range during the next playback operation. -clicking in the timeline extends the highlighted region. Tracks with highlighted area, shown inside the green outline When highlighting a region, the start and end points are either aligned to frames or aligned to samples. When editing video, you will want to align to frames. When editing audio you will want to align to samples. Select your preference by using settings->align cursor on frames. *Note Cut and paste editing::. Note: Cinelerra CV revisions 943 and 944 (SVN checkouts from 19 to 21 October 2006) had no editing modes buttons. "Copy and paste" and "Drag and drop" editing modes were merged into one, shift key being differentiation between them. This is the case of the Gentoo ebuild media-video/cinelerra-cvs-20061020. 6.1.7 The in/out points ----------------------- In both editing modes, you can set one in point and one out point. The in/out points define the affected region. In drag and drop mode, they are the only way to define an affected region. In both cut and paste mode and drag and drop mode, the highlighted area overrides the in/out points. If a highlighted area and in/out points are set, the highlighted area is affected by editing operations and the in/out points are ignored. If no region is highlighted, the in/out points are used. To avoid confusion, it is better to use either highlighting or in/out points but not both simultaneously. Normally, in/out points do not affect the playback region. The in/out points determine the playback region only if you hold down while issuing a playback command. To set in/out points, go to the timebar and position the insertion point somewhere. Select the in point button. Move the insertion point to a position after the in point and click the out point button. Instead of using the button bar, you can use the <[> and <]> keys to toggle in/out points. Timebar with in/out points set. If you set the insertion point somewhere else while in/out points already exist, when you click the in/out buttons the existing points will be repositioned. If you click on in/out points while a region is highlighted, the insertion point will be ignored and in/out points will be set at the beginning and at the end of the highlighted area. If you select either the in point or the out point, the insertion point will jump to that location. After selecting an in point, if you click the in point button the in point will be deleted. After selecting an out point, if you click the out point button the out point will be deleted. Tip: To quickly get rid of in/out points, without caring about where they are or if they are set or not, just double click on [ and ] buttons. The first click will set a new point or reposition an old one at the insertion point; the second click will delete it. Obviously this trick does not work if the in point or the out point is already set at insertion point. -clicking on an in/out point highlights the region between the insertion point and that in/out point. If a region is already highlighted, it extends the highlighted region up to that in/out point. The insertion point and the in/out points allow you to define an affected region, but they do not let you jump to exact points on the timeline very easily. For this purpose there are labels. 6.1.8 Using labels in the program window ---------------------------------------- Labels are an easy way to set exact locations on the timeline that you want to jump to. When you position the insertion point somewhere and click the label button, a new label appears on the timeline. Timebar with a label on it No matter what the zoom settings are, clicking on the label highlights it and positions the insertion point exactly where you set the label. Hitting the key has the same effect as the label button. Labels can reposition the insertion point when they are selected but they can also be traversed with the label traversal buttons. When a label is out of view, the label traversal buttons reposition the timeline so the label is visible. There are keyboard shortcuts for label traversal, too. CTRL-LEFT repositions the insertion point on the previous label. CTRL-RIGHT repositions the insertion point on the next label. With label traversal you can quickly seek back and forth on the timeline. The Label tab of the resources window lists the timestamp of every label. You can edit the label list and add a title for every item using the popup menu. To open the Label info dialog right click on the label icon in the Resources window or directly on the label symbol on the timebar. With labels you can also select regions. SHIFT-CTRL-LEFT highlights the region between the insertion point and the previous label. SHIFT-CTRL-RIGHT highlights the region between the insertion point and the next label. Double-clicking on the timebar between two labels highlights the region between the labels. SHIFT-clicking on a label highlights the region between that label and the insertion point. If a region is already highlighted, it extends the highlighted region up to that label. If you hit the label button when a region is highlighted, labels are created at each end of the highlighted region. However, if one end already has a label, then the existing label is deleted. Hitting the label button again when a label is selected deletes it. Manually hitting the label button or key over and over again to delete a series of labels can get tedious. To delete a set of labels, first highlight a region. Second, use the Edit->Clear labels function. If in/out points exist, the labels between the in/out points are cleared and the highlighted region is ignored. In Cut and Paste editing mode only, by enabling Edit labels in the settings menu, or by disabling the Lock labels from moving button on the program toolbar labels will be cut, copied or paste