Here are more details.
as root:
1) get quickcam express working: use qc-usb driver
http://qce-ga.sourceforge.net/install driver, this will make /dev/video0
[gentoo: $ emerge qc-usb]
test with: $ gqcam -v /dev/video0
enhance with
doublebuffer:
$ qcset /dev/video0 compat=2
better colors:
$ qcset /dev/video0 equalize=1
This helps a lot and is very recommended in low light situations.
2) get avld:
http://allonlinux.free.fr/Projets/AVLD/This kernel module needs to modified and compiled. Both are easy to do. It was recently updated, so now only one line needs to added.
Unpack:
$ tar jxvf avld_0.1.3.tar.bz
$ cd avld_0.1.3
Edit video_device.c:
Toward the end of of the file, at the beginning of the LINUX KERNEL section there is this definition:
static struct file_operations v4l_fops = {
owner: THIS_MODULE,
open: v4l_open,
release: v4l_close,
read: v4l_read,
mmap: v4l_mmap,
write: v4l_write,
ioctl: v4l_ioctl,
llseek: no_llseek,
};
Add this line:
compat_ioctl: v4l_compat_ioctl32,
so it reads:
static struct file_operations v4l_fops = {
owner: THIS_MODULE,
open: v4l_open,
release: v4l_close,
read: v4l_read,
mmap: v4l_mmap,
write: v4l_write,
ioctl: v4l_ioctl,
compat_ioctl: v4l_compat_ioctl32,
llseek: no_llseek,
};
{Alternatively download patch attached to this note, and do
$ patch -p0 < AP032108.patch} cannot attach file
Then go ahead and compile, and install:
$ make
$ make install
Load the module with the palette parameter set to 1, so it does UYVY
$ modprobe avld palette=1
$ dmesg
Check if it loaded.
Finally, set the frame size which the module will accept and output:
$ echo "width=320 height=240 fps=10" > /dev/video1
It is static, eg. cannot be adjusted programmatically. However, if this is too large/slow just use 160:120 and skype should pick it up.
3) use mencoder to convert to uyvy:
Here is a possible invocation:
$ mencoder tv:// -tv driver=v4l:outfmt=rgb32:width=320:height=240:device=/dev/video0:noaudio:fps=9 -ovc raw -of rawvideo -vf format=uyvy -o /dev/video1 -quiet &> /dev/null &
This will clip the input window from the quickcam to 320:240. This size needs to be the same as accepted by avld. One could also use options to the -vf (videofilter) switch to scale but just clipping is ok for me. mencoder will just run in the background all the time. It does not take much cpu.
One could probably also use gstreamer, eg. a gst-launch pipe but I do not know enough about it. How does one clip or scale and what does ffmpegcolorspace exactly produce ? v4lsrc from /dev/video0 would be the input and filesink to /dev/video1 the output.
4) simply start skype
$ skype
The newest gold version seems to recognize also /dev/video1 if suitable, so it is not necessary to move around the device names.
In the options, the video device should appear as
Dummy video device (/dev/video1)
And the test button now works. As does actual transmission at a call.
Good luck, Andreas