Jono Bacon provides an overview of PiTiVi, an open source video editor for the Linux desktop.
For many of us, using Linux is like being a kid in a candy shop. Want office productivity? Check. Want to listen to and watch multimedia? Check. Want to get online and communicate over a raft of mediums? Check. Among the many shelves, stocked with treats aplenty, has been one strangely lacking shelf: that of video editing.
While Linux video purists will argue that there have always been video editing solutions, these have typically been the domain of rocket scientists or have lacked the necessary features to put together most video projects. For those of us passionate about the GNOME project, traditionally we have only had Kino as a real option, and while a strong and solid application for capturing and performing basic edits, Kino runs out of steam for more complex projects and requires a certain amount of Kino mojo to operate.
Back in 2006, the video editing situation was looking far more exciting. Michael Dominik was working on the hugely exciting Diva project and Edward Hervey was working on PiTiVi. Both combined exciting technologies, being built on the formidable foundations of GTK, GNOME, GStreamer and Cairo. Diva was developed using Mono, and PiTiVi using Python. With the video buzz in the air, Michael and Edward both demoed their projects at the Villanova GUADEC to rapturous applause.
Unfortunately, the Diva project shut up shop as Michael moved onto other projects, but PiTiVi plowed on, primarily driven by Edward Hervey and his dream to make easy-to-use Open Source video editing a reality. Today Edward and his cohort have made tremendous progress.
Part of the reason PiTiVi has taken so long to mature is that Edward has been conscious to build PiTiVi “the right way” and ensure that the underlying infrastructure that PiTiVi is built upon is mature and stable.
At the heart of PiTiVi is the incredible GStreamer framework: a technology that enables developers to string together different modules with different capabilities (such as decoding a file, applying an effect, adjusting volume etc.) into a pipeline that can perform a given operation. Wizened UNIX-heads will remember that this is the heart of how UNIX was designed: create a series of tools that do one thing really, really well. GStreamer takes this approach to multimedia, offering a huge array of different elements that can be added to the pipeline. This has resulted in a devilishly simple but powerful framework for application developers.
For Edward to build PiTiVi he needed to create his own set of GStreamer elements in the form of GNonLin: a set of elements designed to make non-linear audio and video editing a possibility. These elements were needed to handle the complex requirements of a non-linear editor. These editors take source video and audio files and allow you to edit their lengths, overlay them, apply effects and other features, and all without destructively changing the source media. GNonLin provides an incredibly powerful set of components that were designed in a truly extensible and flexible way to allow anyone to build a non-linear editor, be it video or audio.
For Edward to have created the first incarnation of PiTiVi he needed to ensure that GStreamer and GNonLin were mature and stable enough to use for his application. Back in 2006 and 2007 GStreamer had been through a significant period of change and GNonLin was newly created to help build PiTiVi. Edward entered a potentially project-killing write-some-code-for-pitivi-and-then-fix-the-gstreamer-bugs-to-make-it-work period. Although GStreamer had enjoyed a healthy period of active development and was stable and mature in many areas, PiTiVi was pushing the framework toward less-tested grounds. Most GStreamer applications were media players as opposed to media production environments and PiTiVi was blowing the cobwebs off some rarely used elements. Fortunately Edward had the smarts to get in there and fix those components.
Around this time I had announced the formation of the Jokosher project, the development of an easy-to-use audio production environment that was fundamentally built on the same technology as PiTiVi: Python, GStreamer, GNonLin, GNOME, GTK and Cairo. As our project kicked off, we entered into a similar round of writing code and uncovering bugs in lesser known parts of the GStreamer stack. As the only other application using GNonLin, we in the Jokosher camp worked closely with Edward, and he was remarkably responsive in fixing bugs, and rolling out new releases. Not only that but the GStreamer developers were also hugely responsive in fixing bugs in the platform. Although the bugs blocked progress in both the Jokosher and PiTiVi camp, as each bug was fixed GStreamer and GNonLin became an ever more exciting and compelling platform for multimedia.
Since those days, GStreamer and GNonLin have continued to mature into a hugely powerful and stable framework for multimedia production, and we are now starting to see PiTiVi show off the fruits of that labour. The latest release, 0.13.3, is already showing promise, with a great set of features on this firm foundation:
- Simple to use interface.
- Import a variety of different types of media.
- Tools for cutting, moving and layering video and audio.
- Audio mixing.
- Ripple/roll editing.
PiTiVi is now really beginning to come into its own. Regular releases are flowing, each bringing new features and bug-fixes, and the development team has expanded from just Edward Hervey to include full-time developers and community members. It is time for video in GNOME to rock and PiTiVi is leading the way.
About the Author
Jono Bacon is the Ubuntu Community Manager, author of The Art of Community by O’Reilly, founder of the Community Leadership Summit and contributor to various GNOME projects, including Jokosher.