The CinelerraCV Project

Continuing my tour of Linux-based video editors this week I've profiled Cinelerra. Specifically I've reviewed the community-supported version produced by the CinelerraCV project.

The Feature Set

The program's feature set is lengthy and impressive. The following list is a selection from its many attractions :

  • Audio/video compositing + editing.
  • Still image panning (the "Ken Burns effect").
  • Unlimited tracks.
  • 16 bit YUV compositing.
  • Floating point compositing.
  • Free form editing.
  • Batch capturing.
  • Batch rendering.
  • SMP utilization.
  • Realtime effects.
  • Quicktime, AVI, MPEG, and image sequence I/O.
  • OpenEXR images.
  • Support for OGG/Vorbis audio.
  • Headroom monitoring.
  • Supports LADSPA plugins.
  • Bezier masks.
  • Track routing.
  • Track nudge for audio and video.
  • Reverse audio and video in realtime.
  • Bidirectional, variable speed scrubbing.
  • Variety of overlay modes.
  • Nested sequences.

And for users with resources to burn, Cinelerra supports render farms and multiple monitors. Take a deep breath, then see the Cinelerra Features Page for the complete list.

Cinelerra includes eight transition types and more than sixty video effects, along with twenty audio effects. The video transitions include the expected dissolve, wipes, and slides, while the single audio transition is an audio cross-fader. The video effects include television and film effects, color manipulations, titling, and many cool transformers. Don't worry if you have little or no clue as to the meaning of some of the effects, just apply them in short test clips to see what happens. With so many video transformations to choose from you'll keep busy, but you will have fun while you learn about Selective Temporal Averaging and the Inverse Telecine effect.

Figure 1. Cinelerra 2.1CV

Version Note

The developers of CinelerraCV consider their project to be a branch of the original Cinelerra from Heroine Virtual Ltd.. This article is not the place to explore the reasons for the branch project, but interested readers may consult the page titled Why two versions of Cinelerra? for the whole story. It is sufficient to note here that Adam Williams, Cinelerra's original developer, is not opposed to the development of CinelerraCV. He continues to maintain his work at Heroine Virtual and occasionally contributes to the community version.

Recommended Hardware & Software

The following recommendations are the minimal hardware requirements necessary for running Cinelerra :

  • CPU: 500 MHz single-core (dual-core and multi-core systems are preferred).
  • Memory: 1G.
  • Hard disk: 200 GB, seek time < 10 ms.
  • Video: nVidia necessary for OpenGL support.
  • Audio: Any device supported by ALSA or OSS/Free.

These recommendations are base hardware requirements. They allow some flexibility with Cinelerra, but mixing multiple audio/video streams in realtime requires considerably more power. The test platform used for this review included an AMD 3800+ CPU (2.4 GHz), a fast 350 GB hard-disk, 4G memory, an nVidia 7600GS video card, and an M-Audio Delta 66 digital audio system. This system is powerful enough for my audio multitrack work with Ardour, but I consider it near the low end of hardware usable for serious work with Cinelerra. If you intend to work with long videos you'll want a much faster CPU, a lot more memory, a far more capacious hard-disk, and the latest & greatest nVidia-based video adapter.

Supported I/O hardware includes webcams and Firewire-capable camcorders. If your video board has the appropriate ports you can also use Cinelerra with multiple monitors and employ your card's TV Out.

On the software side, Cinelerra wants Linux with a recent kernel, not necessarily realtime-enabled. If you intend to work with video capture make sure that your kernel has been compiled with support for IEEE1394, Video4Linux (V4L), and any other video-related devices and functions. The kernel's default ALSA audio system is fine for production purposes, though the program also supports OSS/Linux and ESD. For the purposes of this review I ran Cinelerra under Ubuntu Jaunty installed as a 32-bit system with a custom-built kernel (2.6.29) optimized for realtime performance. I've also installed the video-related packages from the UbuntuStudio project, but Cinelerra was not among them so I decided to build and install it myself.

Installation

Cinelerra has been packaged for the official repositories of various Linux distributions, but alas, Ubuntu Jaunty is not one of them. Instructions for accessing 3rd-party repositories can be found on the Getting Cinelerra page, along with directions for retrieving the Cinelerra source code.

As I said, I decided to build Cinelerra from its sources. The following notes describe the process, so skip this section if you don't plan to compile Cinelerra yourself. The process isn't painful, but Cinelerra requires many dependencies that must be met to get the best results from the program. Again, see the Cinelerra Web site for complete details and instructions.

I downloaded the CinelerraCV source code from its git repository. By default the download created a directory named my_cinelerra. I install all source packages in $HOME/src, so I entered ~/src/my_cinelerra and ran the autogen.sh script to set up the autoconf tools. That script finished with a few warnings but without significant problems. Next I ran ./configure --help to look at the compile-time options. I decided a simple ./configure --prefix=/usr would be sufficient for my purposes. That stage completed itself without incident, so I ran make and watched for errors.

I didn't have long to wait. The make procedure soon halted with two error messages. The first informed me that the nasm assembly language compiler wasn't installed, a problem easily remedied by installing the program with Jaunty's Synaptic package manager. The second error was more challenging. The compiler reported the following issue :

  ar: .libs/reconmmx.o: No such file or directory

Thanks to Google I discovered this solution :

  cd $HOME/src/my_cinelerra/libmpeg3/video
  nasm -f elf reconmmx.s -o reconmmx.o
  cp reconmmx.o .libs/reconmmx.o 

After this fix make was a smooth-running gun until I hit this snag :

  Making all in guicast
  ...
  bcwindowbase.h:94:38: error: X11/extensions/xf86vmode.h: No such file or directory

Again Google was my boon companion. I installed packages for libxxf86*-dev and x11proto-xf86*-dev, and the make process ran smoothly until its successful conclusion. I ran sudo make install, and voilà, I had a shiny new copy of CinelerraCV 4.1. By the way, this program is big, be prepared for a lengthy build.

Start-up Notes

On my trial run I received this error:

  dlphilp@The3800:~$ cinelerra 
  cinelerra: error while loading shared libraries: libquicktimehv-1.6.0.so.1: cannot open shared object file: No such file or directory

Apparently Cinelerra's installer doesn't update the system library cache. The problem was quickly fixed with sudo ldconfig. By the way, the program installs to the /usr/local hierarchy by default. If Cinelerra doesn't start at all add the /usr/local hierarchy to your system PATH statement :

  export PATH=$PATH:/usr/local/lib:/usr/local/bin

Put that line in your $HOME/.bashrc file for a permanent fix.

Unless your system has been customized appropriately for some other purpose Cinelerra is likely to open with a warning about shmmax, a value for the maximum amount of shared memory needed by Cinelerra. The Web site recommends this fix for a single session :

  sudo echo "0x7fffffff" >/proc/sys/kernel/shmmax

Unfortunately it didn't work. I got this response even when running as root :

      bash: /proc/sys/kernel/shmmax: Permission denied

(Can someone tell me why that happened ?)

The suggested permanent fix resolved the problem. I added the following line to /etc/sysctl.conf :

    kernel.shmmax = 2147483647

I rebooted, and Cinelerra started with no warnings or errors.

Configuration

Before doing anything else you should set up the program to accommodate your system resources. Figures 2 and 3 present the tabs from the Cinelerra Preferences dialog found in the Settings menu. You can see from those screenshots that Cinelerra's configuration details are many and varied, but have no fear, the default settings usually fit correctly for first-time use. You can experiment with settings as much as you like, but you should be aware that some parameter values may act to crash the program (see my notes below on recording in Cinelerra).

Figure 2. Cinelerra Preferences (Playback and Record)

Figure 3. Cinelerra Preferences (Performance and UI)

An Example Project

My example project for this review followed a pattern similar to my previous reviews of NLEs for Linux, i.e. a layout of four video clips with effects within the clips and transitions between them. As I mentioned earlier I was surprised and a little dismayed to find that Cinelerra won't play the video portions of movies I made with the AVSynthesis program. Those movies are in AVI format, they load and play without troubles in other editors and players, and I have no idea (yet) why Cinelerra doesn't like them. The program likes my MPEG files, so I used four videos in that format. Those videos all include a stereo soundtrack, but for the purposes of this example I removed the audio tracks from the videos. I then added a separate soundtrack for audio in the final rendering (see Figure 1).

It's easy to add an effect or transition, but it took me a little time to get used to Cinelerra's methods. Effects and transitions are dragged from the Resources window and dropped into a clip in a track. Once the effect has been added you can right-click on the effect icon to open its parameter editor, assuming that the effect has any editable parameters (Figure 4). Transitions are added in the same way, but alas, you can't simply grab the boundaries of a transition and resize its extent. You need to right-click the transition icon and adjust its length with the scroll box. It's certainly not a difficult method, though I'd prefer direct adjustment of the transition marker a la Kdenlive.

Figure 4. FX Parameters in Cinelerra

Cinelerra provides audio/video gain automation. I like this feature a lot, though I'd love to be able to assign its values to parameters for effects and other factors. This automation simplifies video and audio cross-fades and allows for finer control of a/v levels within a track. To my knowledge no other Linux NLE offers this feature, and it's one I'd like to see in all of them.

By the way, Cinelerra will render your effects and transitions during playback in realtime, but your hardware must be up to the task. A machine slower than 2 GHz is likely to show some strain during realtime rendering.

Off-line rendering was a little problematic for me. Cinelerra offers a variety of output targets, so first I tried rendering to the Microsoft AVI format. Cinelerra obliged, but the program crashed when the render completed, and the resulting AVI had audio but no video. Due to the problems I had when loading AVIs I wasn't surprised by the rendered piece. Next I tried the MPEG Video format but learned that it won't render the audio track. Finally I selected the OGG Theora/Vorbis format and produced my first Cinelerra-based audio/video masterwork (without crashing the program). Okay, it wasn't that impressive but I liked it and it was fun to make it with Cinelerra.

Cinelerra projects an ETA for the render process and reports the elapsed time taken for the rendering. My example project was approximately 2'50" long and took slightly more than 13 minutes to render to the Theora video. Your mileage will certainly vary according to input format, file length, number of effects and transitions, and so forth.

Recording

So far I've been unable to record from my webcam or my camcorder. Cinelerra provides a configuration panel for setting up external devices, but I haven't yet discovered the magic formula for completing the connection. The program complains about various V4L insufficiencies and segfaulted until I redefined the recording parameters. The segfaults stopped but I still can't record from the webcam. My camcorder appears to function as it's supposed to, I see the record monitor window's clock keep pace with the camera, but no video is monitored or recorded. Given the variety of possible settings I'll happily claim user ignorance and will continue to research how to record in Cinelerra from external devices. Any advice from other Cinelerra users ?

Alas, with my resources Cinelerra's recording capabilities leave much to be desired. As noted above I was unable to use my webcam or my camcorder, yet those devices function perfectly in programs such as Kino, Cheese, Kdenlive, and LiVES. Given its professionalism in most other respects this flaw is rather glaring (unless, of course, the flaw originates in the interface between the chair and the keyboard). You can use an external utility such as dvgrab to get your recordings out of your camcorder and on to your hard-disk, but such a utility ought to be available from within Cinelerra.

Documentation

Cinelerra is awash in extensive and thorough documentation. Comm channels include mail lists and IRC for users and developers, and the Cinelerra Documentation page points to docs (in HTML, PDF, and TXT formats), print and video tutorials, example projects, HOWTOs, other relevant material. More helpful Cinelerra-related material can be found via searches on Google, YouTube, Vimeo, and other popular Web-based video channels.

Impressions & Some Wishes

If you search Google for opinions regarding the program you'll find complaints about its UI and its stability. Personally I had no trouble getting around Cinelerra's interface, but stability issues kept popping up. Alas, the crashes were unpredictable and not easy to verify. Cinelerra crashed when I clicked on the on/off switch in an effect's title bar, but after restarting the program the same action simply toggled the switch. I added an effect at the end of a clip, Cinelerra crashed, I restarted it, the same action worked without trouble. Fortunately you can restart Cinelerra and select Load Backup from the Files menu to restore your previous session, but the experience can be frustrating. Another frustration: Sometimes some transitions just don't work, and I have no idea why.

Despite the crashes I enjoyed using Cinelerra. After a little study I was able to use the program with the same ease as Kdenlive or OpenShot. It takes a little effort to understand its raison d'etre, but Cinelerra's UI is comprehensible, tool-tips abound, the timeline and its effects and transitions were easy to comprehend and use, et cetera and so on.

Greater stability is at the top of my wish-list for Cinelerra. I'd also like to see more possibilities with transitions, I'd like to add my own collection of LADSPA audio effects, and it would be helpful if the Recorder worked with my hardware. And before I forget, it would be very cool to be able to assign MIDI controllers to
Cinelerra's fx parameters and other adjustable parts of the program.

I know I'm starting to sound like a parrot, but a program of Cinelerra's aspirations really ought to support JACK. Best would be full support of JACK's audio services and transport control system, but I'll settle for the audio services. Alas, the NLEs I've profiled all appear to stand alone with no possibility for connection to external processors that could greatly augment the host's creative potential. Cinelerra is no exception, regardless of its own respectable collection of audio and video signal processors. It's easy to imagine the possibilities of running JACK-Rack through an aux send/return in Cinelerra, or synchronizing Cinelerra with Ardour for an expanded audio editing suite. `

Overall I felt that I went through three stages of attitude towards Cinelerra. In the first stage I withheld criticism because I was learning my way around the program. In the next stage I was excited by Cinelerra's features and was willing to overlook its instabilities. By the final stage I found that I was too frustrated with the program to want to use it on a daily basis. I still like and enjoy Cinelerra, and I intend to follow and test the efforts of the CinelerraCV project. However, it's both too much and not enough program for me. For example, while I don't need features such as render farms I do need support for my video capture hardware. If your projects are modest and likely to remain so, Cinelerra may be more than you need. On the other hand, it's free, and it offers an opportunity to freely explore a unique video editor.

Fade To Black

I hope you've enjoyed this tiny tour of Cinelerra. Of course there's much more to explore in the program, and I hope you're inspired to give it a go in your own studio. By the way, I'm interested to hear from other Cinelerrists, so please feel free to describe your thoughts and feelings about it. The Comments section is open and waiting for your input.

Coming up: More reviews and profiles of Linux NLEs, more news from the Linux audio world, and you'll just have to tune in in another two weeks to find what else I might find to write about here. Until then, stay tuned, watch your timing, and never make your move too soon.

______________________

Similis sum folio de quo ludunt venti.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Depends on what you are looking to do

apexwm's picture

I admit that I haven't used Cinelerra too much, but will be looking more at it soon to try and replace Adobe Premiere. It seems to have the most potential for an all-purpose editing tool. If you are looking to primarily capture and make basic edits, check out Kino. I've been using Kino for quite some time, and it's rock solid. I've yet to see it crash. It's very fast and efficient. The only thing it lacks, is more advanced features that Cinelerra has... like batch processing, and more export filters.

Stability.

Anonymous's picture

A few things to note about cinelerra with regards to stability. It is much more sensitive to low level changes in the kernel than most programs... Also the toolkit they use is inherently multithreaded in a way that sometimes conflicts with X. Though X is better designed in this regards than it used to be.

Also Cinelerra can be quite fussy about the file formats that it will work well with. It is designed to work with uncompressed formats.

If you can find a kernel that cinelerra plays nice with and are prepared to possibly transcode your videos to something that works and you are familiar with 3 point editing then Cinelerra can be quite decent.

cinelerra

micka's picture

I have used kdenlive as well as cinelerra. I found kdenlive constantly crashed, as for cinelerra if it is configured properly, atleast on my machine it does not crash. I have used it to import avi, mpeg, mpeg4 and ogg. I have rendered avi, mpeg, mpeg4 with
no problem. I like it.

Cinelerra is 'quirky' but great? That's baloney.

Anonymous's picture

Cinelerra is nothing but hype. Everyone who supports it has been sold on hype. It's supporters aren't being objective and/or they haven't used it extensively enough.

The heroine virtual web site has lots of catchy statements like 'If you want the same kind of editing suite that the big boys use, on an efficient UNIX operating system, it's time for Cinelerra' and 'Unleash the 50,000 watt flamethrower of content creation in your UNIX box'.

Guess what folks? It's all hype.

If you are rendering output, few, if any of Cinelerra's output options will actually produce a valid video file. If it does output a video file, cinelerra will likely be unable to import the same file that it outputted. Who cares if Cinelerra runs on UNIX or Linux if it can't produce valid output?

Cinelerra cannot deal with more than one level of transparency among video layers. If you need something on layer three to appear through the alpha channel in the video on layers two and one you'll need to render out one pair of layers and re-import that first. 'Good luck with that.

Even if cinelerra didn't crash CONSTANTLY it would still be awful and impractical for producing anything other than image sequences. I am one of the few people who know cinelerra well enough to competently condemn it and I guarantee that cinelerra's supporters are morons.

Don't be fooled into wasting you're time because of cool hype. You will not produce anything significant, archive-able, or distributable with Cinelerra. It is a total waste of time.

Author's reply

Dave Phillips's picture

Bear in mind that I've reviewed the CinelerraCV project, not the main development tree of Heroine Virtual. The CV folks have downplayed the rhetoric and have devoted themselves to improving the software for all users.

Best,

dp

Similis sum folio de quo ludunt venti.

Ditto.

Anonymous's picture

Ditto.

A new Linux NLE

Anonymous's picture

The Cinelerra CV community is now developing Cinelerra 3, known as Lumiera. It is a completely new way of editing video that is based on a modular approach.

They sorely need developers and people to help out with the website.

Check it out at lumiera.org

Author's reply

Dave Phillips's picture

I considered profiling Lumiera, it looks like a good project, but the Web site makes it clear that it's not ready yet for real-world use. I will review when the devs release a publicly usable version.

Best,

dp

Similis sum folio de quo ludunt venti.

Pretty stable in my experience

donnek's picture

I've used Cinelerra 2.1 on openSUSE for quite a few smallish projects, and it has only crashed on me once. I find that you need to spend a bit of time reading up on the best way to do things, but if you then follow that "recipe" religiously, it works every time.

Author's reply

Dave Phillips's picture

Experiences with Cinelerra certainly vary, don't they? :)

Perhaps the CinelerraCV site should publish some users' "recipes" to give an indication of possible configurations for best behavior from the program. Comments here indicate that some users have few or no crashes with it, while others of us aren't having as nice an experience. As I pointed out, I did discover that changing the V4L settings stopped the program from crashing when I tried recording from my webcam, though the function still didn't work. I think you're right, there are settings that must be "just so" to get the best from Cinelerra. Alas, I haven't found them yet. :(

Best,

dp

Similis sum folio de quo ludunt venti.

I wanted to like this....

alex stone's picture

I wanted to like CinelerraCV, simply because it seemed feature rich, and a possible candidate for working in harmony with Ardour, using Jack Transport for sync. Sadly Dave, as you've written, no Jack, so no dice. Given the professional use potential of CinelerraCV, it continues to surprise me that this project, along with quite a few others, continue to ignore the massive potential in adding Jack, and importantly, Jack Transport, to the code as a default audio system. CinelerraCV is a real chance to take Linux Video a step further, and for chaps like me, who write to film from time to time, a candidate for fulltime use. This is an 80% app that needs an extra push to cross that "line" from enthusiasm, to serious use.
I wish the devs success in the future, and hope CinelerraCV goes forward, with real use cases in mind. It's advanced enough to attract interest, and i hope my input, along with that of other posters is seen as a constructive appraisal of the current state, and not a generic blind swipe at what is a clearly talented community of developers.
I will continue to watch CinelerraCV, and monitor progress, with an intent to consider it for the future, should Jack be added, and stability issues improve.

Alex.

Author's reply

Dave Phillips's picture

Hi Alex,

AFAIK there are currently four video utilities that sync to JACK:

xjadeo - Not an NLE but a very handy tool when working on a soundtrack in Ardour. Supports MTC and JACK very nicely.

LiVES - Supports JACK audio and transport, but I get too many xruns from the combo. Too bad, I like LiVES a lot, especially for clip edits.

OpenMovieEditor - I'll cover this one in another article coming soon, but it works very nicely with JACK. It's also a surprisingly powerful NLE.

Blender - You might already know about the (unofficial) Blender + JACK configuration. I'll review it in another article, also coming soon, but I can tell you that the combination of Blender with Ardour has inspired me to really dig into Blender.

Anyone know of anything else I should add to that list ?

Best,

dp

Similis sum folio de quo ludunt venti.

Pitivi uses gstreamer, which

Chris Gray's picture

Pitivi uses gstreamer, which can talk to jack.

Cinelerra Is Great

metalx2000's picture

I have done many video projects with Cinelerra and I have a number of video tutorials at my site to help people who would like to learn how to use it. It is the only Videos that DOESN'T crash regularly on my system. It is also way more powerful then any other OpenSource video editor I've tried when it comes to features.

The GUI is unusual, but once you learn it, it's not horrible.
http://filmsbykris.com/

http://filmsbykris.com/
Everything you ever need to know about Open-Source Software.

I use cinelerra

Anonymous's picture

In my opinion cinelerra doesnt crash frequently. Most videos on my website:
http://www.propeller.ee/tv/index.php?x=/2009
have been done with cinelerra rendered to avi and afterwards converted to mp4 with Avidemux.
Cinelerra needs fine tuning of settings. F.ex. in Ubuntu after install your default playback audio is ALSA and cinelerra crashes every minut. But change it to Esound with port 7007 and stability is good. Sometimes using some tools (f.ex. import SVG) Cinelerra starts to crash. Then it will rehappen frequently. You have even to restart the computer. But if using well proven tools i can make hours of video without crashing. No problems of stability at all.
And i love how quick is cinelerra. It reacts instantly to every keystroke, it seems to be very "lightweigth" for my laptop. And it has some very professional things you find only in expensive NLE-s.

sudo

Johannes Berg's picture
sudo echo "0x7fffffff" >/proc/sys/kernel/shmmax

will run "echo 0x..." as root, but redirect the output as your regular user. The real fix would be either

$ su
# echo ... > ...

or

sudo bash -c 'echo 0x7fffffff > ...'

tee(1) can be used too

Noah Williamsson's picture

Here's another variant that's quite popular for echoing stuff to a file with elevated privileges.

echo 0x7fffffff | sudo tee /proc/sys/kernel/shmmax

The tee command will copy input to one or more files aswell as to stdout.

Author's reply

Dave Phillips's picture

Thank you, Johannes. IIRC the information came from the CinelerraCV Web site, hopefully they'll fix that error asap.

Best,

dp

Similis sum folio de quo ludunt venti.

I tried Cinelerra years ago

Anonymous's picture

I tried Cinelerra years ago when it was open sourced. At that time it was pretty much the only video editing tool available for Linux. It already had an impressive feature list but randomly crashed every few minutes.

Seems like nothing has changed.

I don't mind the unusual UI but after so many years one would expect that they managed to fix most of the bugs. As it still seems to crash a lot, they should really shift their focus from features to stability. This could be such a great program.

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState