This page explains
how to use FireWire cameras with
Linux and
- the ffmpeg
video encoding and live streaming application,
which can send live stream viewable by Windows Media Player and
RealPlayer, and
- the
GnomeMeeting and
the
ohphone
Internet video phone applications,
which are similar to and compatible with
Microsoft NetMeeting.
News
- Capturing program for ffmpeg was significantly extended (Oct. 25, 2003.)
- Complete rewrite of the web page. Now explains DV camcorders too.
- You can use a FireWire camera as a Video4Linux device!
There are two types of FireWire video cameras
One is called DV camcorder, which usually has
recording tape or disk inside, and another
is called digital camera, which has no storage device inside.
They use totally different software interface
and you have to choose appropriate library (software interface)
to use your camera.
Gnomemeeting
I will explain how to compile Gnomemeeting for using your
FireWire camera.
You have to install
for DV camcorder, and
for digital camera.
Gnomemeeting requires PWLib.
So I explain compilation of PWLib.
Compilation of PWLib
Add --enable-firewireavc for DV camcorder or
--enable-firewiredc to configure,
then run make.
This explanation applies to PWLib 1.5.2.
Compilation of Gnomemeeting
Set environment variables CXX="g++ -DTRY_1394AVC"
LIBS="-lraw1394 -lavc1394 -lrom1394 -ldv" for
DV camcorder and
CXX="g++ -DTRY_1394DC" LIBS="-lraw1394 -ldc1394_control"
for digital camera before running configure.
This compilation method applies to Gnomemeeting 0.98.5.
How to use your camera
After starting Gnomemeeting,
select video device in the preference menu appropriately.
Ohphone
Ohphone is another video conference program.
To use your camera with ohphone,
compile PWLib as above.
Then compile ohphone with -DTRY_1394AVC
-lraw1394 -lavc1394 -lrom1394 -ldv for DV camcorder,
and with -DTRY_1394DC
-lraw1394 -ldc1394_control for digital camera.
Use --videodevice option to specify
the device filename of the camera.
FFmpeg
DV camcorder
You can use you camcorder just adding -dv1394.
Digital camera
ffmpeg cannot capture images directly
from a FireWire camera. So we need a program that captures
images from a FireWire camera and feeds them into ffmpeg.
I made such a small program here.
This program outputs images to standard output in the ffmpeg "rawvideo"
format. This can be used as follows:
dc1394-ffmpeg -d /dev/video1394/0 -r 30 -s 320x240 -c 150 | ffmpeg -r 30 -s 320x240 -f rawvideo -i pipe: /tmp/test.mpg
Then you get an MPEG movie in /tmp/test.mpg.
Full usage of dc1394-ffmpeg can be found by running it
without options.
Once you succeeded in realtime encoding by ffmpeg,
you can distribute live stream by
ffserver -f doc/ffserver.conf &
dc1394-ffmpeg -d /dev/video1394/0 -r 30 -s 320x240 |
ffmpeg -r 30 -s 320x240 -f rawvideo -i pipe:
-f audio_device -i /dev/dsp
http://localhost:8090/feed1.ffm
Note that "-f audio_device -i /dev/dsp" is added.
The example configuration of ffserver requires audio
stream. If you don't have audio input,
edit ffserver.conf and remove "-f audio_device -i /dev/dsp".
Video4Linux device
I am told that
Coriander can make a digital camera look like a Video4Linux
device, and make the camera usable with GnomeMeeting.
FFmpeg, GnomeMeeting, and ohphone supports
Video4Linux devices, and you can use
a digital camera as a usual Video4Linux device.
Ryutaroh Matsumoto <
>