Living (and working) with Broadcast 2000
Andrew F. Lack, February 16th 2002

I `discovered' Broadcast 2000 while searching for a Linux sound editor. What I found was much more than that.

Why write this web page? Well, like most software, the fun is in the writing and not the documenting, so the documentation that comes with Broadcast 2000 is limited, terse, quite technical and most of it is quite beyond a simpleton like me to understand. So I decided to write-down my tips and experiences and publish them on the web in the hope that you might find them useful.

It seems that Adam Williams has removed the source code of Broadcast 2000 for fear of prosecution. However, many Linux distributions ship the software and include the source code. The last release was version 2000c.

Contents

What is Broadcast 2000?

If you found this web page before the Home Page for Broadcast 2000, then I will say just this; Broadcast 2000 is a full feature sound & video recorder and editor, with plugins for numerous effects. It seems to be written by one person, Adam Williams. The Home Page also includes numerous tools to assist in the production of videos, including a nifty little MPEG-2 encoder, with modifications for producing low frame-rate videos, plus a player. All Open Source, all for Linux.

But you had better go and check-out the Home Page. By the way, the web site makes a lot of amazing claims about what you can do with the software. If you are cinical, as I am, (especially if you use the Web a lot...) you would be forgiven for dismissing the site. But, having lived with the software for about 8 months I am sure it really is true, but you're going to need a beefy PC.

I have also found this handy introduction to Broadcast 2000 on one of the O'Reilly websites.

What is my interest in Broadcast 2000?

I have nothing to do with the writing of the code. I am a simple user. Having discovered Broadcast 2000, I want to help foster its wider use. I hope these notes will help you. But I had (and still have) a lot of questions about video production and so you may still not find the answers here... Mail me if you have anything to add.

Audio

These points are covered in more detail below.

In more detail

Making a CD from an analogue cassette or Vinyl record

First, connect up you Hi-Fi to your computer's sound card. You'll need to open the sound mixer and work-out which fader adjusts the recording gain.

Start Broadcast 2000 and start a new project with File->new and choose 2 channels of audio at 44.1KHz, no video. Click the record button on the tool bar and select a filename, plus choose WAV format to save the data. Make sure you click Monitor Audio and you should see the two VU meters displaying as you play the cassette or record. You may need to select the record-source with the sound mixer.

Cue the beginning of the cassette or LP and start recording with Broadcast 2000. When done, stop recording and click save. This will display the data as a wave-form on the main Broadcast 2000 edit window.

If you recorded several tracks at once, for example the whole of one side of an LP, you need to split up the recording and save each track in a separate WAV file. This is how;

  1. find the place where the track will start. Click the Label button to mark it.
  2. find the place where the track will end and label it.
  3. double click between the two labels in the bar where the labels show up. This highlightes the section.
  4. Choose File->Render and render the section to a new WAV file. Only the section highlighted is rendered.
  5. You need to repeat this for each track. It's probably better to remove the old labels to save confusion. To remove a label, click-left on it then click Label and it is removed.
You can now use cdrecord to burn a CD from the WAV files you have created.

Video

I have successfully used Broadcast 2000 to record from a VCR and create small video recordings and then burn them onto CD.

I have a medium-spec PC as follows;

Getting good recordings from video takes a lot of disc space and experimentation with the settings of Broadcast 2000. It is definitely true to say here that your mileage will vary.

Summary

All these points are described in more detail below.

In more detail

How big and what fps?

The most critical settings for video with Broadcast 2000 is the frame rate and image size. For PAL TV you want to capture at 25 frames per second (fps) to give smooth motion flow. Frame rates under this give jerky movement for all but the slowest motion. But high frame rates require more storage and put more demand on the playback system.

Then you want a picture that's as big as possible. No good squinting at tiny 160x120 images. Of course if you're working on producing a video file for downloading from the Internet, then small image size might be a good idea!

A full sized PAL image is roughly 550x410. The ratio of sides of the image is 4:3 for standard low-definition TV and 16:9 for `high definition' TV.

Setting the Recording Video Quality

The video Options button in the recording window is a key part of Broadcast 2000 and yet is not documented well. It allows you to choose the type of video image which is recorded. It defaults to RGB which gives the highest quality but also the highest I/O to your disc.

By choosing JPEG you can then set the JPEG compression quality. This can greatly reduce the disc storage requirements (and hence disc I/O) but increases the CPU load to process each frame.

I set compression to 65 and can reduce the disc storage from about 200MB/min down to 20MB/min (300x240x24fps). Reducing the disc I/O this way also allows me to get up to 400x300x12.5fps without any noise bars.

The next big problem is the 2.1GB maximum file limit imposed by Linux. This means that you won't be able to record for hours. In fact with RGB format you probably won't be able to record for more than a few minutes, so off-air recording is not really possible. Using JPEG and compression is the only way (I know at this time of writing) to extend Broadcast 2000's maximum recording time.

Some tips on increasing performance

Here's some tips I have tried (with varying success) to increase the video-recording performance;

Rendering Movies

You have two choices for the movie file format; quicktime or MPEG. Quicktime is the easiest to produce as it can be rendered directly (and quickly) from Broadcast 2000. However, even with generous compression you will still get large files, perhaps only up to 45 minutes per CD.

MPEG, on the other hand, is capable of producing very low bitrate files (under 1Mb/s) which is a better size for putting on the Internet. However, creating MPEG movies is a time-consuming process--it takes about a hour on my K6-2 system to get a 10 minute video with audio.

There are two MPEG libraries on the Broadcast 2000 Home Page, one for MPEG-2 and another (well hidden) for MPEG-1. Unless you can't compile the MPEG-2 tools, don't use the MPEG-1 tools--they're more complex to use as the video must be generated from a JPEGLIST which requires a lot of disc space and the removal of thousands of jpeg images in one directory is challenging. [``rm *'' won't work--you'll get argument list too long, so you'll have to use find with a -exec.]

The MPEG-2 tools will generate video streams of either MPEG-1 or 2 and can use stereo MPEG-1/Layer 3 audio streams.

The steps required to create a MPEG movie require the use of three separate command-line programs. I have written a simple shell script to automate this process. Here's the details of how to create a MPEG movie from Broadcast 2000;

  1. Generate a quicktime file using File->Render. You don't need to include the audio stream, but it doesn't matter if you do. It seems the official MPEG standard doesn't support frame rates below 24, but Adam Williams has hacked the MPEG-2 encoder to support low frame rates of 1, 5, 10, 12 and 15. If you record at a low frame rate and want to generate a video stream at 24fps, change the frame rate with Video->Frame rate before rendering. Don't forget the output quicktime file will be larger if you increase the frame rate and there is the 2.1GB Linux single file size limit.
  2. Generate a WAV file containing the audio data. It's possible that some media players will expect a sample rate of 44.1KHz. If you record at a lower sampling rate (to increase CPU performance for video recording) you can re-sample the WAV file to 44.1KHz using sox.
  3. Run the encode program from the mpeg-2_movie/video directory. There are a number of parameters you need to set which control the quality (and size) of the output MPEG video stream. The trick is to make the quality acceptable and the size small.
  4. Convert the WAV audio to an MPEG-3 audio stream. I use bladeenc.
  5. Finally, multiplex the video and audio streams together using the mplex program from the mpeg-2_movie/mplex directory.

Handling multiple video streams in a Project

Positioning assests on the time-line
  1. use File->Append to load a new asset
  2. put a label at point where you want the new asset to start on the time-line
  3. make sure there no labels between it and the start of the project
  4. double-click in the label bar to select the region from the start to the label
  5. make sure the only track(s) which are editable belong to the asset you want to move
  6. use Edit->Paste Silence. This inserts silence into the tracks(s) pushing the video and/or audio to start at your label
Making static titles
  1. Use the GIMP to create a PNG file with the text you require. Make sure you have a transparent background
  2. Load the PNG file as a new asset with File->Append. This adds about 1s of video frames of the image at the current frame-rate
  3. If you only want 1s of title, stop here. You may want to position the new asset by following these instructions.
  4. If you want more than 1s of title, you must extend the asset by dragging the track end-point (the little blue right-facing triangle) with the left mouse button.
  5. You may want to set fade-points on the title to get it to fade-in and out.
  6. Make sure you have alpha channels enabled in Settings->Preferences->Playback otherwise the video output is just the contents of the first video track.
Disolving between video streams
To be completed

Things I haven't figured out (yet)

Zooming and panning

Watching Movies

The're aren't many MPEG players for Linux;

xanim is not good at playing MPEGs. It's better for .avi and .mov files

aktion is the KDE media player but is based on xanim...

mtv is a commercial product (costs USD 10.00) which only plays MPEG-1 streams. It has a command-line player, mtvp, which can be used without having to pay anything.

xmovie is another offering from Adam Williams. Brilliant player capable of handling MPEG-1, MPEG-2 and quicktime files. Includes a random-seek widget.

Creating Movies for viewing with Windows

You need to create MPEG-1 video streams if you want your movies to play with the Windows media player. You probably also (yet to be confirmed) need to use a MPEG-1/layer-2 audio stream.

Quicktime movies will play with the Windows Quicktime player, which must be separately downloaded and installed.