Monday, March 30, 2009

Webcam

Many webcams will "just work" in Ubuntu. There is a USB standard that defines USB streaming video called UVC. This stands for Universal Video Class, and it does for webcams what UMS does for USB memory sticks and hard drives. This allows one driver to work with many webcams. When looking to purchase a webcam for use with Ubuntu, you should look for a UVC compatible camera. The Linux-UVC project has a good list of UVC compatible webcams as well as The Quickcam Team for Logitech cameras.

Testing your webcam

Ekiga is installed by default in Ubuntu, and can be used to test your webcam.

For UVC devices luvcview is a good program you can use to test that the camera is working. If it doesn't work, you may need to update the UVC driver (see Manual install instructions below).

Cheese Camorama, xawtv, VLC, aMSN, and Kopete are in the Ubuntu repositories. They all can be used to test and use your webcam.

In some cases you (VLC, mplayer, amongst others) will need to know the video and audio device files for your webcam. Before you plug in your webcam, try the following two command at a console:

ls /dev/video*
ls /dev/audio*

Make a note of the devices appearing. Now plug in your webcam, allow the system a few seconds to register the device, and run the two commands again. The new appearances should belong to your webcam (for instance, /dev/video0 and /dev/audio2).

Driver installation

If needed, try EasyCam, a tool for installing webcam drivers. If you are unable to manage installing your Webcam using EasyCam, you may try installing your camera manually. At the end of this page are some links to help you with this.

If you are using Intrepid and have a Logitech QuickCam or something else using the gspca driver, see this answer for video4linux 1 compatibility. Note: requires building and installing software from scratch :-(

Additional software

This software is not supported by Ubuntu, and is not available in the repositories.

Camera Monitor shows a tray icon letting you know when your webcam is on.

Recording video

MPlayer / MEncoder

MPlayer is capable of displaying a webcam video stream, for example with the command line

mplayer tv:// -tv driver=v4l:width=640:height=480:device=/dev/video0

The resolution (width=??? & height=??? ) should be chosen to match the output of your device, and the device file (/dev/video0) to match your webcam's device file, see above.

The companion to MPlayer, MEncoder can record from a webcam to video files such as AVI, for example without audio:

mencoder tv:// -tv driver=v4l:width=320:height=240:device=/dev/video0 -ovc lavc -o webcam.avi

and with audio

mencoder tv:// -tv driver=v4l:width=320:height=240:device=/dev/video0:forceaudio:adevice=/dev/dsp1 -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o webcam.avi

Type 'man mencoder' for more info on the audio options. In the example, /dev/dsp1 refers to the webcam USB Audio device, while /dev/dsp would refer to the sound card.

You may need to install these programs with

sudo apt-get install mplayer mencoder

VLC

In VLC, choose 'Open capture device' from the file menu and enter the video and audio device files (see above) in video device name and audio device name, respectively. If you just want a 'mirror' (to see what the webcam is showing), click 'OK' and you're done. If you wish to record, tick off 'Stream/save' in the 'Advanced options' section. Click the settings button right next to it. Tick 'File' off under 'Outputs' and enter a filename. Encapsulation method can be left at the default (MPEG TS). Under 'Transcoding options', tick 'Audio codec' and 'Video codec'. These can also safely be left the defaults (obviously greater compression results in lower file sizes, so experiment). Click 'OK' in the Settings screen and once again in the main webcam screen (Video4linux). If you want to have more control, you can access several settings, including resolution, by clicking the Advanced options button.

If you wish to be able to quickly start a video session with your webcam, the resulting vlc command is printed in the Customize line at the bottom. You simply need to prepend 'vlc', e.g.

vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=640 :v4l-height=480 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100

The recording instructions will similarly need to be appended. Copy the contents of the 'Stream Output MRL' box under 'Settings' and change ":sout=" to "--sout " and append it to your vlc command:, e.g.

vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=640 :v4l-height=480 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout "#transcode{vcodec=mp1v,vb=1024,scale=1,acodec=mpga,ab=192,channels=2}:duplicate{dst=std{access=file,mux=mpeg1,dst=/tmp/test.mpg}}"

To simple take a few snapshots, open the webcam without recording and choose 'Snapshot' under the 'Video' menu.

Manual installation instructions

Installing spca5xx manually

You can find howto's for manual installation of the spca5xx driver here.

Installing ov51x manually

You can find howto's for manual installation of the ov51x driver here.

Installing ov51x-jpeg manually

This is a hacked driver by http://www.rastageeks.org/ and more info is available at http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page Suported hardware http://www.rastageeks.org/ov51x-jpeg/index.php/Working_Webcams

(July 16 2008) Currently the source package for ov51x-jpeg doesn't compile, but you can use this howto to get it running.

Installing UVC manually

The UVC module is included in 7.10 and later, and possibly earlier but the included version has problems with some webcams. If you need to install/update it you can find a howto here

Intrepid/Updated Hardy current issues with webcams

With Intrepid and Hardy fully updated, several issues were presented with previously working webcams. The root causes for this issues were several webcam modules merged into the kernel from 2.6.26 and 2.6.27, libv4l modifications, gstreamer modifications and changes in Ubuntu's kernel.

Almost all the issues present at this time (14/12/08) are detected with corresponding bug reports, some of them are solved, and some others are in the process of getting them solved.

We are working hard to uncover and solve the remaining issues, so please bear with us in the meantime.

I'm listing here the issues organized by kernel module. So you've got to check which module your camera uses in order to check for the workaround or corresponding report.

ubuntuforums.org

0 comments:

Post a Comment