Firewire camera

From LinuxMCE
Revision as of 15:28, 10 December 2006 by Wikiadmin (Talk | contribs) (spelling corrections and need for clarification)

Jump to: navigation, search
This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.


  1. Go to the device tree
  2. Select the computer that the camera is connected to in the device tree
  3. Click "Create Child Device" to create a child device under the computer.
  4. "Pick Device Template"
    1. Select the Interfaces/Specialized (#97) device category
    2. Select the "Firewire Camera to V4L Pipe" device template and click "Add Device"
  5. Repeat steps 2 through 4
    1. Select the Interfaces/Surveillance Video Interfaces (#111)
    2. Select the "Motion Wrapper" and "Add Device". At this point the "Motion Wrapper" is selected in the device tree. If it's not, select it.
  6. "Create Child Device" under the "Motion Wrapper"
  7. Pick Device Template "Generic Analog Camera"
  8. Type "31" in the "#1 Device" Device Data field.
  9. Reboot the machine with the Firewire camera for it to install the software.
  10. Regen the Orbiter so it shows the "Generic Analog Camera"
  11. Push the button. I know you want to :) At this point you should see pictures from the camera.


Where did that 31 come from... and what other fields have to be changed and how when adding a second camera.

Firewire cameras are not V4L-capable so a translation needs to take place. We do it by means of vloopback which prives(what is this word supposed to be) V4L pipes and a program that reads from the Firewire camera and feeds pictures into one end of a V4L pipe. We started device numbers from 30 in the case of vloopback.

Interesting DeviceData entries for the "Firewire Camera to V4L Pipe":

  • Device (#1): the number X at the end of /dev/video1394-X where the camera provides its video data. First camera is 0, second camera is 1, and so on.
  • Port/Channel Number (#12): The vloopback pipe associated with this camera. Usually you'd write the same number you wrote in the "Device" field above to reduce the chances of double allocation of the same pipe
  • Width (#148) and Height (#149): If your camera displays weird images, but which seem to have a base in the real picture, the capturing resolution may not match the camera and you have to specify the correct capture resolution here. This resolution is camera-dependent.

Interesting DeviceData entries for the "Generic Analog Camera":

  • Device (#1): The output end of a vloopback pipe where V4L video data is to be taken from. Since pipes come in pairs (one input/feed end, one output end) and their numbers start with 30, the first camera reads its pictures from /dev/video31 (pipe 0, /dev/video30 is the pipe feeding end), the second from /dev/video33 (pipe 1), the third from /dev/video35 (pipe 2) and so on. (Formula: 30 + 2 * pipe_number + 1 [that is: 2 * pipe_number + 31], where pipe_number is the pipe number you typed in the associated "Firewire Camera to V4L Pipe"'s "Port/Channel Number (#12)" field).

This procedure is not settled yet, and it's prone to change without notice, but it works like that for now.