Style Cleanup Required

This article does not follow the style standards in the Wiki Guide. More info...

Needs Updating

This article needs updating to include the latest versions of Ubuntu. More info...

Introduction

This document describes how to choose, setup and use a webcam in Ubuntu. If you are reading this page, you are probably in either/both of the following situations:

Looking for information on which webcam to buy. Trying to setup and use your existing webcam.

Please note that this document is intended for the current release: Ubuntu 10.10 (Maverick Meerkat).

1. Choosing a Webcam

Webcam support in Linux is mainly provided by the Linux UVC Project's UVC driver. This aims to provide a universal driver in the same way that a generic driver handles USB storage devices (memory sticks, hard drives etc). However, other drivers also exist that may allow more devices to be used. 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.

2. Testing Your Webcam Using Cheese

Ubuntu aims to provide 'out-of-the-box' or 'just-works' functionality for webcams. This means that you should be able to plug-in your webcam and use it straight away: no driver disks or installation. To test whether or not your webcam works in this way, install Cheese, a GNOME program for capturing video and stills from a webcam. It can also apply some special effects. Cheese is included in the Main repositories since Ubuntu 8.04 LTS (Hardy Heron). It uses the gstreamer library, which utlilizes the video4linux2 API.

Download and install Cheese using the following steps:

Open a terminal window. Type in the following command: sudo apt-get install cheese Run Cheese. Cheese should automatically detect your webcam and display live video stream. To record video or take a snapshot, click either on photo or video and select Take a Photo or Start recording. If Cheese doesn't display the output from your webcam, test that the problem is not with Cheese before trying anything else by using one of the programs in the next section.

If Cheese displays a garbled picture or one with poor colour/brightness/contrast, go to the Ubuntu wiki Webcam Troubleshooting page for steps to resolve this.

3. Webcam Software

This is a list of software that allows you to do a simple 'plug-in-and-go' test with your webcam. You should try one of these programs if Cheese didn't display anything at all to make sure that Cheese is not causing the problem.

Empathy has been the default VoIP/Video Chat application since Ubuntu 9.10 (Karmic Koala), and can be used to establish whether or not your webcam is working.

3.1. Configuring Webcam Software

In some cases your media player (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 commands 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). If nothing new appears, you may need to switch your webcam on. For a built-in webcam, you may have a function key to do so.

3.2. VLC

3.2.1. Using the GUI

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.

3.2.2. Using the Command Line

A simple test of just the video from your webcam can be done as follows. This assumes the webcam is installed as '/dev/video0'.

$ vlc v4l2:///dev/video0

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 v4l2:// :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 v4l2:// :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.

3.3. FFmpeg

FFmpeg is a cross-platform audio/video recording, conversion and streaming application.

3.3.1. Recording Video

To record both video and audio using FFmpeg, first make sure it is installed: sudo apt-get install ffmpeg Run ffmpeg with arguments such as these: ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

With recent versions of Ubuntu (>= 12.10) you should use avconv instead of ffmpeg command:

avconv -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

3.4. MPlayer

MPlayer is capable of displaying a webcam video stream,

3.4.1. Recording Video

To record video from the command line:

Open a terminal window and type the following: mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 This example assumes that your webcam device is at /dev/video0

The resolution ( width=??? & height=??? ) should be chosen to match the output of your device.

3.5. MEncoder

The companion to MPlayer, MEncoder can record from a webcam to video files.

3.5.1. Recording Video

Recording AVI, without audio: mencoder tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0 -ovc lavc -o webcam.avi Recording AVI, with audio: mencoder tv:// -tv driver=v4l2: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.

/dev/dsp1 refers to the webcam USB Audio device.

/dev/dsp refers to the sound card.

You may need to install these programs with

sudo apt-get install mplayer mencoder

Camera Monitor from chaos infinito shows a tray icon that lets you know when your webcam is on. It has been in the Universe repository since Ubuntu 10.10 (Maverick Meerkat) and is released under the GPL.

luvcview is a good program you can use to test that the camera is working. It has been in the Universe repository since Ubuntu 8.04 LTS (Hardy Heron). If it doesn't work, you may need to update the UVC driver (see Manual install instructions below).

guvcview is based on luvcview and has a graphical user interface. It has been in the Universe repositories since Ubuntu 9.10 (Karmic Koala).

Camorama (not updated since 2007), xawtv, aMSN, and Kopete can all be used to test and use your webcam. They have been in the Universe repositories since Ubuntu 6.06 LTS (Dapper Drake) apart from Kopete, which is in the main repositories.

3.6. Skype

See the dedicated Skype and SkypeWebCams pages.

3.7. streamer

The streamer package provides a very simple command line interface for taking pictures:

streamer -f jpeg -o /path/to/image.jpeg

The package can be installed as follows:

sudo apt-get install streamer

4. Identifying Your Webcam

Although webcams may look quite different from one another, they often share similar or identical major components. This means that drivers may work for many different makes and models with little or no modification.

To definitively identify your webcam, the following information will be of use:

Make and Model Name/Number. Any version or revision information. This is often printed on the device or its packaging and will read something similar to REV 01 or VER. 2.2 . This information can be particularly useful. The output of the lsusb . Type lsusb -v into a terminal window. This program prints information about the devices connected to the USB bus. If you scroll through it, you should find some information about your webcam. Type lsusb -n into a terminal window. This version of the command lists the device's USB ID; a number that is unique to every device.

5. Driver installation

Linux Webcam drivers are provided by several different projects. Although the Linux UVC project covers many devices, support for others is provided elsewhere. This section aims to help you install your webcam's drivers if they have not been automatically installed by Ubuntu.

If the drivers for your webcam haven't been loaded automatically by Ubuntu, you may have to install them manually.

ov51x - The Ubuntu wiki page is here.

ov51x-jpeg - This is a hacked driver by http://www.rastageeks.org/ and more info is available here. Suported Hardware - A list of webcams supported by the rastageeks driver.



6. See Also

CategoryHardware CategoryCommandLine