As promised, I've continued to research and test desktop video editors for Linux. This week we'll look at OpenShot, a GTK-based project.
What It Is
OpenShot (Figure 1) is a non-linear editor (NLE) for video. The "non-linear" qualifier simply means that you can play, edit, and mix video footage in any order or at any point you wish. In addition to this random access a modern digital NLE is typically non-destructive, thereby allowing free experimentation with edits and effects while leaving your original material in pristine condition.
You can view the whole list of OpenShot's features on the OpenShot Features page. For the impatient here's the short review :
- Multitrack layout mode.
- Clip edits: resize, trim, snap to grid, cut.
- Video transitions with real-time previews.
- Compositing, image overlays, watermarks.
- Title templates, title creation.
- SVG friendly, to create and include titles and credits.
- Scrolling motion picture credits.
- Solid color clips (including alpha compositing).
- Support for Rotoscoping/Image sequences.
- Frame stepping, key-mappings: J,K, and L keys.
- Video encoding (based on FFmpeg).
- Key Frame animation.
- Digital zooming of video clips.
- Speed changes on clips (slow motion et cetera).
- Custom transition lumas and masks.
- Presets for key frame animations and layout.
- "Ken Burns effect" (making video by panning over a still image).
- More than 20 digital video effects.
Apologies to the OpenShot crew for cribbing from their list. What can I say, it's an attractive list.
Installation & Configuration
OpenShot may be in your Linux distribution's software repositories, so look there before you try to build the program yourself. OpenShot is not difficult to compile and install, but I discovered certain problems with its dependencies that significantly affect its performance.
OpenShot needs the MLT software described in my review of Kdenlive, with the further requirement of support for Python. The python-mlt module is available from the Ubuntu Jaunty repos, but building MLT with the Python binding isn't difficult either. The following command-line will create the needed modules :
./configure --prefix=/usr --aviformat-swscale --enable-gpl --swig-languages=python
This command sequence is identical to the one described in my article on Kdenlive, with the addition of the SWIG Python support.
OpenShot is easy to install. Run this command in the top level directory for the OpenShot sources :
sudo python setup.py install
OpenShot will be installed into the /usr directory hierarchy. You can now start the program by clicking on its menu entry or by running the openshot command at a terminal prompt. If everything has been installed correctly you'll soon see the OpenShot main display as shown in Figure 1. Alas, I was not so fortunate.
When I tried to start OpenShot I received the following error message :
dlphilp@The3800:~$ openshot Added /usr/share/openshot to system path -------------------------------- OpenShot (version 0.9.52) -------------------------------- *** ERROR: MLT Python bindings failed to import *** *** ERROR: MLT Python bindings failed to import *** Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_innerself.run() File "/usr/share/openshot/classes/thumbnail.py", line 174, in run mlt.Factory().init() NameError: global name 'mlt' is not defined ------------------------------------------------------- Error: OpenShot has not been installed in the Python path. (Both the site-packages and /usr/share/openshot folders were checked) Use the following command to install OpenShot: $ sudo python setup.py install
After some research I found that the straightforward sudo make install was not enough to correctly install the MLT software. I discovered that MLT's Makefile for the language bindings includes a directive for installation, but there are no installation targets. Thus, the modules get built but are not installed.
Following advice from OpenShot developer Jonathan Thomas I manually copied three files from ~/src/mlt/src/swig/python to the /usr/lib/python2.6/site-packages directory. The needed files are the _mlt.so shared library, the mlt.py Python module, and the mlt_wrap.o object file. I ran the openshot command again, and again the program produced the same error message and failed to open.
At this point I suspected the Python PATH so I ran this command :
The result was an empty string, proving that the PYTHONPATH had not been defined in my Ubuntu Jaunty Python environment. Python itself is definitely correctly installed, but without a defined PYTHONPATH its modules would be unavailable to OpenShot. I defined that path with this command :
Once again I tried to start OpenShot, and this time the program opened in all its glory (Figure 1). At last I could meet and greet OpenShot.
It may be useful to define what we should expect from an editor such as OpenShot. The following functions and actions might be considered basic to any NLE :
- Load and play video and audio clips in various formats.
- Arrange and mix clips in a multitrack mode.
- Cut/copy/paste footage in and between clips.
- Add effects within clips.
- Add transition effects between tracks.
- Export mix to video formats defined for various targets (Web, mobile device, DVD, file, et cetera).
As seen in the Features list above OpenShot supports these basic functions along with some more advanced features and some interesting attractions of its own.
In its basic operations OpenShot is similar to Kdenlive. Both programs are designed with an integrated UI in which individual clip edits and project multitrack edits are accomplished in the same display. This design favors a fast "back & forth" workflow and is an excellent design for non-linear video editors.
OpenShot includes only a few editing tools, but some of those tools are unique to the program. Curiously, they aren't available under the Edit menu - you need to right-click on a file within a track to call the pop-up menu that includes the tools. Basic edits include clip duplication, animation (untested here), and removal. Two "slice & dice" controls add some unusual functions that look promising but that I haven't found useful yet. Clips may be positioned freely within and among tracks by clicking and dragging with the mouse, and a Shift Clips tool allows precisely defined positioning.
When you've arrived at your final mix it's time to export your work. At the right of the camera icon there is a red button, click on it to summon the Export Video dialog. Figures 2 and 3 illustrate the simple and advanced options available for fine-tuning the output. Like Kdenlive and other editors a variety of presets are available for quickly producing video in formats required by popular targets such as YouTube or DVD. If you're not satisfied with those presets you can customize the settings in the Advanced tab. By the way, rendering in OpenShot is on par with other NLEs I've tested. Various factors affect rendering time, so don't expect speedy results for a mix of high-resolution video files, each with its own high-definition stereo audio tracks.
I composed a project with four AVI files (each with audio) treated to three transitions and other effects (Figure 4), then I rendered the mixture to a VOB file destined for a DVD. The mixture was slightly more than 4 minutes long and took slightly more than 8 minutes to render with a 2.4 GHz CPU. Mileage will certainly vary with clip file types, the variety and number of transitions and effects employed, the selected output format, and so forth.
The Audio Side
OpenShot imports audio files in WAV, OGG, MP3 and other formats. No integrated audio editing support is provided nor is there a call-out to an external editor. Soundfiles can be added and freely positioned in the multitrack timeline to add or replace audio for your video files. The Clip Properties dialog includes a tab for Audio that permits adjustment of volume and the addition of fade-in/fade-out controls, but no special effects are provided (e.g. reverb, chorus, phaser, et cetera). In short, you may need to prepare your audio files before adding them to your project.
Audio driver support is apparently restricted to the default system, which is likely to be either ALSA or PulseAudio. Alas, JACK is not yet supported. I realize that professional audio support is not an especially high priority in a video editor, but we await the day when the designers of Linux NLEs realize that JACK is their key to audio salvation.
At release 0.9.52 OpenShot lacks some features I've found very useful in other NLEs. There is currently no support for input via external devices such as a webcam or camcorder, so all material must be in a supported video file format before it can be brought into OpenShot. I missed the ability to directly resize transitions, i.e. without switching tools. I also found the method for adding effects to be rather clumsy (you must open a clip's Properties dialog to add and edit them). OpenShot's UI is clean and well-organized, but some keyboard bindings would be nice for its basic commands and functions.
As of early November 2009 the project needs a forum and/or mail list for developers and users. Currently OpenShot uses Launchpad as its primary communications channel, a not especially effective solution for communication between normal users. The developers are aware of the unsatisfactory nature of the solution, hopefully we'll soon see a Wiki and other channels dedicated to the promotion and use of OpenShot. Meanwhile the OpenShot Web site offers links to some helpful instructional videos. More video examples are available on YouTube and Vimeo.
When I click the Help menu's Contents item I receive this error:
The requested URI "ghelp:/usr/share/gnome/help/openshot/C/openshot.xml" is invalid.
Indeed the openshot directory does not exist in the specified path. Furthermore, I was unable to locate the requested XML file.
In point of fact, OpenShot is easy enough to "learn by doing", but a novice may want clarification of terms and processes. The program's tooltips are helpful, but in my opinion documentation for an NLE should provide some basic general instructions and descriptions as well as application-specific assistance. Pointers to good sources of information would be appreciated, e.g. links to the Wikipedia articles on NLEs and compositing. Again, a dedicated comm channel or site would be a great help to new and experienced users.
At release 0.9.52 the program is very stable and I experienced no crashes during my tests. In my opinion OpenShot is well on its way to becoming an attractive and powerful editor. Presently it lacks some features I like in other NLEs, but I suspect its developers will add those and other features in due time. Like many similar projects OpenShot is in need of external assistance, so if you'd like to help produce a high-quality GTK-based NLE for video you might consider hopping on to the OpenShot train. Coders are welcome, but other aspects of the program need love too. Check with the devs to see how your talents can be employed by the project.
I'll be back in a couple of weeks with more news from the world of Linux audio & video software. I plan to review more Linux NLEs, so tune in for the next exciting episode.
Similis sum folio de quo ludunt venti.
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Returning Values from Bash Functions
- Panther MPC, Inc.'s Panther Alpha
- Tech Tip: Really Simple HTTP Server with Python
- Simplenote, Simply Awesome!
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- NethServer: Linux without All That Linux Stuff
- GENIVI Alliance's GENIVI Vehicle Simulator
- The Tiny Internet Project, Part III