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.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Bluetooth Hacks
- Libreboot on an X60, Part I: the Setup
- Dealing with Boundary Issues
- System Status as SMS Text Messages
- Vagrant Simplified
- Non-Linux FOSS: Code Your Way To Victory!
- Linux and the Internet of Things
- October 2015 Issue of Linux Journal: Raspberry Pi