O'Reilly Network    
 Published on O'Reilly Network (http://www.oreillynet.com/)
 See this if you're having trouble printing code examples

Broadcast 2000 Brings DV Editing to Linux

by Curtis Lee Fulton

Why I Prefer the Open Source Solution for Video Editing

A personal note from Curtis Lee Fulton about why he prefers to use the open sourced "Broadcast 2000" editing application over other solutions such as Final Cut Pro.

Related Articles

Broadband Price and Serviceability Top Customer Concerns

Server-Side Considerations for Video Streaming

Creating Great Audio for the Web

Previous Features

More from the Linux DevCenter

As digital video cameras drop in price and bandwidth widens with every DSL and cable hook-up, the notion of producing concise interesting video productions and streaming them over the Web is becoming more plausible every day.

Apple Computer has energized this phenomenon with its consumer-level "iMovie" DV editing application. Software developers for Windows, such as Ulead, have also been busy marketing their nonlinear editing packages.

But editing packages, even the high-end ones such as Avid or Final Cut Pro, are just that, packages. Neat little black boxes that give the artist little hope of breaking the mold. By contrast, GNU/Linux gives you only the media and the medium, which is simply a string of pictures stored on your hard drive, played back in whatever order and at whatever speed you command the machine to do. These strings of pictures can be accessed at any time by any program or even other computers.

Broadcast 2000

Broadcast 2000, created by Adam Williams, is the mechanism that stitches the artist's media together. It will work with any size frame, any frame rate, and any number of audio tracks. Even by itself, Broadcast 2000 can add all sorts of effects.

The Broadcast2000 main window.
The Broadcast2000 main window. Two tracks can be seen here: one video track and one audio track. Notice the patchbay on the left and the transport at the top.

Broadcast 2000 is a non-linear editing system. This means that no part of the working media is ever stored in RAM, and it is only stored on the hard disk once. The artist assembles the production by creating an Edit Decision List (EDL), which is sort of like a conductor's score that tells Broadcast 2000 when to start/stop playing certain media clips.

At any time, a saved EDL can be loaded, which will erase the current EDL. If the chosen file is just a media file, then a new EDL will be created, bringing the media file's start and stop points into the newly created EDL.

Saved EDLs or media file entries can be appended to the current EDL as well. In Broadcast 2000, "append" refers to space, not time. The easiest way to visualize this is to think of a stack of film splices. To Broadcast 2000, sliding a new film slice under the others is "appending" it to the stack. In Broadcast 2000, every layer in that stack is a separate track. Tracks are always played at the same time, which would be a bit like gluing all those film splices on top of each other and running them through a projector.

When a media clip is appended, Broadcast 2000 considers it an "asset" and indexes it. When a clip is indexed, bits of information about the clip are stored in memory. This information is used to represent the clip visually in the EDL.

Often called a "bin" in non-linear packages, the asset manager is a list of all the media files Broadcast 2000 currently considers assets. Assets and all EDL references to an asset can be removed by using the asset manager.

Currently, the simplest way for the artist to get his or her footage into the machine is to use Video4Linux. This API works with most computer TV cards. TV cards usually have a jack where a VCR or camcorder can be connected. Broadcast 2000 has built-in support for Video4Linux, so the artist can digitize footage without leaving Broadcast 2000.

To use Video4Linux, the proper modules must be loaded or compiled into the kernel. Instructions for this task are outside the scope of this article. More information about the Video4Linux drivers can be found at the Video for Linux Resources Page

Video by Curtis Lee Fulton

Download a preview of The Evolution of Linux, an independent documentary that explores the phenomena of free information and its political, social, and economic repercussions.

It's in MPEG1 format -- if you're using Linux, Loki's smpeg player will play it.

Before digitizing, the artist should choose the desired video frame rate and audio sampling rate. The frame rate is set by choosing Video|Framerate from the main menu bar. The bit and sampling rate is chosen by selecting Audio|Sample rate from the main menu.

To begin digitizing, click on the record button, which is the one with the red dot in the middle of it. The first box that pops up is where the artist specifies the format of the digitized media. For now, the artist should choose a file format of Quicktime, with the following options set:

The artist should make sure that "render audio tracks" or "render video tracks" is selected only if video or audio recording is desired. After clicking "Do It," the artist will see two new boxes pop up. The box filled with black or TV "static" is the preview window. The preview window allows the artist to see what is being captured, in real time. Above the preview window is the recording transport.

The recording transport works basically like a tape recorder: It will fast forward, record, stop, and play. In addition to the basic record and play buttons, there is a record-and-play button, which will play back all audio tracks as it records.

The second window is the recording window. For convenience, it has a copy of the recording transport. The recording window allows the artist to choose the recording mode, which has three options: untimed, timed, and looped. Timed and looped modes require the artist to enter a recording duration on the right.

The recording window for grabbing footage from a TV card. The transport at the top is similar to the main transport, except it has a combined record/play button, which acts like a multitrack recorder. If pressed, all enabled tracks will play back while video, audio, or both is captured. At the bottom of the window are the audio monitors. If enabled, they will show the volume level for each audio track.

The record window for grabbing footage from a TV card.

Capturing video this way is really only appropriate for media targeted for the Web. While Video4Linux can capture frames at 30 frames a second, with a frame size of 640x480, most computers are not fast enough to keep up with the demand. Also, the artist should be sure to grab the modified Video4Linux drivers from heroine.linuxave.net. These drivers fix a bug in the current Video4Linux implementation that causes the TV card to lock up after three or more minutes of capture, at frame rates less than 30 frames a second. For movie making or professional video productions, IEEE 1394 (aka Firewire, iLink) should be used. GNU/Linux has driver support for 1394 DV, and directions for capturing with 1394 will appear in the next article.

The Broadcast 2000 transport

The Broadcast 2000 transport.

The middle button is the stop button. It promptly halts any playback activity, rewinding the transport to the start location.

Moving left, starting from the stop button:

  1. Back one frame
  2. Play in reverse at normal speed
  3. Play in reverse at double speed
  4. Leap transport to beginning of EDL

Moving right, starting from the stop button:

  1. Forward one frame
  2. Play forward at normal speed
  3. Play forward at double speed
  4. Leap transport to end of EDL

The arrows seen are edits, which mark the beginning or end of an asset.

The arrows seen are edits, which mark the beginning or end of an asset specified in the EDL. The arrows always point away from the media, so these edits mark the end of this asset. Moving an edit into the asset shortens it, and vice versa.

The transport is used to play back media referenced in the EDL. The transport appears as a row of nine tape-recorderish buttons. The middle button, the one with a black square in the middle, is the stop button. All the buttons on the left of the stop button move the transport back in time, while the buttons on the right of the stop button move the transport forward in time. Notice that the two halves mirror each other: All the buttons on the left do the same thing as the buttons on the right, only in the reverse direction.

Every asset reference in Broadcast 2000 has a start and stop point called an edit. Edits on the same track are connected together linearly, or can be separated by "silence," the Broadcast 2000 term for empty space.

Any media referenced in the EDL have edit points, also called in/out points, which mark where in the media the EDL begins and ceases to read from it. Edits appear as little arrows that point away from media. Dragging an edit into the media shortens it, dragging an edit away from the media makes it longer, unless the end or beginning has been reached.

The patchbay enables or disables functions for each track.

The patchbay enables or disables functions for each track. The green arrow enables playback for that track; the red dot enables track modification (edits and autos); the 'A' enables autos for track playback or project rendering; and the 'D' enables track drawing. (Pictures for video, waveform data for audio.)

Every track has an entry in the "patchbay," which runs along the left of the main window. The patchbay controls four things: playback, record, automation, or track drawing.

If the artist wants an asset referenced on a particular track to be seen or heard, playback for that track has to be turned on. Record means that all edits or autos in that track can be modified. If track drawing is on, then all assets on that track will be represented visually by either waveform peak information (for sound) or frame snapshots (for video).

Broadcast2000 autos can control a variety of functions.

Broadcast2000 autos can control a variety of functions. In this case, the auto is controlling a fade from black at the beginning of the asset.

Anything besides the in/out points is controlled in the EDL with automations (autos). Tasks like fade to black, fade to silence, and all sorts of advanced effects can easily be controlled by the Broadcast 2000 automation mechanism. This will be described in detail in the next article, along with a complete guide to configuring Broadcast 2000 around the artist's project, and how to bring in media from a DV camera.

Curtis Lee Fulton is the creator of AcidGimp, the software that uses a metaphor of an analog musical synthesizer to add effects to video footage.

See Also

Why I Prefer the Open Source Solution for Video Editing
A personal note from Curtis Lee Fulton about why he prefers to use the open sourced "Broadcast 2000" editing application over other solutions such as Final Cut Pro.

Related Articles

Broadband Price and Serviceability Top Customer Concerns

Server-Side Considerations for Video Streaming

Creating Great Audio for the Web

Discuss this article in the O'Reilly Network Linux Forum.

Return to the Linux DevCenter.


Copyright © 2009 O'Reilly Media, Inc.