BSD video capture emulation question

Sean Welch welchsm at
Thu Jul 10 08:29:37 PDT 2003

First the question, then the motivation and reasoning.

Is it feasible to create an emulation interface for
firewire video capture such that it appears as a bktr

I've recently begun playing with gnomemeeting and had
some success with the audio conferencing end of it.
I'm able to receive video feeds, but unable to send
them.  This is because 2.5 years ago I made the
transition to a laptop as my main workstation.  I no
longer even maintain a desktop system.

I use this laptop for everything -- including a media
center (of sorts).  I don't need Windows or Linux for
this and I'm quite a bit more productive under
FreeBSD than I would be under either of the other two
(and the performance happens to be better as well).
FreeBSD is well equiped to handle everything you might
normally run across (ogle, wavrec, mplayer, mozilla,
flashplugin-wrapper, mplayerplug-in, DRI, s10sh, gimp,
gaim, gnomemeeting, TeX, OpenOffice, VMWare, realplay,
xmms, apache, samba, etc) EXCEPT video capture.

Linux accomplishes this with the video4linux API and
thus has access to a wide range of usb webcams for use
with programs like gnomemeeting.  FreeBSD has no such
API though it does have programs like cqcam, camserv,
and bktr2jpeg (not in ports)... for obsolete cameras.
It seems Linux achieves its success with devices
represented as a generic video device handled directly
by the kernel.  The programs I mentioned above are
userland programs (of course) and so don't (apparently)
have the same utility.

Asking around it seems that porting the video4linux
API would be tedious and exceedingly painful (my
paraphrasing).  It also has the possible disadvantage
of being GPL'd -- personally I think BSD (Free, Net,
and Open) would benefit more from a BSD licensed
solution.  It seems writing a video4bsd API from
scratch that is compatible with video4linux would also
be rather daunting.

It occurred to me however that there does exist one
kernel video device -- the bktr device family.  It is
well established and works well (that is what I read,
at any rate).  In addition, the firewire video capture
program is not GPL'd (to the best of my knowledge) and
seems a good candidate.  My impression is that capture
from firewire is a bit more straight-forward than
capture from usb.  Apple is now stirring up the
industry with iSight and I expect it will increase the
availability of firewire webcams at lower prices.

So, would it be possible to emulate a bktr device
front end for a firewire cam (of some sort) in the
same manner as is currently done with atapicam for
scsi emulation on top of atapi?

FreeBSD keeps up so well in all the other categories
relevant to a desktop media system that it would be
really nice to have it also encompass this ability.
Not to mention it would allow me to video conference
with the rest of my family located 1100 miles away
without resorting to another operating system.

I'm not competent enough to attempt this myself (yet!)
but I'm more than willing to help as much as I can
with coding and testing (assuming this proposition is
even feasible).


More information about the freebsd-current mailing list