SUMMARY:
This is a digital video (dv) avi to mjpeg-encoded avi converter. It's a
quick hack to get me by until formal support is provided in other
packages.

During this process it converts a 720x480 29.970fps 48khz incoming a/v
stream to 352x240 29.970fps 48khz mjpeg-encoded. This frame size is
required if you want to burn NTSC VCDs (see PAL support below)

NOTE: 
This is a quick hack. I don't have time to make the source pretty. It 
works quite well regardless. Please carefully read this document in its 
entirety; there's many intermediate steps and things can get confusing. 
Also, read the docs that are on the mjpeg tools web site for more help
on their end of the process.

FILES:
The package can be retrieved from 
http://cajun.sourceforge.net/dv2jpg/dv2jpg.tar.gz

The two prebuilt executables can be fetched from
http://cajun.sourceforge.net/dv2jpg/files/dv2jpg and
http://cajun.sourceforge.net/dv2jpg/files/avijoin

REQUIRED:
you'll need:
*) dvgrab, a digital video device, and a fireware card. I'm using
	the Dazzle Hollywood analog (composite) to digital converter to capture 
	output from my vcr.
*) libgdk-pixbuf; usually comes with redhat 7.0 "workstation" install.
*) the avilib package ripped from lavtools-1.2 (included)
*) libdv from sourceforge (quaser codec). you may need version 0.4.
*) mjpeg tools (rev >= 1.3b3) from sourceforge (the FRIGGEN greatest 
	thing since sliced bread!!  good job on the mjpeg avi support guys!!)
*) avilib converted for use with the DV codec (included)

BUILDING:
since this is a quick hack, I haven't made the makefiles/source pretty, etc.
besides adjusting a few paths, things should build fine. I'm using
redhat 7.0/2.4.1.  There's two executables to build, dv2jpg and avijoin.

USING:
1) use dvgrab with the --format dv2 parameter to create avi files. 
	you'll notice that the avi files it creates are about 1gb in size,
	and contain about 4.5 minutes of video/audio. An hour and a half show
	takes up about 25 gigabytes.
2) use "dv2jpg dvavi mjpegavi" to convert one of the above-created DVavi's
	into mjpeg-encoded AVIs.  repeat for all DVavi's. You won't need the 
	DVavi's any more now that you have mjpeg-encoded AVIs. That'll free up 
	some much needed disk space, since they're much smaller.
3) use "avijoin showname_1-6.avi show1.avi show2.avi show3.avi show4.avi
	show5.avi show6.avi" to join together 6 of the 4.5 minute mjpeg-encoded
	avi's. you'll wind up with almost 1/2 hour of avi; about one gigabyte.
	this seems to be the about the max you can stick in an avi file;
	though I haven't tried putting more.
4) convert the audio to mpeg by using mjpeg tools. This will do a rate
	conversion from 48khz to 44.1khz in the process:
	lav2wav showname_1-6.avi | mp2enc -v -o showname_1-6_a.mpg"
5) convert the video to mpeg by using mjpeg tools:
	lav2yuv showname_1-6.avi | mpeg2enc -m 1 -b 1152 -o showname_1-6_v.mpg -r 32 -4 1 -2 1 -h
6) join the video and audio together using mjpeg tools:
	mplex -m 1 -f 1 showname_1-6_v.mpg showname_1-6_a.mpg showname_1-6.mpg
7) repeat the process for segments 7-12. you now have an hour's worth of
	mpeg-encoded video in two pieces.
8) use vcdtools and cdrdao to burn your two segments to vcd. NOTE: my
	Sony dvd player doesn't like any CD's other than... (I think they're
	called) "memorex platinum 650MB CDRW" NOTE that they're CDRW's; CDR's
	wont work because the laser is too weak. if you don't have a Sony,
	hopefully you'll have better luck than I did.
9) Insert VCD into dvd player, or use the 'mtv' package to play your movie.
10) enjoy. This is a required step. Do not skip.

SIZE NOTE:
	The exact amount you can fit on a 650MB CD can vary; it could be
	that you can fit 11,12,13, or 14 segments. Start with the
	12 like I do here and try more as you get comfortable. If you
	can use regular CDRs, try a 700MB disc.

PAL SUPPORT:
Right now PAL isn't supported; I'm not sure of the vcd sizes required. If
someone can let me know what the image size is for a PAL VCD, I'll add support.
You can also change dv2jpg.c and substitute in the proper size yourself
(but do be nice and let me know).

THANKS TO:
The Gnome team for help with libgdk-pixbuf, rasterman for help with imlib2,
arne for help with dvgrab. *Tremendous* Kudos go to the mjpeg-tools team,
who built a nice fast mpeg encoder that can handle a common input format. 
More Kudos to Dr. Ranier for lavtools help. Charles 'Buck' Krasic for help 
with the LIBDV codec.  And of course Linus and every Open Source/Free Software 
contributer for helping us all get along fine without any Micro Sloth(tm) 
products.  

Die, inferior operating system, Die!  It's not dead yet! Yes it is; it'll
be stone dead in a moment. aww, well can't you do something? Na, I've got
to go to the Robinson's; they've lost 9 today. Well, do us a favor! 
(whomp) Thank you very much!    Bring out your dead! Bring out your Dead!...

-paulb
paulb =at= foobox =dot= com