Benutzer:TomcatMJ/Work-in-Progress/Videoloopbackscript
Videoloopbackdevice Kernelmodul kompilieren:
Voraussetzung: Folgende Pakete sollten installiert sein: Kernel-Sources zum laufenden Kernel passend (auf die Versionsnummer unbedingt achten, ggf. nach der Installation nochmal ein Update des Kernels und der Kernelsourcen machen damit die Versionsgleichheit sichergestellt wird), gcc, make, libjpeg-devel (oder ein ähnlich genanntes Paket welches jpeglib.h enthält, der Name dürfte vermutlich distributionsabhängig sein) und falls man es als RPM-Paket erstellen will auch noch checkinstall
Zuallererst benötigt man die Sourcecodes für das Kernelmodul, da dies bisher noch nicht per Paketmanager zu finden zu sein scheint. Es ist unter http://www.lavrsen.dk/twiki/bin/view/Motion/VideoFourLinuxLoopbackDevice zu finden. Nach dem Entpacken wechselt man in einem X-Terminal/einer Konsole in das Verzeichnis welches durch das Entpacken erstellt wurde. Dort gibt man folgendes ein:
./configure make
und falls man es als RPM-Paket haben will
sudo checkinstall
und sollte den zukünftigen Paketnamen (hierbei bietet sich "vloopback 1.2" für die Version 1.2 des Kernelmoduls an) als Description in der Eingabemaske von checkinstall eingeben. Danach gibt man folgendes zur endgültigen Installation ein:
cd /usr/src/packages/RPMS sudo rpm -Uvh $NAME_DES_ERSTELLTEN_PAKETS
Falls man jedoch auf das Erstellen eines RPM-Pakets verzichtet gibt man einfach folgendes anstelle von sudo checkinstall und den darauf folgenden Befehlen ein:
sudo make install
Anschließend kann das vloopback Kernelmodulö für das Videoloopbackdevice genutzt werden wobei als Parameter die Anzahl der gewünschten Pipes angegeben werden kann. Beispiel:
su insmod vloopback pipes=2
2 Pipes bedeuten man hat 2 Eingabepunkte für Videodaten und 2 Ausgangsdevices zusätzlich zu den bereits hardwareseitig vorhandenen Videodevices. Sofern also bereits /dev/video0 und /dev/video1 existiert (wie bei mir mit TV-Karte und der Webcam) aber hardwareseitig bisher kein /dev/video2 existiuert ist /dev/video2 der erste Eingangspunkt, /dev/video3 der erste Ausgangspunkt, /dev/video4 der zweite Eingangspunkt und /dev/video5 der zweite Ausgangspunkt. An Eingangspunkte können Daten gesendet werden, zum Beispiel mit effecTV verarbeitete Daten von /dev/video0 aud /dev/video2 ausgeben lassen; um sie am Ausgangspunkt als Pseudodevice wieder abzugreifen, zum Beispiel mit Camstream von /dev/video3 um die verarbeiteten Daten zu sehen und auf einen exterenen Server zu senden oder mit kopete um diese Daten für einen Videochat zu nutzen,
Camsource z.B. kann diese Devices nutzen um sie als Streamserver direkt über einen entsprechenden TCP-Port am Rechner zur Verfügung zu stellen, also sozusagen als Webcamserver zu fungieren.
Startscripte für effecTV in Kombination mit camsource und dem vloopback Kernelmodul:
Start mit Diff-Effekt:
DiffCam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k effectv -device /dev/video1 -hardware -size 640x480 -vloopback /dev/video2 DiffTV & camsource -c /usr/local/etc/camsource2.conf
Start mit Video-Reverb Effekt:
RevCam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource2.conf effectv -device /dev/video0 -size 640x480 -vloopback /dev/video4 RevTV &
Start mit Edge-Effekt:
EdgeCam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource2.conf effectv -device /dev/video1 -hardware -size 640x480 -vloopback /dev/video2 EdgeTV
Start mit Holocam-Effekt (Star Wars Imperator-Übertragungseffekt):
Holocam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource.conf effectv -device /dev/video1 -hardware -size 640x480 -vloopback /dev/video4 HolographicTV &
Start mit SimuraTV Effekt:
SimuraTVcam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource2.conf effectv -device /dev/video1 -size 640x480 -vloopback /dev/video4 SimuraTV &
Start mit SimuraTV und anschließendem BaltanTV Effekt:
SimuraTV_BaltanTV_Cam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource2.conf effectv -device /dev/video1 -size 640x480 -vloopback /dev/video2 SimuraTV & effectv -device /dev/video3 -size 640x480 BaltanTV -vloopback /dev/video4 &
Start mit SimuraTV Effekt und anschließendem VertigoTV-Effekt:
Simura_Vertigo_Cam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource2.conf effectv -device /dev/video1 -size 640x480 -vloopback /dev/video2 SimuraTV & effectv -device /dev/video3 -size 640x480 -vloopback /dev/video4 VertigoTV &
Start mit VertigoTV Effekt und anschließendem SimuraTV Effekt: Vertigo_Simura_Cam.sh
#!/bin/sh kdesu modprobe vloopback pipes=5 camsource -k camsource -c /usr/local/etc/camsource2.conf effectv -device /dev/video1 -size 640x480 -vloopback /dev/video2 VertigoTV & effectv -device /dev/video3 -size 640x480 -vloopback /dev/video4 SimuraTV &
HTML-Code für eine simple mit per camsource mit Bilddaten versorgte Webcam-Seite füpr den apache auf dem Heimserver:
webcam.html
<html> <head> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="refresh" content="10; URL=http://mein.heimserver/webcam.html"> </head> <body> <center> <img src="http://mein.heimserver:9192/multipart-large" width=640 height=480> </center> </body>
Vorrübergehende Randnotizen
Für diejenigen die Probleme beim kompilieren von effecTV haben und das vloopback Kernelmodul als per Checkinstall erstelltes RPOM-Paket für opensuse 11.0 64 Bit:
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