Uploaded to TWiki first time by KennethLavrsen
The video4linux device is a driver that implements a video pipe using two video4linux devices
Jeroen Vreeken wrote this driver for debugging motion realtime, which worked very nice and he decided to make something usefull of it. You can use this driver for looking at motion in realtime or for feeding a webcam while still securing your room.
Note also that vloopback output can be used by several applications at the same time (see below)
The video4linux device is no longer actively being maintained. But since there is still some demand for it and still some people that make small patches for it the new Motion maintainers decided to gather these patches in a new release. If you need support do not ask the current motion maintainers. Instead join the motion mailing list where there is a reasonable chance to find help.
- invert (an example in the vloopback driver package itself)
- The example program dc1394_vloopback of libdc1394
- The IEEE1394 IIDC camera GUI 'Coriander'
- setv4l (Jeroen's program for changing the settings of a video device)
- vidcat (part of the w3cam package)
- camstream (a nice video viewer).
- Xawtv also works, but you might have to tell it the size e.g. 'xawtv -c /dev/videoN -geometry 176x144'.
- EffecTV An amazing real-time video effector.
- Motion (feeding a second motion process the output of the first gives neat effects)
1) A simple example (all applications use the same resolution) Do "modproble vloopback" then "resize /dev/video0 /dev/video1 320x240 320x240". Now, you can run as many webcam applications as you want with input as /dev/video2 (however you might have to tell your application the picture size, see below).
Of course, you may think resizing the scale from 320x240 to the same size is silly. Yes, it is, you can edit the source of invert.c (it suffices to remove one sign) to write a program that simply sends the stream from /dev/video0 to /dev/video1 if you prefer.
2) A more complicated example (applications using different resolutions) Do "modprobe vloopback pipes=2". Then "resize /dev/video0 /dev/video1 640x480 640x480 & resize /dev/video2 /dev/video3 640x480 320x240". (Assuming that you have only one real video device at /dev/video0. You can check with dmesg).
Now, you can watch your webcam with camstream at 640x480 (choose the device called vloopback0 output in camstream's menu, which is /dev/video2), at the sime time you can record a video of your webcam stream at 320x240 by doing "ffmpeg -vd /dev/video4 -s 320x240 picture.mpeg", you can at the same time run a webcam http server by running "camsource" (after editting camsource.conf to choose /dev/video2 or /dev/video4 as v4l_input source).
N.B. You can't use camorama with vloopback, as far as I know, camorama looks for inputs from /dev/video0. You should also not open two "view"s in the same instance of camstream. However, opening multiple instances of camsource doesn't cause a problem.
Attached are the recent versions of the vloopback.
- svn trunk for kernel version >= 2.6.32
- vloopback-1.3.tar.gz : New stable version tested with stable version 2.6.31
- vloopback-1.2.tar.gz : New stable version tested with stable version 2.6.28
- vloopback-1.1.tar.gz : New stable version tested with stable version 2.6.24
- vloopback-1.0.tar.gz : old stable version with some more fixes and allow build a kernel module in debian way and fixes problems to compile in Suse. If you want to make it work with motion , use motion-3.2.6 or above. stable for kernel <= 2.6.17
- vloopback-0.92-snap1.tar.gz: Snaphot release for testing (this is the last version ever to be released for kernel 2.4 and is the 0.91 version with a redhat kernel 2.4.20 fix)
- vloopback-0.91.tar.gz: Last official release for kernel 2.4. Does not build on 2.6 kernels
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: