news, hacks, programme, logs,
tipps und tricks rund um das internet

Artikel / Tipps und Tricks Files und DownloadsForum 
Webcams, Videos und Voice über das Internet

Eine kurze Einführung in die digitale Kommunikation. Das Ziel ist es, den Gesprächspartner nicht nur zu hören, sondern auch zu sehen. Dabei werden Streaming-Videos und Webcam Bilder verwendet und es wird gezeigt wie diese eingesetzt werden können.

Autor: tom, thomas - Date: 01.22.2005 - Size: 7099 chars - Hits / Day: 6.29 - Total Hits: 10390
 Download  webcam.bash   Size: 854 bytes Datum: 22.01.2005
 Download  web_cam.html   Size: 110 bytes Datum: 22.01.2005
 Download  Source.zip   Size: 6 kb Datum: 22.01.2005
 Download  upload.php   Size: 1 kb Datum: 22.01.2005
 Download  vlc_start.sh   Size: 382 bytes Datum: 22.01.2005

Die steigende Geschwindigkeit der Internetanschlüsse erlaubt es mehr Daten zu übertragen als nur Sprache. Aber zuerst einmal befassen wir uns kurz mit der Sprache: Die Sprachübertragung funktioniert ziemlich gut und mit Programmen wie Skype ist das Installieren ein Kinderspiel. Skype funktioniert problemlos auch hinter einer Firewall, denn wenn jemand hinter einer Firewall sitzt, dann wird einfach ein anderer Peer als Vermittler verwendet. Es gibt aber auch noch andere Protokolle als das propritetäre Skype Protokoll: SIP und H.323 (http://www.richard.neill.hemscott.net/voip.html). Wir werden uns aber auf die Bildübertragung konzentrieren und werden auf die Sprache nicht mehr näher eingehen.

Bilder und Videos
Bilder können als Video oder als Standbilder, die sich alle x Sekunden erneuern, gesendet werden. Die Videos benötigen erwartungsgemäss mehr Bandbreite als die einzelnen Bilder. Für das Videostreaming eignet sich videolan client. Mit diesem Programm lassen sich unter Linux sowie unter Windows Streams aus einer Webcam erstellen. Das Kommando für die Webcam unter Linux findet man im Skript vlc_start.sh. Weitere Optionen für den videolan client sind hier zu finden.
vlc.png
videolan client

Die Optionen für das Streaming unter Windows sind die gleichen wie unter Linux und können aus dem vlc_start.sh File ausgelesen werden. Für das Umwandeln der Rohdaten in ein mpeg Format benötigen wir ein Transcoding, oder wohl eher ein Encoding. Diese Transcoding Einstellungen haben wir auf dem Windows Rechner verwendet: (Für die Bandbreite ist die Option vb=256 sehr wichtig, denn je nach Internetanschluss sollte man diese Bitrate anpassen)
:sout=#transcode{vcodec=mp4v, vb=256, scale=1}:duplicate{dst=display, dst=std{access=mmsh, mux=ts, url=:8082}}
Mit der Einstellung vb=128 benötigt der Stream ca. 100-200 kbit/s und viel CPU Power. Leider bieten die meisten Breitbandanbieter nur asymetrische Leitungen an, wo der Upstream viel langsamer ist als der Downstream. Da viel CPU Power benötigt wird ist es auf einem AMD 2.4GHZ CPU schwierig nebenbei noch was zu machen, denn es es erscheint bei zu hoher Auslastung die Meldung:

[00000280] ffmpeg decoder error: more than 5 seconds of late video -> dropping frame (computer too slow ?)

Die Verzögerung hält sich in Grenzen und ist bei ca. 5-10 Sekunden, also ein Live Bild mit synchronen Lippenbewegungen hat man nicht. Der Stream kann ebenfalls vom MediaPlayer 10 angeschaut werden, aber mit einer wesentlich grösseren Verzögerung. Eine Verkleinerung des Buffers sollte die Verzögerung verkleinern.

Webcam Bilder

pic2.jpg
Thomas am Phone
Um Bandbreite zu sparen kann man auch nur Standbilder übertragen, dazu haben wir jeweils ein Skript für Linux und ein Programm für Windows geschrieben. Es gibt zwar Tools unter Linux und Windows, jedoch fanden wir nicht diejenigen mit den gewünschten Eigenschaften.

Linux Skript

webcam2.jpeg
Tom mit Headset
In diesem Skript lassen sich die Daten per HTTP Fileupload hochladen. Das Linux Skript benötigt xawtv mit dem Programm streamer, ImageMagick um das Bild zu konvertieren und das Datum einzublenden und curl für den FileUpload, welches die Bilder auf den Server  lädt. Im Skript webcam.bash lassen sich Optionen wie zum Beispiel Bilder pro Sekunde oder das Webcam Format definieren. Zudem muss ein Passwort angegeben werden, damit nicht jeder ein Bild hochladen kann.

Windows Programm

Das Windows Programm ist ein GUI, mit welchem sich die Eingaben komfortabel eingeben lassen. Die Funktionalität ist ähnlich wie beim Linux Skript. Es lässt sich folgendes einstellen:webcap.jpg
WebCap mit VB6

  • Bild Output Grösse (320x240, 640x480, 800x600)
  • Text, der neben dem Datum erscheint (z.B My Home)
  • Server Settings, wo sich das Fileupload Skript befindet
  • Timer, erlaubte Werte sind 1-60
  • Der Button Config Input ruft das Config von ezVidCap auf

Dieses Programm befindet sich auf dieser Seite. Auf der nope Seite gibt es lediglich den Source Code.

upload.php
Diese beiden Programme laden das Bild auf einen Webserver per HTTP Post (Fileupload) hoch. Das Gegenstück ist ein PHP Skript welches das empfangene File in einen dafür vorgesehene Order verschiebt. Ein weiteres HTML File auf dem Server lädt mit der refresh Anweisung alle x Sekunden das upgeloadete Bild der Webcam neu.

Happy conferencing ;)

Links und Quellen

http://www.binary.ch
http://www.videolan.org/
http://curl.haxx.se/
http://www.imagemagick.org/
http://linux.bytesex.org/xawtv/


Bemerkungen, Kommentare und Feedback

Du kannst auch selber einen Thread starten, indem du hier klickst.
 Home
Artikel / Tipps und Tricks
Artikel Navigation
Internes
0 Artikel
    Links and Friends
    5 Links
    Artikel erscheinen ungefähr jeden Monat in unregelmässigen Abständen.

    RSS-feed: rss.xml
    Nope bietet keinerlei Garantie für die auf dieser Seite enthaltenen Tipps, Artikel und Programme. Für Schaden, der aus der Anwendung der hier enthaltenen Daten entsteht, übernehmen wir keine Haftung. Die Nope Homepage enthält Links zu anderen Seiten auf deren Inhalte wir keinen Einfluss haben. Wir übernehmen keine Verantwortung für fremde Inhalte und distanzieren uns ausdrücklich davon.© nope.tv. Die Artikel auf dieser Seite, soweit nicht anders im Artikel erwähnt, stehen unter CreativeCommons License. Die Programme auf dieser Seite, soweit nicht anders im Artikel oder Programm erwähnt, stehen unter der GNU Public License (GPL).