View Single Post
Posts: 3 | Thanked: 15 times | Joined on Sep 2008 @ France
#1
This post is about using the N800 webcam as a Desktop webcam on a Linux system (personnaly, I never use the emdedded N800 webcam on the tablet, but I was interested in using it on my Desktop with amsn).

The way to do it is to use the gstreamer to send the webcam data over the network, then to use again gstreamer and the vloopback on the desktop side to emulate a v4l2 device.

In this message, $N800_HOST and $DESKTOP_HOST are the n800 and desktop IP. N800 and Desktop computer are on the same wifi LAN.

1. N800, send the image over network

You need first to install the package :
gstreamer0.10-plugins-extra

Then, you can ensure that the following command doesn't throw any error. This command blocks, you can then stop with ctrl-C :
Code:
gst-launch-0.10 -v v4l2src ! 'video/x-raw-yuv,width=320,height=240,framerate=8/1' ! ffmpegcolorspace ! jpegenc ! tcpserversink host=$DESKTOP_HOST port=5434
2. Prepare the vloopback device
You need to compile the vloopback module. This module can be found on this page : http://www.lavrsen.dk/twiki/pub/Moti...ack-1.1.tar.gz

You need to patch this source because there aren't compatible with Linux > 2.6.24, so download also this patch :
http://data.likide.homelinux.org/vloopback-1.1.patch

Go to the folder where you have put these files, ensure you have the correct tools to build linux module (gcc and linux headers files), then :
Code:
tar xzf vloopback-1.1.tar.gz
cd vloopback-1.1
cp ../vloopback-1.1.patch .
patch -p1 -i vloopback-1.1.patch
make
If there is no error, you can then, with root user :
Code:
cp vloopback.ko /lib/modules/`uname --release`
depmod -a
modprobe vloopback
You can verify the module is correctly loaded by checking the presence of /dev/video0 and /dev/video1 files.
Change the permission of these files
Code:
chmod 777 /dev/video*
3. Prepare the gstreamer plugin
To send the data into the the vloopback device, you need a specific gstreamer plugin.

Download it here : http://data.likide.homelinux.org/gst...ack-0.1.tar.gz

Compile it (you need the gstreamer devel packages) :
Code:
./configure
make
If compilation doesn't throw error, install it with root user :
Code:
cp src/.libs/libgstvloopbacksink.so /usr/lib/gstreamer-0.10
Verify the installation by checking that the following command find the plugin :
gst-inspect-0.10 |grep vloopbacksink

4. Plug all the elements

Run the command seen in 1. (N800)

On the desktop, run :
Code:
gst-launch -v tcpclientsrc host=$N800_HOST port=5434 ! jpegdec ! vloopbacksink location=/dev/video0
5. Test the webcam

Code:
xawtv -c /dev/video1
command should display the webcam image on the desktop side.

You can use amsn with /dev/video1 as the webcam source.

Known issues
  • 320x240 image size is currently hardcoded
  • xawtv and amsn are known to work, cheese and skype not to work
  • network and computer load can delay video stream ; 320x200 works fine here with wifi LAN and pentium M 1.8Ghz
  • intensive network, processor and webcam use drain battery on the n800 size ; be warned this utilisation can so shorten your battey life
  • this is a bit difficult, and the n800 webcam's quality is very poor
 

The Following 15 Users Say Thank You to lntalm For This Useful Post: