Amateur Video Production Using Free Software and Linux
Once I had digital video on my computer, editing it was the next step. Broadcast 2000 (MandrakeSoft produces an RPM called bcast-2000c) is a GPLed nonlinear video editor [see “Movie Making on a Linux Box?”, LJ January 2001 and “NLE Video Editors”, LJ February 2002]. With it, one can manipulate audio and video tracks. A screenshot of Broadcast 2000 may be seen in Figure 1. SuSE has a pretty good guide to Broadcast 2000. Cinelerra, best for users competent in compiling development-quality code, can be found on SourceForge and is the up and coming successor to Broadcast 2000. Both of these tools work with the QuickTime output from xawtv.
Now that I was able to digitize and edit my VHS tapes, it was time to encode them as VCDs. A little research revealed that VCDs contain MPEG-1 video streams and MPEG-1 layer 2 audio streams. This data, along with some simple directory information, is encoded onto a CD. More information about the VCD format, also known as the White Book specification, can be found at www.cdpage.com/Compact_Disc_Books/whitebook.html.
A package named mjpegtools does a good job of transcoding an MJPEG encoded QuickTime file into an MPEG-1 stream. Using vcdimager, a VCD image can be created from the resulting MPEG-1 stream. Finally, the VCD image can be burned to CD-R media using cdrdao. Here is how I use these tools to create a VCD on my system:
streamer -r 23.976024 -s 640x480 -f jpeg -F stereo -i Composite1 -n ntsc -c /dev/v4l/video0 -b 64 -o foo.mov -p 2 -t 00:45:00
You may need to use a different argument with -c, which specifies the video capture device to use. Often it is /dev/video0. The -t parameter specifies how long the program should continue capturing:
lav2yuv +n -n 2 -d 3 foo.mov | yuvscaler -n n -O VCD | mpeg2enc -n n -f 1 -r 16 -o foo_video.mpg lav2wav +n foo.mov | mp2enc -V -o foo_audio.mp2 mplex -f 1 foo_audio.mp2 foo_video.mpg -o foo.mpg vcdimager foo.mpg cdrdao write --driver generic-mmc --device 0,4,0 --speed 1 videocd.cue
Replace 0,4,0 with the numbers that reference the CD writing drive on your system.
I have simplified this process with a package called qtutils, which includes a script named vcdize.
Many DVD players can play VCDs in addition to DVDs. However, some DVD players have trouble playing CD-R discs. My Phillips Magnavox DVD 825 DVD player plays the VCDs that I have burned to CD-R media fine.
Some relatively storage-space friendly alternatives other than the VCD format exist, including MPEG-2 and QuickTime using the OpenDivX and Ogg Vorbis codecs. These formats may be played with a computer using video players that use the QuickTime for Linux library such as X-Movie.
So there you have it. You should now be able to convert VHS tapes to a more convenient format using free software exclusively. The VCDs you produce will play in DVD players that support the VCD format and CD-R media. For more information on this subject, visit the home pages of the software projects I mentioned. Two very relevant mailing lists also exist: the video4linux and mjpegtools mailing lists, hosted by Red Hat and SourceForge respectively. Enjoy!
Mike Petullo is a platoon leader in the US Army, stationed in Germany. He fights C code bugs by night, has been tinkering with Linux since early in 1997 and welcomes your comments.
- Bruce Nikkel's Practical Forensic Imaging (No Starch Press)
- Transitioning to Python 3
- Progress on Privacy
- Stepping into Science
- Linux Journal December 2016
- Radio Free Linux
- The Tiny Internet Project, Part II
- CORSAIR's Carbide Air 740
- FutureVault Inc.'s FutureVault
- A Better Raspberry Pi Streaming Solution