Webcam UVC V4L2 con Mozilla Firefox e plugin Flash grazie a Flashcam

hamen's picture

Quando ho comprato il portatile, una delle cose che piu' mi e' piaciuta e' stata la webcam integrata. E' una webcam V4L2 e funziona con i driver UVC (link). Purtroppo e' impossibile usare le webcam V4L2 con il plugin Flash di Adobe. Sono preclusi tutti quei servizi di streaming e/o recording online, tipo Youtube e Ustream.tv.

Fortunatamente la community GNU/Linux e' sempre molto attiva e ha trovato una soluzione, in attesa che Adobe migliori il suo Flash. Il progetto in questione e' The Flashcam Project. Nel pratico, e' un wrapper per il device video V4L2. Crea una interfaccia di loopback V4L1 che Flash riesce ad usare. Per i meno pratici con l'inglese, riporto i semplici passi per la compilazione da sorgenti. Purtroppo al momento mancano i pacchetti .deb per Ubuntu/Debian.

Requisiti

  • Kernel 2.6.11
  • Kernel headers
  • Kernel compilato con l'opzione CONFIG_VIDEO_V4L1_COMPAT
  • I soliti gcc, make, etc
  • Una webcam UVC V4L2 installata e funzionante

Installazione

Posizionatevi in una directory e scaricate i sorgenti:

    
      wget http://www.swift-tools.net/Flashcam/flashcam-1.1.tgz
    
  

Scompattate e compilate:

    
      tar xvf flashcam-1.1.tgz 
      cd flashcam-1.1
      make
    
  

Installate il tutto eseguendo come root:

    
      make install
    
  

Configurazione

Eseguite come root:

    
      flashcam -L
    
  

Riceverete come output qualcosa del genere:

    Scanning devices
    ------
    Found V4L2 Capture device: /dev/video0 (uvcvideo/Vega USB 2.0 Camera.)
    Found V4L Video loopback input: /dev/video2
    ------
    Executing: 'modprobe vloopback pipes=2' 
  

Assicuratevi che i permessi sul device siano OK:

    
      chmod o+rw /dev/video* 
    
  

Proviamolo

Eseguite:

    
      flashcam
      flashcamwrap firefox
    
  

Provate ad accedere ad un sito che consente lo stream da webcam, usando Flash, i.e. Youtube o Ustream.tv. Come sorgente video avrete una Video Loopback 0 adesso :-)

Ultimi ritocchi

Per facilitare l'uso di flashcam, durante la sua installazione vengono creati degli alias per lanciarlo in automatico prima di specifiche applicazioni. Potrete vederne una lista con:

    
      ls -l /usr/local/flashcam/bin/
    
  

Per rendere il tutto operativo, dovete modificare il vostro file ~/.bashrc ed aggiungere all'inizio del file:

    
      PATH=/usr/local/flashcam/bin:$PATH
    
  

Esuguite logout e login. Per avere i moduli caricati all'avvio, potete aggiungere ai vostri script di avvio anche /etc/init.d/fcinit. Per lanciare flashcam vi bastastera':

    
      flashcam -qD
    
  

In questo modo funzionera' in background, come un demone. Dovete ricordare di lanciarlo prima di lanciare l'applicazione che sfruttera' la webcam. Per aggiungere altre applicazioni alla lista di quelle che sfruttano flashcam, vi basta aggiungere un link. Eseguite come root:

    
      ln -s /usr/local/bin/flashcamwrap myApp
    
  

Controllate, come prima, la lista con:

    
      ls -l /usr/local/flashcam/bin
    
  

Quando volete smettere di usare flashcam, semplicemente killate il processo:

    
      killall flashcam
    
  
    Enjoy,
    Ivan "hamen" Morgillo
  

Comments

kyangel's picture

Ottimo how-to

Grande hamen!
Proprio stamattina ho installato i driver della web cam con EasyCam2 e alcuni tool quali camorama e camstream per verificarne il corretto funzionamento, ma devo dire che mi mancava proprio la possibilità di avere la cam-in-streaming...ora provvederò subito: make&&make install :) !!!!
Ottima guida!

Hack your brain ---> Improve your skills !

dafi's picture

Io c'ero :P

Questa e' una informazione utilissima, finalmente eliminiamo l'antipatico gap rispetto agli utenti degli altri OS, certo se mamma Adobe si decidesse a rendere open anche il codice di Flash le cose sarebbero piu' semplici.

PS
Ho assistito alla prova di hamen in "diretta" (mai termine fu piu' appropriato :P )

Post new comment

Captcha
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Syndicate content