I would personally go with a PCI card rather than an external device. As a rule of thumb, anything connected over USB tends to be more trouble under Linux than it should be.
I know V4L supports most PCI capture cards (mine worked out of the box), but obviously not all. The problem is telling which chipset a card has before buying it. There are some high-end capture cards that work well, but I don't know what your budget is here.
Beyond the hardware, you just need mencoder to encode the stream from V4L into whatever type of video file you want.
|