Artikel
3 Kommentare

Webcam über das Internet streamen ohne MSN und Co.

Ich habe ein PS3 Eye (Webcam) welche ich mir im Zuge von Multitouch-Tests zugelegt habe. Leider ist diese nicht so Standard wie die ganzen anderen Webcams da draussen. Über MSN funktioniert die Webcam nur bedingt, also wenig brauchbar. Nun möchte ich euch einen Weg beschreiben, wie ihr mit FFMPEG einen Webcam-Stream aufsetzen könnt, der dann einfach über den Browser des Betrachters angesehen werden kann.

Als Grundlage benötigt ihr das ffmpeg-Paket. Zwei Programme kommen mit dem FFMPEG Paket. ffserver und ffmpeg. Damit der ffserver weiss, was er tun muss, benötigt ihr ein Config-File. Dieses könnt ihr in das Verzeichnis eurer Wahl legen, bei mir liegt es im Home unter ffmpeg.conf. Folgenden Inhalt fügt ihr der Datei zu:

#auf welchem Port soll der Server laufen
Port 8090
# auf welche IP soll der Server lauschen
BindAddress 0.0.0.0
# maximale Anzahl an Clients
MaxClients 1000
# maximale Bandbreite pro Client (kb/s)
MaxBandwidth 10000
# soll der ffserver als Dämon laufen? Wenn gewollt, auskommentieren
NoDaemon 

File /tmp/feed1.ffm
FileMaxSize 5M

#der stream der von außen erreichbar ist

Feed feed1.ffm
Format swf
VideoCodec flv
VideoFrameRate 2
VideoBufferSize 80000
VideoBitRate 100
VideoQMin 1
VideoQMax 5
# die auflösung der webcam
VideoSize 640x480
PreRoll 0
Noaudio

Die Datei entsprechend speichern. Es gibt noch weitere Formate die Webcam zu streamen. Weitere Configbeispiele könnt ihr unter dem in den Quellen erwähnten Artikel finden. Nun muss der ffserver gestartet werden. Mit folgendem Befehl könnt ihr dies tun (entsprechend den Pfad zu eurer Config anpassen):

ffserver -f  /home/demaya/ffmpeg.conf

Nun sollte der Server laufen. Nun müsst ihr den ffmpeg starten, der dann entsprechend den Feed füttert:

ffmpeg -r 15 -s 640x480 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm

Ihr müsst den -s Parameter an die Auflösung eurer Webcam anpassen, -f definiert den Treiber, der genutzt werden soll, bei mir muss es der neuere video4linux2 Treiber sein, bei Problemen versucht mal den video4linux-Treiber, -i beschreibt den Pfad zu der Webcam-Gerätedatei (mit ls /dev/video* bekommt ihr den Namen eurer Cam heraus). Eigentlich solltet ihr jetzt unter der Adresse http://localhost:8090/test.swf euer Webcambild sehen. Da der Firefox bei mir das swf entsprechend zu der Fenstergröße skaliert macht es Sinn euer SWF in einen EMBED Tag von HTML zu packen:


Nun ist die Cam lokal erreichbar. Wenn ihr die Cam ins Internet streamen wollt, müsst ihr an eurem Router entsprechen den Port auf euren lokalen Rechner weiterleiten, wie das funktioniert beschreibt die Seite Portforward.com ganz gut. Über Whatismyipadress.com könnt ihr raus finden welche öffentliche IP Adresse ihr habt. Ersetzt den localhost in dem Link durch die öffentliche IP-Adresse und schon könnt ihr euren Webcamstream an Freunde weitergeben oder in eure Webseite einbauen.
Quelle:

3 Kommentare

  1. Moin ….

    ich habe das problem, das die cam automatisch immer auf 160×120 gestellt wird, kann man das irgendwie lösen ?

    Es ist eine „Creative LIVE CAM CHAT HD“

    LG
    Marco

  2. Aloha,

    so ad-hoc finde ich zu dem Problem nichts. Das sollte eigentlich Ad-Hoc laufen. Welche Distri benutzt du?

    Passiert das auch unter Cheese oder nur wenn du ffmpeg benutzt?

    Grüße

  3. Ich habe bissl rumgetestet, es lag am USB port. Ich denke mal er lief nicht auf 2.0. problem ist also nun behoben.

    LG
    Marco

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.