Wie verwende ich Skype 2.0 beta für Linux zusammen mit der Creative Live! Cam Optia (unter Ubuntu Linux 7.10)?

Die (bis auf die Packaging-Version) neuesten Betas sind in den medibuntu-Archiven verfügbar. Alternativ Download (z.B. als .deb für Ubuntu) von http://www.skype.com/go/downloading-beta (hier: 2.0.0.43-1 vom 2008-02-06).

Man starte Skype über eine Konsole um Fehlermeldungen zu erhalten. Wenn man »Test« in »Video Devices« im Optionen-Dialog öffnet erscheint die Fehlermeldung:

Skype V4L2: Could not find a suitable capture format
Skype V4L2: Could not find a suitable capture format

Das Problem wird angesprochen in http://forum.skype.com/lofiversion/index.php/t108901.html (aber ohne Lösung).

Keine weiteren Hinweise in dmesg.

Keine Änderung durch Umbenennen / Löschen des Ordners ~/.Skype . Das war (bezogen auf die letztendliche Lösung) auch unnötig.

Als Systemvoraussetzung wird genannt: »Video card driver with Xv support.«. Ob das vorhanden ist kann geprüft werden entspr. Abschnitt »Graphics Cards XV Skype and gstfakevideo« in https://wiki.ubuntu.com/SkypeWebCams .

Unter https://wiki.ubuntu.com/SkypeWebCams steht dass die Kamera mit Skype funktioniert nachdem man manuell die neueste Version des UVC-Treibers installiert hat. Anleitung dazu: https://help.ubuntu.com/community/UVC

Das erbrachte jedoch keine Verbesserung (SVN-Sources vom 2008-02-26). Es wurde jedoch das neu kompilierte Modul geladen (festgestellt durch »modprobe -v uvcvideo«).

Eine weitere Möglichkeit ist gstfakevideo (ein Script das eine GStreamer-Videoquelle zu Skype umlenkt).
Installation nach http://ubuntuforums.org/showthread.php?p=3856516#post3856516/ (aber checkinstall verwenden).
Dokumentation der ersten Version (noch unter dem Namen sype_video_hijacker) unter: http://forum.skype.com/index.php?showtopic=102838

Achtung: vor dem Start von gstfakevideo stets das Webcam-Device umbenennen, sonst startet Sykpe nicht:

mv /dev/video0 /dev/video1

Grund: »In above example device is important – at present skype_video_hijacker simulates only /dev/video0
(from unknown reason other devices are recognized by skype, but don’t work), so camera device must use other device file (than /dev/video0)« ( http://forum.skype.com/index.php?showtopic=102838&pid=468134&mode=threaded&show=&st=&#entry468134 ).
Erster Test mit:

gstfakevideo videotestsrc is-live=true

oder

gstfakevideo videotestsrc

Das sollte in Skype (Optionen -> Video Devices -> Test ) für gstfakevideo als Videoquelle ein Testbild erzeugen. Letzte Ausgabe war dabei:

Starting the process...
Skype Xv: Xv ports available: 1
Skype XShm: XShm support enabled
Skype Xv: Using Xv port 64

Auch funktionieren sollte (bei ggf. nicht ganz korrekter Vorschau):

gstfakevideo filesrc location=bild.jpg ! jpegdec ! videoscale ! ffmpegcolorspace

Nun muss nur noch die Webcam korrekt in einen GStreamer-Stream eingebaut werden. Problem bei:

gst-launch v4l2src device=/dev/video1 ! autovideosink
gst-launch v4l2src device=/dev/video1 ! ximagesink
gst-launch v4l2src device=/dev/video1 ! xvimagesink

jeweils:

Pausiere Leitung ...
FEHLER: Leitung möchte nicht pausiert werden.
FEHLER: Von Element /pipeline0/v4l2src0: Could not negotiate format
Zusätzliche Debugginginformation:
gstbasesrc.c(2062): gst_base_src_start (): /pipeline0/v4l2src0:
Check your filtered caps, if any
Setze Pipeline auf NULL...
BEREINIGE Pipeline...

Es funktioniert jedoch, mit folgendem Befehl ein AVI-Video in 640×480 aufzunehmen (mit sporadischen nicht vorhersagbaren Abbrüchen):

gst-launch-0.10 -v -t -m v4l2src device=/dev/video1 ! avimux ! filesink location=~/Desktop/record-352x288x10-yuv.avi

Auch funktioniert:

gst-launch v4l2src device=/dev/video1 ! avimux ! filesink location=video.01.avi

Auch funktioniert:

gst-launch v4l2src device=/dev/video1 ! filesink location=video.01.avi

Das ergibt nach »file«:

JPEG image data, JFIF standard 1.02, baseline, precision 0, 4360x480

Also verwende man den JPEG Decoder um ein Live-Video zu erhalten:

gst-launch v4l2src device=/dev/video1 ! jpegdec ! autovideosink

Man kann auch beliebige andere Elemente (Spezialeffekte, Skalierungen usw.) in die Pipeline einbauen:

gst-launch v4l2src device=/dev/video1 ! jpegdec ! videoscale ! ffmpegcolorspace ! autovideosink
gst-launch v4l2src device=/dev/video1 ! jpegdec ! videoscale ! ffmpegcolorspace ! vertigotv ! ffmpegcolorspace ! autovideosink
gst-launch v4l2src device=/dev/video1 ! jpegdec ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! autovideosink

Weitere Effekte siehe »gst-inspect | grep effectv«.
Beispiel für eine Dokumentation zu einem Plugin:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-videocrop.html

Also erhält man Video in Skype mit:

gstfakevideo v4l2src device=/dev/video1 ! jpegdec ! videoscale ! ffmpegcolorspace

Plugin »ffmpegcolorspace« ist notwendig um Skype-kompatibles Videoformat zu erhalten.
Dabei wird »gst.c bus_callback (105): Error: Interner Fehler im Datanfluss« ausgegeben, was aber nicht fatal ist. Die Vorschau funktioniert noch nicht korrekt, zeigt aber erkennbare Gegenstände
(enthält aber Zeilenverschiebungen in jeder zweiten Zeile). Es kann aber sein dass Video Calls trotzdem korrekt funktionieren. Wenn nicht so hilft es, eine Hälfte des Bildes zu verdunkeln bzw. dies mit Effekt-Plugins automatisch machen zu lassen.


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.