Frage von Nick:Ich möchte in der Zeit in der meine WebCam nicht eingeschaltet ist, ein video abspielen.
Leider kann meine streaming software der webcam nur auf hardware geräte zugreifen.
Da muss es doch eine software geben, die sozusagen eine hardware emuliert, tatsächlich aber die daten aus einem video file ausliest...
oder gibt es andere ideen wie ich das machen kann? (ausser mit der webcam das video vom monitor abzufilmen :)
Nick
Antwort von R. Heitert:
Mission Impossible? Na Ja, ich meins echt nicht böse, aber genau so könnte sich der Beitrag einer Person lesen, die vorhat eine Überwachungswebcam auszutricksen.
R. Heitert
Antwort von Stefan:
Hi Nick
Wo soll das "Video" abgespielt werden, bei mir, wenn ich Deine Webcam im Internet anklicke?
Ich würde ja auf eine Seite auf einem Webserver zugreifen. Und dort könntest Du statt der Seite mit dem Livebild eine andere Seite mit einem Video anbieten. Du müsstest aber jedesmal noch die Seiten tauschen, wenn die Webcam online/offline geht. Wenn ich dann in den Quelltext der Seite reinkucke (mache ich manchmal) sehe ich natürlich den Beschiss. Dagegen könntest Du dadurch vorgehen, dass Du die Seite dynamisch z.B. mit PHP machst.
Bei zwei aufeinander folgenden Besuchen würde ich jedesmal das gleiche Video vom Start weg bekommen und dann auch merken, dass ich betuppt werde. Dagegen könntest Du wiederum ein Verzeichnis mit aufeinanderfolgenden Bildern anlegen, die z.B. zeitlich nummeriert sind und z.B. per PHP, CGI, SSI oder Javascript dynamisch gelesen werden. Auf manchen Servern kannst Du Tools laufen lassen, die Dir sogar die entsprechenden Untertitel mit gefaktem Datum und Uhrzeit ins Bild einstanzen...
Manche Webcam-Software kann auch ein Offline-Bild zeigen. Dieses Offline-Bild könntest Du kontinuierlich austauschen und dann mit der Webcamsoftware hochladen lassen. Geht sogar von Hand durch Copy&Paste und Umbenennen im Windowsexplorer ;-)
Du kannst auch selbst ständig das "Livebild" auf dem Server erneuern und dann auf die Webcamsoftware verzichten. Dazu einen Task einrichten, der alle paar Minuten einen FTP-Transfer macht. Mit Linux ist das rel. einfach machbar...
An die dafür notwendigen Bilder aus dem AVI Video kommst Du z.B. mit VirtualDub Bildsequenzen exportierst.
Gruss
Stefan
Antwort von Nick:
: Mission Impossible? Na Ja, ich meins echt nicht böse, aber genau so könnte sich der
: Beitrag einer Person lesen, die vorhat eine Überwachungswebcam auszutricksen.
:
: R. Heitert
Also ich habe mal in einem Forum darüber gelesen, leider wurde der Name der software nicht erwähnt.
ich habe auch bei microsoft kurz nachgelesen, so aufwändig ist es nicht, einen treiber zu programmieren, wenn man ein wenig mit der materie zu tun hat.
aber dass es gehen muss weiß ich vor allem deshalb, weil ich es schon gesehen habe :)
da war das bild weg und plötzlich lief ein video, und die software die zum streamen verwendet wurde kann aber keine videos einfach so als quelle einlesen, also war da noch etwas dazwischen.
angeblich soll diese software(treiber) ein paar hundert $ kosten...
Antwort von Stefan:
Hi Nick
Echt oder unecht ist Haarspalterei. "Echt" ist der interne Aufbau des Treibers und das Einbinden ins Multimediasystem. Und Du sparst beim Emulieren eines Gerätetreibers auch nicht die Hardwareansteuerung, dazu unten mehr.
Meine ersten Suchquellen wären die MSDN Informationen, das Windows DDK und als "Projektgerippe" ein Open Source Aufnahmetreiber wie z.B. BTWINCAP oder alternativ ein Treiberentwicklungskit von Drittherstellern wie z.B. Jungo.
Mit einem Treiber schreibst Du eine Betriebssystemerweiterung und damit kannst Du Dich mit "welche webcamsoftware oder kamera muss egal sein, dafür ist ja das betriebssystem verantwortlich" nicht mehr herausreden ;-) Denn jetzt musst Du wissen, welches Interface Du der Webcamsoftware anbieten musst. Bei einem Aufnahmetreiber kann das z.B. ein Directshow oder ein VFW Interface sein. Softwareunabhängig kannst Du das machen, wenn Du beide anbietest. Wenn Du aber weisst, über welches Interface die Webcamsoftware geht, kannst Du Dir einen Teil der Arbeit sparen.
Verwendest Du den normalen Aufnahmetreiber und emulierst stattdessen eine Webcam über einen Gerätetreiber, musst Du auch auch entscheiden an welchem "Anschluss" dieses Pseudogerät hängt. Schreibst Du z.B. einen USB Gerätetreiber, dann muss dieser z.B. auch alle Statusmeldungen eines regulären USB Controllers aus der Webcam liefern, damit das Betriebssystem dieses Pseudogerät als solches akzeptiert.
Gruss
Stefan
Antwort von Nick:
: Ach so Nick
:
: Ja, das geht vielleicht über einen eigenen Emulations-Gerätetreiber. Eine Stufe höher
: mit einem Emulations-Aufnahmetreiber ist es wahrscheinliche etwas einfacher.
:
: Mit "Selberschreiben" sucht man sich mit Gerätetreibern mit das Schwierigste
: aus, was es bei der Programmierung gibt (ausser vielleicht Finnisch-Japanisch
: Übersetzungsprogramme mit synthetischer Sprachausgabe ;-)
:
: Darf ich noch einen Tipp geben? Du solltest bei den Anfragen schreiben, welche
: Webcamsoftware Du einsetzt und welche Kameras worüber angeschlossen werden. Das
: grenzt die verwendeten Schnittstellen, SDKs und APIs etwas ein.
:
: Gruss
: Stefan
ja nein also.... :)
stimmt schon. nur wird es ja kein 'echter' gerätetreiber...und selbst die hersteller von hardware kochen nur mit wasser...oder so.
welche webcamsoftware oder kamera muss egal sein, dafür ist ja das betriebssystem verantwortlich - windows, dass ist vielleicht noch relevant ;)
ansonsten ist die funktion dieses 'emulators': nimm beliebigen videostream(codecs sind ja im betriebssystem eingebunden also erweiterbar) und schick es als 'videodevice' für das betriebssystem getarnt an welches programm auch immer daten eines videodevices anfordert.
das ist genau der clou an der sache, durch das stückchen software dazwischen, können webcam und verwendete camsoftware beliebig ausgetauscht werden - das ganze multimedia system in windows ist ja wunderbar modular aufgebaut...
wenn ich nur wüsste, was ich in google eingeben soll damit ich das richtige finde *seufz*
Nick
Antwort von Stefan:
Ach so Nick
Ja, das geht vielleicht über einen eigenen Emulations-Gerätetreiber. Eine Stufe höher mit einem Emulations-Aufnahmetreiber ist es wahrscheinliche etwas einfacher.
Mit "Selberschreiben" sucht man sich mit Gerätetreibern mit das Schwierigste aus, was es bei der Programmierung gibt (ausser vielleicht Finnisch-Japanisch Übersetzungsprogramme mit synthetischer Sprachausgabe ;-)
Darf ich noch einen Tipp geben? Du solltest bei den Anfragen schreiben, welche Webcamsoftware Du einsetzt und welche Kameras worüber angeschlossen werden. Das grenzt die verwendeten Schnittstellen, SDKs und APIs etwas ein.
Gruss
Stefan
Antwort von Nick:
: Hi Nick
:
: Wo soll das "Video" abgespielt werden, bei mir, wenn ich Deine Webcam im
: Internet anklicke?
:
: Ich würde ja auf eine Seite auf einem Webserver zugreifen. Und dort könntest Du statt
: der Seite mit dem Livebild eine andere Seite mit einem Video anbieten. Du müsstest
: aber jedesmal noch die Seiten tauschen, wenn die Webcam online/offline geht. Wenn
: ich dann in den Quelltext der Seite reinkucke (mache ich manchmal) sehe ich
: natürlich den Beschiss. Dagegen könntest Du dadurch vorgehen, dass Du die Seite
: dynamisch z.B. mit PHP machst.
:
: Bei zwei aufeinander folgenden Besuchen würde ich jedesmal das gleiche Video vom Start
: weg bekommen und dann auch merken, dass ich betuppt werde. Dagegen könntest Du
: wiederum ein Verzeichnis mit aufeinanderfolgenden Bildern anlegen, die z.B. zeitlich
: nummeriert sind und z.B. per PHP, CGI, SSI oder Javascript dynamisch gelesen werden.
: Auf manchen Servern kannst Du Tools laufen lassen, die Dir sogar die entsprechenden
: Untertitel mit gefaktem Datum und Uhrzeit ins Bild einstanzen...
:
: Manche Webcam-Software kann auch ein Offline-Bild zeigen. Dieses Offline-Bild könntest
: Du kontinuierlich austauschen und dann mit der Webcamsoftware hochladen lassen. Geht
: sogar von Hand durch Copy&Paste und Umbenennen im Windowsexplorer ;-)
:
: Du kannst auch selbst ständig das "Livebild" auf dem Server erneuern und dann
: auf die Webcamsoftware verzichten. Dazu einen Task einrichten, der alle paar Minuten
: einen FTP-Transfer macht. Mit Linux ist das rel. einfach machbar...
:
: An die dafür notwendigen Bilder aus dem AVI Video kommst Du z.B. mit VirtualDub
: Bildsequenzen exportierst.
:
: Gruss
: Stefan
Danke für die Antwort Stefan, hilft mir aber leider nicht weiter.
Es geht mir nicht darum irgendwas zu faken und zugriff auf die webseite habe ich auch nicht.
was du beschreibst, ist ja normales streaming.
nur verwende ich eine camsoftware, die von allen angeschlossenen webcams daten empfangen kann.
und jetzt möchte ich eben ein video als 'video device' tarnen und an diese webcamsoftware füttern. da ist noch gar nichts mit server und web, das soll alles auf einem rechner bei mir laufen.
es geht mir gar nicht darum, 'live' vorzutäuschen, ich möchte nur ein video ins netz streamen, aber eben über eine software die gar nicht dazu ausgelegt ist, videos einzulesen sondern nur hardware-device daten.
Nick