Headline »

Android-App für das 200-Puls-Soundboard veröffentlicht

25. Januar 2012 – 17:02 |

Das 200-Puls-Soundboard hat die nächste Entwicklungsstufe erreicht!

Lesen Sie den gesamten Beitrag »
IT / Technology

Code-Schnipsel, Software, Betriebssysteme, HowTo’s & Tutorials etc.

Projekte

Eigenentwicklungen zu WordPress-Plugins, Programmen und Tools

Multimedia

Album-Rezensionen, Musik- und Film-Tipps, Tops & Flops

Wasserschildkröten

Ein Haustier-Tagebuch über zwei Schmuckschildkröten

Stuff

Der ganz persönliche Wahnsinn direkt aus dem Leben…

Home » IT / Technology

Fake-/Dummy-Webcam für Linux

Eingetragen von am 6. April 2010 – 02:392 Kommentare

Nehmen wir mal an, man möchte mit seinem Linux-PC eine Dummy-Webcam, also eine virtuelle statt echte Kamera betreiben, um z.B. bei Skype Video-Clips einspielen zu können oder bei Chatroulette.com sein Unwesen zu treiben. Für solche Fälle habe ich einen Gerätetreiber gefunden und ein wenig damit herum gespielt. Das Projekt nennt sich AVLD (Another Video Loopback Device) und bietet ein Kernel-Modul, das man einbinden und für diverse Zwecke verwenden kann. Neben dem einfachen “Vorgaukeln” einer Webcam für verschiedenste Programme kann man sogar Videos auf diesem Device ausgeben. Es erscheint dem Betrachter dann wie gerade live aufgenommen.

Die Vorgehensweise:

1. Installation

Ich nutze derzeit openSUSE 11.2 (i586). Leider existiert derzeit noch kein offizielles RPM für AVLD, daher muss es von Hand kompiliert werden. Zur Vorbereitung wurden die RPMs “gcc”, “make”, “patch” und “kernel-source” installiert. Außerdem wurde natürlich die aktuellste Version von AVLD (momentan 0.1.4) heruntergeladen und entpackt.

Das Kommando “make” im entpackten Ordner lieferte direkt einen ernüchternden Fehler… “error: ‘v4l_compat_ioctl32’ undeclared here”. Sollte das schon das Ende sein? Nein, glücklicherweise fand sich in den Weiten des Internets einen Patch für AVLD, der für den Kernel 2.6.31 passt. Der Patch wird in das avld-Verzeichnis kopiert. Daraufhin wird das Kommando “patch -Np1 -i avld_0.1.4-2.6.31.patch_.txt” ausgeführt, wodurch die Datei “video_device.c” angepasst wird. Nun steht dem Befehl “make” und dem danach als root ausgeführten Kommando “make install” nichts mehr im Wege. Damit ist das Kernel-Module “avld.ko” nun nutzbar.

2. Laden und Verwenden des Moduls

Das Modul kann – wie bei Linux üblich – mittels “modprobe avld” geladen werden. An dieser Stelle ist es jedoch sehr wichtig, zu verstehen, dass das Device nur eine fest eingestellte Auflösung beherrscht, sich also nicht automatisch der Quelle (z.B. einem Video – siehe unten) anpasst. Werden dem Modul also keine Optionen mitgegeben, verwendet es standardmäßig eine Auflösung von 340×240 Pixel. Möchte man die Größe direkt beim Laden ändern, ruft man modprobe inkl. Parametern auf:

modprobe avld width=640 height=480 fps=25

Hat man das Modul hingegen bereits geladen, können die Parameter angepasst werden, indem man die Optionen per echo an das entsprechende Device schickt, also so:

echo "width=800 height=600 fps=25" > /dev/video0

(ggf. muss hier die Device-Nr. angepasst werden).

Die Fake-Webcam kann nun bereits verwendet werden. Ein Test kann mit MPlayer durchgeführt werden:

mplayer tv:// -tv "driver=v4l:device=/dev/video0:noaudio:outfmt=rgb24"

Sie sollte als ganz normal Gerät auftauchen und ein schwarzes Bild liefern. Möchte man stattdessen lieber bewegte Bilder präsentieren, kann man auf einfache Weise ein Video an das Gerät senden. Das erfolgt mit dem Programm “mencoder” aus dem MPlayer-Paket:

mencoder MOVIECLIP.XYZ -nosound -ovc raw -vf format=bgr24
-of rawvideo -o /dev/video0

Hat soweit alles geklappt, kann der Spaß beginnen… auch ohne echte Kamera. Mir fiele da z.B. der gute alte Casino-Räuber-Trick ein, bei dem man zunächst ein unscheinbares Video aufzeichnet, das dann statt des echten Webcam-Bildes wiedergegeben wird, um dem Betrachter das eigentliche Geschehen vor zu enthalten. :-)

Hierzu passende Artikel:

2 Kommentare »

  • coder sagt:

    alles super geklappt, nur das mit dem rtsp klappt nciht so ganz

    mencoder rtsp://192.168.0.153/live.sdp -nosound -ovc raw -vf format=bgr24 -of rawvideo -o /dev/video0
    MPlayer dev-SVN-r31930-4.5-openSUSE Linux 11.3 (i686)-Packman (C) 2000-2010 MPlayer TeamResolving 192.168.0.153 for AF_INET6…

    Couldn’t resolve name for AF_INET6: 192.168.0.153
    Connecting to server 192.168.0.153[192.168.0.153]: 554…

    A single media stream only is supported atm.
    rtsp_session: unsupported RTSP server. Server type is ‘unknown’.
    STREAM_LIVE555, URL: rtsp://192.168.0.153/live.sdp
    success: format: 21 data: 0×0 – 0×0
    Stream not seekable!
    file format detected.
    Initiated “video/MP4V-ES” RTP subsession on port 50714
    Initiated “audio/MPEG4-GENERIC” RTP subsession on port 40138
    demux_rtp: Failed to guess the video frame rate
    VIDEO: [mp4v] 0×0 0bpp 0.000 fps 0.0 kbps ( 0.0 kbyte/s)
    [V] filefmt:21 fourcc:0x7634706D size:0×0 fps:0.000 ftime:=0.0000
    Opening video filter: [expand osd=1]
    Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
    Opening video filter: [format fmt=bgr24]
    ==========================================================================
    Opening video decoder: [ffmpeg] FFmpeg’s libavcodec codec family
    Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
    ==========================================================================

    Flushing video frames.
    Filters have not been configured! Empty file?

    Video stream: -nan kbit/s (-2147483648 B/s) size: 0 bytes 0.000 secs 0 frames

  • coder sagt:

    achso, zu dem muss ich sagen mplaxer packt das allgemein nicht (rtsp) und vlc funktioniert problemlos…

    so nun wie schaffe ich vlc zu sagen das der den stream nun auf /dev/video0 legt???

    cvlc ist auch ne option, aber ich kann nichts mit dem format=bgr24 anfangen, naja vllt. hast du eine idee, ansonsten eine super Anleitung

Schreiben Sie einen Kommentar!

Fügen sie unten ihren Kommentar hinzu, oder trackback von ihrer eigenen Seite.. Sie können außerdem Abonnieren sie diese Kommentare via RSS.

Sei nett. Halt es sauber. Bleib beim Thema. Kein Spam.

Sie können diese HTML-Tags benutzen:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Dieser Blog hat Gravatar aktiviert. Um ihren eignen Avatar zu bekommen registrieren sie sich bitte unter Gravatar.

ThumbSniper-Plugin by Thomas Schulte