>> canoncam

In English - In Italiano

Usare una fotocamera digitale Canon come webcam

Ecco una patch a "capture" per usare una fotocamera digitale Canon (io ho una PowerShot A85) come una vera webcam mediante v4l. Il codice funziona su linux ma forse la stessa idea può essere usata su altri sistemi operativi che consentano l'uso di periferiche loopback per il video.

Per scaricare la patch vedere QUI, e seguire questa breve guida per provarla:

  1. Scaricare vloopback da QUI.
  2. Compilare vloopback: 'make' e caricare il modulo: 'insmod ./vloopback.ko'
  3. Controllare l'output di 'dmesg' per conoscere la periferica di input: nel mio caso video1 é la periferica di input e video2 quella di output.
  4. Prendere la versione CVS di capture seguendo le istruzioni date QUI. (usare "capture" come modulename)
  5. Appicare la patch: 'zcat capture_v4l.diff.gz | patch -p1'
  6. Controllare il define V4L_DEVNAME in video4linux.c e modificarlo per usare la periferica di input corretta.
  7. Compilare capture: 'make'
  8. Adesso si può eseguire capture: dare il comando 'start' e poi 'v4l on', da ora in poi sarà possibile usare la fotocamera Canon come una webcam usando la periferica di output di vloopback: ho fatto dei test con 'xawtv -c /dev/video2' e con gnomemeeting.

La qualità dell'immagine non é molto alta a causa della compressione jpeg, e la risoluzione é solo di 320x240, sarà una limitazione della fotocamera o di libptp2?

Qualcosa di rozzo nella patch:

  • Il dispositivo di input per vloopback é scritto NEL codice.
  • Quando si scrive sul dispositivo capture non accetta altri comandi.
  • Interrompere la scrittura sul dispositivo chiude il programma...

Alcuni dei commenti che ho avuto:

  • xawtv funziona alla grande.
  • Con gnomemeeting ci sono dei bordi neri attorno all'immagine.
  • mplayer e tvtime non riescono ad usare il dispositivo v4l.

Fatemi sapere che ne pensate.

Qualche riferimento:


Using a Canon digital camera as a webcam

Here is a patch to "capture" to use a Canon digital camera (I have a Powershot A85) as a real webcam via v4l. This code works under linux but maybe the same idea can be used on other Operating Systems that support loopback video devices.

You can get the patch HERE, and follow a little tutorial to test it:

  1. Get vloopback from HERE.
  2. Compile vloopback: 'make' and load the module: 'insmod ./vloopback.ko'
  3. Check 'dmesg' output to know what is the input device: I have video1 as the input device and video2 as the output device.
  4. Get current capture-cvs using the instructions given HERE. (use "capture" as modulename)
  5. Apply the patch: 'zcat capture_v4l.diff.gz | patch -p1'
  6. Check the V4L_DEVNAME define in video4linux.c and adjust it according to your vloopback input device.
  7. Compile capture: 'make'
  8. Now you can run capture: issue the 'start' command and then the 'v4l on' command, from now on you can use your Canon camera as a webcam using the vloopback output device: I made tests with 'xawtv -c /dev/video2' and with gnomemeeting.

The picture quality is not very high due to jpeg compression, and the resolution in only 320x240, is this a Camera limitation or a libptp2 limit?

Some rough points about the patch:

  • The input video device for vloopback is hardcoded.
  • When feeding no more commands are accepted.
  • Stopping the feeding process closes the program...

Some feedback:

  • xawtv works great.
  • In gnomemeeting thare are some black borders around the image.
  • mplayer and tvtime can't use the v4l device.

Please let me know any comment you have.

Some references: