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.
Practical books for the most technical people on the planet. Newly available books include:
- Agile Product Development by Ted Schmidt
- Improve Business Processes with an Enterprise Job Scheduler by Mike Diehl
- Finding Your Way: Mapping Your Network to Improve Manageability by Bill Childers
- DIY Commerce Site by Reven Lerner
Plus many more.
- diff -u: What's New in Kernel Development
- Server Hardening
- Giving Silos Their Due
- 22 Years of Linux Journal on One DVD - Now Available
- What's New in 3D Printing, Part III: the Software
- Don't Burn Your Android Yet
- Controversy at the Linux Foundation
- February 2016 Issue of Linux Journal
- Firefox OS