• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Äquivalent für Splitcam?

Nabend,
ich habe folgendes Problem, ich suche ein Programm das im Grunde so funktioniert wie Splitcam für Windows. Splitcam erstellt im Grunde sowas wie eine virtuelle Webcam. Innerhalb des Programms kann ich dann einstellen was als "Videostream" gesendet werden soll, ein Video aus einer Videodatei, ein einfaches Bild oder aber die aktuelle Aufnahme meiner wirklichen Webcam. Nun wollte ich mal wissen ob es sowas auch für Linux gibt.

P.S. Ich hoffe ich hab's einigermaßen verständlich erklärt.
 

TomcatMJ

Guru
Hi!
Da gibts noch etwas weitaus mächtigeres unter Linux: Das Videoloopbackdevice Kernelmodul mit dem du per Piping etliche virtuelle Video4Linux Devices generieren kannst mit je einer Eingangspipe und einer Ausgangspipe.
Unter http://www.lavrsen.dk/twiki/bin/view/Motion/VideoFourLinuxLoopbackDevice sind die Sourcecodes für dieses Modul zu finden was man sich leider selbst kompilieren muss, aber damit kann man Quasi Ein+Ausgabeketten bilden bei denen Videodaten ans eine Ende gesendet werden udn aus dem anderen Ende herausgeholt und On-The-Fly weiterverarbeitet werden können um sie dann in die nächste Pipe zu senden. Jede dieser "Pipeausgänge" lässt sich wie ein x-beliebiges Video4Linux Deviice ansprechen udn somit in Messengern, Webcamtools wie Camstream oder auch Fernsehtools wie kdetv ansprechen. Die gängigen Player wie ffmpeg, mplayer oder xione können auch ihre Ausgaben auf ein Device umlenken und somit auch in eine solche Pipe. Das Tool effecTV zum Beispiel kann sogar sowohl in eine Pipe senden als auch auf den Bildschirm zugleich,könnte also dazu benutzt werden den Zwischenstatus anzusehen.

http://www.linux-club.de/viewtopic.php?f=27&t=102214 dürfte dich diesbezüglich dann wohl auch interessieren (morgen gibts dann noch mehr Infos in der Linupedia, da ich gleich los muss und daher jetzt nicht dazu komme da noch mehr reinzuposten für den Moment*g*)

Bis denne,
Tom
 
OP
S

Schlafmuetze

Member
Schaut schonmal interessant aus, aber gibt es dafür auch irgendwo 'ne gute deutsche Anleitung? Da ich da einiges noch nicht ganz nachvollziehen kann würde mir dies sehr helfen.
 
OP
S

Schlafmuetze

Member
Folgendes Problem tritt bei mir auf wenn ich den make-Befehl nutze
Code:
Generating dependencies, please wait...
In file included from motion.h:192,    
                 from motion.c:10:     
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,                                    
                 from conf.c:26:                                       
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from draw.c:13:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from jpegutils.c:31:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
jpegutils.c:35:20: error: jerror.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from rotate.h:14,
                 from video.c:12:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from video2.c:52:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from rotate.h:14,
                 from video_common.c:13:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from netcam.c:40:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from netcam_ftp.c:11:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from rotate.h:14,
                 from netcam_jpeg.c:15:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
netcam_jpeg.c:18:20: error: jerror.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from netcam_wget.c:26:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from track.c:11:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from alg.c:9:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from picture.h:13,
                 from event.c:13:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from picture.h:13,
                 from picture.c:11:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
picture.c:16:20: error: jerror.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from rotate.h:14,
                 from rotate.c:32:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from webhttpd.h:16,
                 from webhttpd.c:13:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
In file included from motion.h:192,
                 from picture.h:13,
                 from webcam.c:21:
netcam.h:19:21: error: jpeglib.h: Datei oder Verzeichnis nicht gefunden
make: *** [.depend] Fehler 1

Kann mir vielleicht jemand erläutern wie ich das Problem löse?
 

TomcatMJ

Guru
Hm, scheint so als würde dir da ein Devel-Paket fehlen, vermutlich libjpeg-devel, welches du per YaST nachinstallieren solltest. Da die bei mir aufgrund diverser anderer Dinge schon vorher installiert war, war mir das wohl durch die Lappen gegangen. Ich trags dann auch im Wikiartikel (der ja noch ind er Mache ist) nach.

Bis denne,
Tom
 
OP
S

Schlafmuetze

Member
Ist es normal das man den "make install"-Befehl mit sudo ausführen muss? Ich frage nur weil davon nichts in der Installationsanleitung steht, und ich normalerweise gewohnt bin das darauf hingewiesen wird wenn bei bestimmten Befehlen weitergehende Rechte benötigt werden.
 

TomcatMJ

Guru
Für Dinge die Systemweit installiert werden sollen macht das Sinn, vor allem für Kernelmodule, denn der normale User hat in der Regel keine Rechte um irgendwas in /lib oder /usr zu schreiben sofern man die Rechte auf den Verzeichnissen nicht irgendwann manuell geändert hat. Folglich würde die systemweite Installation per "make install" dann vermutlich fehlschlagen, bei Installationen im Homeverzeichnis des Users sieht das natürlich wieder ganz anders aus.

Bis denne,
Tom
 
OP
S

Schlafmuetze

Member
Hmmm, also entweder ist mein Englisch zu schlecht oder aber meine Linux-Kenntnisse doch noch schlechter als gedacht. Aber kann es sein das man nur Hardware wie TV-Karten bzw. Webcams als Datenquelle nutzen kann? Zumindest liest sich das so für mich. Und in motion.conf kann ich ja als input auch nur Hardware einstellen. Aber ich will es ja so haben das andere, wenn ich mit anderen Videochat betreibe diese z.B. eine bestimmte Videodatei von meiner Festplatte sehen anstelle meiner Webcam.
Sollte es doch funktionieren wäre es nett wenn Du es mir mal anhand einer Befehlszeile oder so erläutern könntest wie man das macht.
 

TomcatMJ

Guru
Motion? Wieso motion? Es war doch von effectv die rede in Kombination mit dem Vloopback Kernelmodul, nicht von einer Bewegungserkennungssoftware. Effectv kann sowohl Devices als auch Dateien als Eingabe nutzen udn diese dann sowohl in einem Fenster ausgeben als auch parallel dazu das Ganze auf eines der Videoloopback Devices ausgeben. Nach laden des Kernelmoduls sagt dir die Ausgabe von
Code:
dmesg
welche Loopbackdevices dir zur Verfügung stehen udn welches davon als Inputdevice und welches als Outputdevice agiert. Die Ausgaben von mplayer oder ffplay (Teil der ffmpeg Suite) kann man übrigens ebenso auf ein Video4Linux2 Videoloopbackdevice lenken.
Beispiel:
Voraussetzung:
Code:
su
modprobe vloopback pipes=3
exit
Datei abspielen und auf ein Loopbackdevice lenken:
Code:
mplayer -ao null -vo v4l2=/dev/video3 "Die Ritter der Kokosnuss_0.mpg"
Parameter:
-ao null = keine Audioausgabe (kann die Cam am Ende ja auch nicht udn effecTV nutzt es auch nicht)
-vo v4l2=/dev/video3 =Ausgabe auf das Video4Linux2 Loopbackinputdevice /dev/video3

Passend dazu Effekte drüberjagen und es auf ein weiteres Loopbackdevice zur Endnutzuung in z.B. kopete weiterreichen:
Code:
effectv -device /dev/video4 -hardware -size 640x480 -vloopback /dev/video5 HolographicTV &
wobei nun unter /dev/video6 der Abgriff für z.B. kopete erfolgen kann.

Bis denne,
Tom
 
OP
S

Schlafmuetze

Member
Nach Eingabe von make bei EffectTV erscheint irgendwann folgende Zeile und das kompilieren bricht ab.
Code:
utils.c:29: error: conflicting types for ‘trunc’
Im Internet habe ich nur Bug-Reports drüber gefunden und einen Patch für Gentoo. Gibt's für das Problem 'ne Lösung?
 

TomcatMJ

Guru
Hi!
Nach kurzem Check eben des zur Zeit herunterladbaren Sourcepakets von effecTV hab ich wohl auch Probleme, aber da hab ich noch was im Archivverzeichnis meines Rechners wiedergefunden ;)
Ich hatte damals auch mal ein Problem mit und hatte dann,glaueb ich jedenfalls, im Sourcecode irgendwas geändert aber weiss nicht mehr genau was,darum hab ich das damals angepasste sourcecodepaket nochmal testweise kompiliert und nochmal zusammengepackt und ein rpm per checkinstall gebastelt (für opensuse 11.0 64 bit allerdings nur da ich momentan kein 32 Bit System am Start habe). Ich hab das nun einfach mal ins Netz gestellt:
Downloadlinks:
effectv angepasster und unter opensuse 11.0 64 Bit (vermutlich auch unter 32 Bit) wieder kompilierbarer Sourcecode:
http://www.mediafire.com/?2dtd9z9tl9x
effecTV RPM-Paket für opensuse 11.0 64 Bit:
http://www.mediafire.com/?tetdutmkz1m
vloopback Kernelmodul als RPM--Paket für opensuse 11.0 64 Bit:
http://www.mediafire.com/?vgooqyj5urx

Ich hoffe das hilft nun erstmal weiter ;)

Bis denne,
Tom
 
OP
S

Schlafmuetze

Member
Hmmm, hab's mit Deinem kompilierten probiert, allerdings hab ich beim starten von effectv dann folgende Nachricht:
Code:
bash: /usr/local/bin/effectv: cannot execute binary file
Echt schade das es effectv nicht als normales Paket in den Respositories gibt.

Zudem bekomme ich bei der Eingabe der Befehle für mplayer unter anderem auch folgende Meldung:
Code:
Error opening/initializing the selected video_out (-vo) device.
 
Oben