Video della webcam verde con Skype per Linux su Ubuntu

Aggiornamento: guida ancora valida per Ubuntu 9.04, Jaunty Jackalope e Ubuntu 9.10 Karmic Koala.

Scenario

La mia compagna è partita per uno stage e per mantenerci in contatto utilizziamo entrambi Skype.

Purtroppo, sin dal primo tentativo di effettuare una videochiamata, la mia webcam mostrava una laconica schermata verde. Questo ovviamente faceva adirare non poco la mia ragazza impossibilitata dal vedermi, maledicendo ogni forma di Linux. Che poi, dico io, come si fa a non amarlo il pinguino anche se ti fa arrabbiare!

skype_video_verde

Bestemmie a parte, ho tentato di vederci chiaro e sono arrivato alla radice del problema trovando una soluzione che mi permettesse di non essere lasciato in tronco.

Inoltre sarebbe stato difficile spiegare agli amici di essere stato abbandonato a causa di un bug di Ubuntu, anche se con una storia del genere finirei sicuramente in homepage su Digg

Il bandolo della matassa

In realtà tutto è ricollegato al modo in cui è cambiata la gestione delle webcam con il kernel fornito in Ubuntu Intrepid, esattamente il 2.6.27.

Come spiega Hans de Goede sul suo blog, la maggior parte delle cam supportate dal nuovo driver gspca usano una compressione per i dati basata su una varietà di algoritmi proprietari, che nessuna applicazione nativamente sa come gestire. Il vecchio driver risolveva il problema operando una conversione di formato all’interno del kernel, ma questa caratteristica è stata rimossa nella nuova versione in quanto ritenuta una soluzione potenzialmente pericolosa e non elegante.

Lo stesso Hans dunque si è rimboccato le maniche partorendo libv4l che ristabilisce l’ordine naturale delle cose.

Come fare

Purtroppo il pacchetto distribuito sul sito ufficiale di skype non è stato patchato per usare tale libreria, per cui è necessario un workaround al fine di evitare che gli utilizzatori di Linux sparsi per tutto il mondo rimangano tristemente single.

Su Ubuntu Intrepid è necessario innanzitutto installare, se già non presente, libv4l o lib32v4l ( amd64) e assicurarsi di aver prima rimosso qualsiasi precedente versione.

Il repository di Stéphane Marguet contiene una versione fresca fresca di impacchettazione, per tutte le altre distribuzioni rivolgersi al proprio spacciatore di pacchetti di fiducia o compilare da sorgente.

Il consiglio è quello di aggiungere il repository, installare o aggiornare solo libv4l e poi commentare la riga corrispondente nel sources.list per evitare che vengano coinvolti altri pacchetti nell’aggiornamento. Non inserisco il link diretto perché il software è in continua evoluzione.

Adesso è necessario procurarsi skype dai repository Medibuntu, che stando a quanto recita il changelog integra l’hack necessario al corretto funzionamento della webcam

skype (2.0.0.72-0medibuntu4) intrepid; urgency=low

* Add a hack for libv4l (LP: #260918):
- debian/skype.wrapper.in, debian/rules: rename the orig skype binary and
add a wrapper to call it with LD_PRELOAD
- debian/control: depends on lib32v4l-0 [amd64], libv4l-0 [!amd64].

-- Lionel Le Folgoc <mrpouit@ubuntu.com> Fri, 17 Oct 2008 20:25:47 +0200

ed il gioco è fatto!

L’alternativa

Se non doveste aver successo, disinstallate questa versione e installate quella del sito ufficiale e provate a far partire il programma con la seguente sintassi

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

verificando poi il funzionamento della webcam. Se tutto è andato a buon fine, allora possiamo creare un piccolo script che ci permetta di evitare di scrivere manualmente la stringa di cui sopra.

I comandi da lanciare in sequenza sono

cd /usr/bin

sudo mv skype skype.real

gksudo gedit skype

Si aprirà la finestra di Gedit, all’interno della quale dovremo incollare

#!/bin/sh

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype.real "$@"

Salviamo e rendiamo eseguibile il tutto

sudo chmod +x skype

testiamo il tutto ancora una volta, stavolta usando il normale collegamento nel menu.

L’ho scampata bella

Adesso con la mia compagna va tutto liscio, niente più litigi e la qualità della vita è migliorata sensibilmente.

skype_funziona

Per caso qualcuno ha anche una patch per sistemare i grossi bachi presenti nel sistema chiamato donna?

FFmpeg con tutti i codec abilitati su Ubuntu 8.10

Problema nella conversione di un video flv scaricato da Youtube in mp3. Stop.

Il laconico errore restituitomi recita

Unsupported codec for output stream #0.1

Ffmpeg sembra non esser compilato con tutti i codec abilitati su Ubuntu Intrepid 8.10. Stop.

Serve installazione nuova versione. Stop.

Compilare da sorgente mi secca parecchio. Stop.

Trovato repository con backport da Ubuntu Jaunty 9.04 per FFmpeg e codec necessari. Stop.

ATTENZIONE: Possibili incompatibilità potrebbero nascere con alcune applicazioni che dipendono da FFmpeg e sue librerie. Provare per credere, uomo avvisato mezzo salvato. Stop.

Il repository è

deb http://ppa.launchpad.net/tim-kornhammar/ubuntu intrepid main

Aggiornati tutti i pacchetti relativi ai codec e per esser sicuro di non dimenticare nulla lancio

sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0 libavfilter-unstripped-0 libavformat-unstripped-52 libx264-65

Controllo opzioni di compilazione

ffmpeg -formats

Adesso funziona. Stop.

P.s. Post telegrafico, nel vero senso della parola! Mi viene da pensare che son meglio così gli articoli che non con lo stile che uso di solito :O

Tab Mix Plus e Ubufox non vanno d’accordo su Intrepid Ibex

Ieri ho finalmente trovato un po’ di tempo per installare Intrepid Ibex.

Chi mi conosce sa che non effettuo mai l’aggiornamento diretto da una versione all’altra, ma preferisco creare un backup dei file necessari ed installare da zero la nuova distribuzione per evitare confitti tra pacchetti,  soprattutto perché la mia è una Ubuntu fortemente rimaneggiata da innumerevoli esperimenti.

Nel lavoro di ricopiatura dei dati, ripristinando le estensioni di Firefox sulla nuova 8.10, mi sono accorto che qualcosa non andava.

La toolbar smemorata

Infatti i bottoni della barra di navigazione si comportavano in modo strano, non memorizzavano le modifiche effettuate alla barra stessa ed anche i pulsanti necessari per l’accesso ad altre estensioni erano scomparsi.

Per me, il fastidio più grande per me era dato dall’impossibilità di aggiungere il classico bottone Nuova Scheda e i pulsanti dedicati ad altri addon, che al riavvio del browser puntualmente venivano eliminati.

Two cans of Tab.
Tab Mix Plus non è il nome di una bevanda energetica

Incompatibili

Disattivando una ad una le estensioni fino ad allora installate, ho infine scoperto la causa del malfunzionamento.

In effetti su Intrepid esiste una cronica incompatibilità tra Tab Mix Plus e Ubufox che causa il problema sopra descritto ( in Hardy ciò non accadeva ), escludendo di fatto l’uso contemporaneo dei due addon ed imponendo all’utente la scelta tra i due.

Quale scelgo?

Per chi non ne fosse a conoscenza, Tab Mix Plus è una popolare estensione che permette una gestione avanzata dei tab ed integra il salvataggio intelligente delle ultime sessioni di navigazione; il pacchetto ubufox, che nel pannello dei componenti aggiuntivi di Firefox prende il nome di Firefox Ubuntu Modifications, consente invece di installare plugin e alcune estensioni tramite apt, semplificandone la ricerca e l’installazione.

Io ho deciso di mantenere Tab Mix plus e disattivare l’altra estensione, me la caverò anche senza che Ubuntu mi imbocchi pure l’installazione dei plugin di Firefox, in attesa che l’inconveniente venga risolto.

Crediti immagine: Wikipedia