LWN.net Logo

Development

Building DVD discs with Bombono

May 19, 2010

This article was contributed by Nathan Willis

DVD authoring can be a deceptively tricky business. Though it can take some time to convert source video to the proper MPEG format, the technical requirements for the various regions are standardized, so it is at least possible to configure the conversion tools and do it right, once and for all. What cannot be automated is building the disc structure that distinguishes a user-friendly disc with chapters, eye-pleasing menus, and a file hierarchy that makes sense from a down-and-dirty, technically-it-plays-but-it-looks-awful amateur job.

There are several actively-developed DVD authoring tools for Linux desktops and command-line environments today, including QDVDAuthor, DeVeDe, ManDVD, and DVDStyler. They vary quite a bit in ease-of-use and the number of disc-building options they support. We have covered several of these alternatives in the past.

One of the newest options is called Bombono, a GTK+-based disc authoring application that focuses on simplicity. The project provides packages on its download page for many Linux distributions and FreeBSD. The most recent release is 0.6, from April 16. No special dependencies are required; mjpegtools, the TwoLAME MP2 encoder, and dvdauthor are the only packages needed outside of standard GNOME components.

Of course, one reason Bombono has so few dependencies is that it makes no attempt to tackle one of the key tasks involved in producing a DVD from arbitrary video and audio content: preparing the media. Bombono requires that you convert your videos to compliant MPEG-2 format in an external tool; it recommends nonlinear video editors such as Kdenlive or stand-alone FFmpeg frontends such as WinFF. Which of these options works best in practice is a matter for individual exploration; it often depends greatly on the format of the source video. In any event, Bombono has zero margin for error for acceptable MPEG formatting, but it does at least prevent you from adding non-compliant video, and warns you about which file properties constitute the problem.

Getting started

[source tab]

With compliant MPEG video in hand, you can launch Bombono and immediately start working on a new disc project. The interface splits the application into three tabs, one for each of the three sequential steps in the process. "Source" allows you to add all of the media you will use (including video content and still images for menus) and to bookmark chapter divisions in the video media if desired. "Menu" provides a canvas on which you compose menu screens, and link individual menu items to videos or to other menus. "Output" controls writing the final disc image or directly burning your creation to an optical drive.

The interface is simple to understand; it is uncluttered and clearly labeled. It does, however, incorporate some peculiarities that stray from the normal GNOME human interface guidelines — most notably, the menu bar includes not only menus ("Project," "Go," and "Help"), but a tab-selector for the Source / Menu / Output mode tabs, and a drop-down listbox for selecting the disc capacity. Neither element impedes the application's usability, but they look out of place, as do several UI elements rendered in non-default font sizes and weights.

[import]

Nevertheless, with a disc needing to be crafted, one can overlook such things and concentrate on the task at hand. Bombono includes a file browser for adding video and image media, but also supports drag-and-drop from the system file manager. It can also extract video from a physical DVD or a DVD image, courtesy of a guided wizard found in the Project menu as "Add Videos from DVD...", and save single video frames as still images. Everything added is listed together in a project-wide "media list" which makes another appearance in the menu-creation process.

Apart from simply adding the relevant files, the Source tab's main feature is the ability to mark chapter break-points in video media. A simple timeline and preview window allow you to seek to the break-points you wish to add, then mark them with a right-click. A full video player is not built in, although you can open the selected video in GNOME's Totem player from the right-click menu.

Menu building

The menu-building interface is sparse, but again, easy to work with. First, you add a new menu via the plus-sign button in the Menu List. Selecting a menu in the list does not make it editable, though; to do that you must click the "edit" button, which is a green circle.

[menu interface]

You can then build the menu design on the canvas, adding a background color, text elements, and dragging images or videos from the media list. All of the project media added in the Source tab is accessible in the media list, and video chapters are selectable as distinct elements, which allows you to build a "chapter menu" without much effort. Videos and images that you place on the canvas will be rendered as fixed-size thumbnails; chapter videos use the first frame of the chapter as their thumbnail image.

To make menu elements do something, you must add a link to them via the right-click menu. There, the Link submenu is populated with both the video content of the disc (chapters included) and the existing menus. Linking an image or text element to a video will cause it to play the video (or video chapter); linking to a menu will cause it to jump to that menu.

[menu linking]

Those are the basics. Bombono offers a handful of layout tools, including the ability to align selected elements to each other, and bare-bones font options. It does not, however, check your links for a proper hierarchy, so if you forget to add "return to main menu" links to your submenus, you are on your own. Similarly, the image support is bare-bones; you can scale but not crop images, and you cannot change the z-ordering of any page elements — the order they are added to the page is the order in which they stack vertically.

By default, videos and stills are placed on the canvas in rectangular frames. To create a slightly more complicated look, you can change the frame shape from the drop-down menu in the toolbar. Hexagons, rounded rectangles, and alpha-transparent border fades are supplied. The project's documentation includes some incomplete instructions about creating your own frames; hopefully that will be expanded in the future.

On the other hand, Bombono's right-click linking is very difficult to get wrong. Working with the application might remind those old enough of Apple's Hypercard; Bombono keeps track of the linkable elements for you, and makes it impossible to create a semantically invalid link, which is something it is possible to do with more complex DVD authoring tools that take a scripting-like approach.

Outputting

The actual DVD image creation is handled by the external dvdauthor tool. Bombono lets you burn a disc directly, write out an ISO image, or write a DVD content folder than can be burned to disc by another application. Dvdauthor's output is written to a "Details" window as the authoring process proceeds; if it fails you can inspect the output there to try and determine the cause of the problem.

Tracking down an error caused by a moved file might be easy, but it is also possible for Bombono's menu editor to produce invalid intermediate XML that will throw an error when fed to dvdauthor. I encountered this problem when producing a test ISO. The DVD failed to burn, reporting that one of the buttons attempted to link to a chapter that did not exist in the video. How that happened is still a mystery; it isn't possible in the GUI to link to a chapter that doesn't exist, so the erroneous reference obviously had some other cause.

In such a situation, the only recourse is to open up Bombono's XML project file and look for empty attributes. This is made more difficult because the application assigns automatic names (such as Media.0.0) to disc elements, rather than using the source element's name, and because there is some ambiguity in the way non-video elements are treated. For example, a still image can be added to a menu directly, in which case it is automatically created within a frame, or the frame can be added first and the image added to it as a "Poster" element. The two appear identical, but in the former case the image is added to the frame as "Ref" element instead of a "Poster" and evidently produces different behavior when linked to a video. A little trial-and-error time is probably a wise idea before starting work on the big Annual Report DVD.

Once the kinks are worked out, however, you can open a DVD ISO image in VLC Player (or any other media player with full DVD support) to test its playback and menu functionality, without burning it to a physical disc.

Closing credits

DVDs can support a lot of non-essential features (such as alternate audio tracks, animated menus, multiple subtitles, and the rarely used "alternate angles"); most authoring tools start out supporting a small subset and slowly add more features as they progress. Looking at the support forum and issue tracker for Bombono, it appears that developer Ilya Muravjov is resisting the temptation to add too much too soon.

That is certainly wise. Some of the more feature-laden DVD authoring suites, such as QDVDAuthor, become tricky to use by virtue of supporting complex menu structures and DVD features. Although it is good to have the options available, for the majority of Linux users crafting a DVD is an occasional task at best. Still, it would be nice to see Bombono add one or two more features to help in the editing process — such as better layout tools, perhaps rulers and z-ordering, and some support for subtitle tracks.

For right now, though, if you are asked to put video content onto a disc that will play in a typical consumer DVD player, Bombono is a quick and straightforward solution.

Comments (9 posted)

Brief items

Quotes of the week

We know that many of you keep using KDE3 for the sole purpose of running KMyMoney, so we devised a plan to produce a version for KDE4 as fast as possible and at the same time keep the high level of quality that your financial data deserves. If you upgrade to this new version and you notice no changes, other than some style eye-candy here and there, we can say we fulfilled our goal.
-- KMyMoney 4.0 coming soon

MeeGo is primarily aimed at very personal devices (for example, some surveys show that there are classes of people who rather ditch their girlfriend/boyfriend than to lose their phone). In light of this personal nature, having multiple users isn't our first priority.
-- Arjan van de Ven

Comments (none posted)

CKAN 1.0 released

The Comprehensive Knowledge Archive Network (CKAN) has set itself the goal of becoming "the Debian of data," providing access to free datasets worldwide. The project has just announced the 1.0 release of its core software. "After 3 years of development, twelve point releases and a several successful production deployments around the world CKAN has come of age!"

Comments (4 posted)

DiffPDF 1.0.0 released

[Screenshot] The DiffPDF 1.0.0 release is out. DiffPDF presents a side-by-side view of two PDF files, highlighting the differences between them. It can compare files based on text only, or by also taking appearance (formatting and such) into account.

Full Story (comments: 2)

Django 1.2 released

The Django 1.2 release has been announced. The list of new features is long; it includes support for multiple database connections, a model validation mechanism, object-level permissions, a number of spatial database backends, and more. See the release notes for details.

Comments (3 posted)

The Google Font Directory

Google has launched the Google Font Directory, a collection of freely-licensed web fonts. From the announcement: "Google has been working with a number of talented font designers to produce a varied collection of high quality open source fonts for the Google Font Directory. With the Google Font API, using these fonts on your web page is almost as easy as using the standard set of so-called 'web-safe' fonts that come installed on most computers."

Comments (none posted)

Hardware Locality (hwloc) v1.0 released

Version 1.0 of the hwloc system is available. "hwloc provides command line tools and a C API to obtain the hierarchical map of key computing elements, such as: NUMA memory nodes, shared caches, processor sockets, processor cores, and processor "threads". hwloc also gathers various attributes such as cache and memory information, and is portable across a variety of different operating systems and platforms." There's a lot of changes since the previous release; click below for the details.

Full Story (comments: none)

Lightspark Flash player goes beta

Responding to the acute lack of beta-quality free Flash players, the Lightspark developers have announced a beta release. "Mostly complete support for the newer version of the flash scripting language: ActionScript 3.0, introduced with Flash 9. Both an interpreter and a JIT engine based on LLVM are provided. The previous versions of the language (supported by Gnash, which does not support 3.0) run on a completely different, and quite weird, virtual machine."

Comments (10 posted)

MDP release 2.6

The Modular Toolkit for Data Processing (MDP) is described this way:

From the user's perspective, MDP is a collection of supervised and unsupervised learning algorithms and other data processing units that can be combined into data processing sequences and more complex feed-forward network architectures. From the scientific developer's perspective, MDP is a modular framework, which can easily be expanded. The implementation of new algorithms is easy and intuitive. The new implemented units are then automatically integrated with the rest of the library.

The 2.6 release is now available; it includes a number of new classifier nodes, a dynamic extension mechanism, the ability to deal with bidirectional flows, and a new flow inspection tool.

Full Story (comments: none)

PostgreSQL Security Update Releases

The PostgreSQL project has released versions 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25, and 7.4.29. Each of these fixes some "moderate-risk security issues," all tied to the PL/perl and PL/tcl extension mechanisms. Several other important bug fixes are included as well.

Full Story (comments: none)

SeaMonkey 2.1 Alpha 1 released

The first alpha of SeaMonkey 2.1 is out; it's not for regular use at this point, but it does show what the SeaMonkey developers are working on this time around. Significant changes include a number of performance improvements, full-screen HTML5 video, resizeable text areas (no more typing long stuff into tiny boxes!), some privacy improvements, and more.

Full Story (comments: none)

VirtualBox 3.2 released

Version 3.2 of VirtualBox (now "Oracle VM VirtualBox(TM)") has been released. New features include support for Mac OS X guests, a memory balloon driver, memory deduplication, CPU hotplugging, large page support, and more; see the changelog for details.

Full Story (comments: 8)

Google's WebM video codec project launches

WebM is a new project launched by Google and supported by a long list of free software projects (Mozilla, GStreamer) and companies. It is based on the Matroska container format, the Vorbis audio codec, and the (just freed) VP8 video codec. "A key factor in the web's success is that its core technologies such as HTML, HTTP, TCP/IP, etc. are open and freely implementable. Though video is also now core to the web experience, there is unfortunately no open and free video format that is on par with the leading commercial choices. To that end, we are excited to introduce WebM, a broadly-backed community effort to develop a world-class media format for the open web."

Comments (36 posted)

Newsletters and articles

Development newsletters from the last week

Comments (none posted)

How to Become Linus Torvalds (The H)

Over at The H, Glyn Moody looks at Linus Torvalds's management style, its history, and how it can be applied elsewhere. "Now, there is only one Linus, but I believe that general approach is starting to move out into other spheres. In part, that's because adaptations of the open source development methodology — based on a modular, distributed, collaborative development model — are being applied in more and more fields, from content to science and even to government. That approach brings with it a need for a different kind of management: top-down just doesn't work in these circumstances."

Comments (11 posted)

A technical analysis of VP8

Jason Garrett-Glaser has posted what he claims is The first in-depth technical analysis of the VP8 codec. The "in-depth" part is certainly right. "Overall, VP8 appears to be significantly weaker than H.264 compression-wise. The primary weaknesses mentioned above are the lack of proper adaptive quantization, lack of B-frames, lack of an 8x8 transform, and non-adaptive loop filter. With this in mind, I expect VP8 to be more comparable to VC-1 or H.264 Baseline Profile than with H.264. Of course, this is still significantly better than Theora, and in my tests it beats Dirac quite handily as well." (Thanks to Martin Jeppesen).

Comments (37 posted)

Page editor: Jonathan Corbet
Next page: Announcements>>

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds