The terms "Linux" and "multimedia" have traditionally sat rather
uncomfortably together in a sentence. As open source communities have produced
a prominent and capable offering, the focus has largely been on the day-to-day
meat and potatoes of the consumer and corporate desktop. Although the efforts
towards these word processors, desktop environments, spreadsheets, and business
applications have moved steadily, the multimedia side of Linux has
traditionally been less focused and more sporadic. This multimedia support has
manifested itself in a range of specific projects to play and encode specific
formats. The challenge facing both users and developers has been that of
consistency. Developers would struggle to create applications, as the nitty-gritty details of managing codecs and multimedia algorithms stood in the way of
creating a simple and effective tool. This inconsistency has resulted in users
suffering in many aspects of common multimedia creation.
One of the most challenging subsets of multimedia to support has been video
editing and production. These challenges have not only included creating usable
and effective applications, but also creating consistent support for video
cameras, capture devices, hardware accelerators, and more. The current solutions
available for video production are rather limited. Cinelerra, possibly the
most functional application, suffers from a user interface that acts as a
barrier to its expansive feature set. Another prominent contender, Kino, targets an entirely different type
of video engineer and is too simple for many video editing requirements.
Although both applications have decent support for some mainstream codecs, the
applications themselves manage support for devices and codecs, meaning that
support for new hardware and codecs takes time to implement.
Looking Forward with PiTiVi
At the GNOME User And Developers European Conference (GUADEC) in Stuttgart,
Germany, PiTiVi was one of the most
promising applications demonstrated. Currently being developed by French-born
Edward Hervey, PiTiVi offers a refreshing outlook for video production on
Linux.
Hervey's goals for PiTiVi have been clear from the beginning. His intention
was to create a simple, intuitive, and powerful editor that can be useful for
both home and professional needs. Back in 2004, PiTiVi was Hervey's end of
studies project, and he spent his time proving that the freedesktop.org-hosted
GStreamer framework could handle audio and video editing. Since March 2005,
Hervey took PiTiVi from the ground up and identified where he could go with the
existing codebase. He decided to convert the application to use Python. PiTiVi
currently uses the new GStreamer 0.9 release, which includes many improvements
for supporting complex end-user multimedia applications--such as PiTiVi.
Hervey acknowledges that his three main goals set at the beginning of the
project came from analyzing the (dis)advantages of existing editors. PiTiVi
incorporates a strong "application-level" plugin system that allows developers
to focus on general audio/video editing features in PiTiVi's core, and have
some specific uses handled by the plugins. This framework will support editing
of a portion of the video by another application (such as CinePaint or Gimp),
creating a credit scroller, or even creating a slideshow maker to sync photos
and video with a soundtrack. The plugin system is also useful in creating a
template system to speed up work in repetitive environments (such as a news
desk).
Aside from creating a technically capable and extensible application, Hervey
is keen to ensure that the application is suitable in industry. "From the few
talks I was able to have with some professional video producers (from the BBC
and other editing companies), the design of PiTiVi seems to suit their needs,"
Hervey says. "The design is only the tip of the iceberg. [The] actual problem
with professional video editing is the workflow and how existing tools are used
too (Avid comes to mind here)." To solve the workflow issues between different
tools, Hervey is working to integrate the Advanced Authoring Format in PiTiVi.
This open source format is an accepted industry standard, with implementations
in Avid, Adobe Premiere, and Final Cut Pro. "AAF seems like the most promising
way for PiTiVi to gradually make its way into the professional editing world,"
says Hervey. "I am looking forward to meet with more people to get their
feedback about how to best support their needs. PiTiVi has a clear separation
between the core and the interface, so it is possible to make a more
professional-compatible user interface for it."
Although he wrote the first incarnation of PiTiVi in C, Hervey decided to
rewrite the application in the popular high-level Python language. The main
catalyst for the change was to encourage more people to participate in PiTiVi
development; Python considerably lowers the bar for people to get involved.
"I'd really like to see all those people who are very knowledgeable at
video editing be able to chip in to PiTiVi development, since they have a better
idea of what they want," Hervey says. He continues, "Python is a very flexible
and extensible language, and the plugin system for PiTiVi would be very hard to
put into place if it were created in another language; here, the plugins really
extend the application."
Augmenting the increased development rate and accessibility of using Python
is the use of other technologies to satisfy the core PiTiVi requirements. One
such example is the use of the popular HAL and DBUS tools. These technologies make
handling hardware such as video cameras and capture cards far easier in
applications such as PiTiVi. With this support, PiTiVi will be able to detect
and use any video sources attached to the system and incorporate them into
PiTiVi seamlessly.
Making Multimedia Work on Linux
The GStreamer technology at the heart of PiTiVi has been in development for
six years. It provides a means of stringing together different components to
satisfy various multimedia needs. As an example, an application can read in a
file, send it through a decoder plugin, run it through an effects plugin, and
then display it to the screen or create an encoded file. GStreamer provides a
comprehensive means of hooking together these different plugins in an infinite
number of combinations. The plugin architecture opens up the development
process to allow anyone to make GStreamer plugins for a range of different
needs.
Ronald Bultje has worked heavily with GStreamer since 2001, focusing his
efforts on video handling. Before working with GStreamer, Bultje worked on
Video4Linux, and has more recently poured his efforts into improving the
integration of multimedia into the GNOME desktop. "Historically, Xine, MPlayer,
and the like have had the most horrific user interfaces ever imagined. I still
can't get my head to accept the fact that I used any of them more than once. You
need hacks to get them to integrate into something such as Firefox, and I see
nothing that integrated with, for example, OpenOffice.org." He continues, "We
want to move forward to create better integration. If I plug in a USB
soundcard, I want it to pop up a dialog asking me to switch to that for all
applications. We already have an implementation that changes on the fly, so
pressing 'yes' would make all applications switch to the new device instantly.
I want a decent desktop-integrated video recorder to be started when I plug in
my analog or digital camera. I want an audio and video editor to be there; one
that is simple to use (think iMovie), but the back end could be so powerful
that more complex editors could be created."