hallo zusammen,
habe mir ein tool geschrieben (delphi 7),welches bewegung erkennt und dann ab bewegung aufzeichnet.wenn ich z.b. eine webcam dranhänge wird das bild in display1 angezeigt.gleichzeitig wird über eine matrix (motion detect empfindlichkeit einstellbar) bewegung erkannt,ab da aufgezeichnet mit 10 sekunden nachlauf und der dateiname mit datum und uhrzeit versehen.bei erneuter bewegung wird eine neue datei angelegt.letzte erkannte bewegung wird in display2 angezeigt.
als eingang funzen webcams,tv karten,internetstreams oder auch vorhandene dateien,die man auf bewegung durchsuchen kann.
was mir jetzt noch fehlt ist folgendes:
ich starte ein beliebiges chatprogramm mit cam-unterstützung,z.b. netmeeting.nun möchte ich aus meinem tool heraus eine maske aufziehen,so eine art rahmen,den ich um das netmeeting video-fenster positioniere.bei bewegung wird wie üblich aufgezeichnet.
habe leider keinen blassen,wie ich das bewerkstelligen soll.
hat jemand sowas in der art schon mal geschrieben?
wie könnte man da am besten vorgehen?
muss ich den video buffer auslesen dafür?
im prinzip so wie hypersnap dx,nur halt nicht den gesamten bildschirminhalt,sondern nur maskengrösse......
Öffne ein eigenes kleines Fenster, dass der Benutzer über dem Videopanel platzieren und die Größe anpassen kann. Dann drückt er auf <OK> und dein Prog übernimmt die Ausmaße und Position des Fensters. Hat bei mir (bei was ähnlichem) wunderbar funktioniert.
_________________ [18:30] tomok: so wie ich das sehe : alles. was nich was anderes ist als nen Essay ist nen Essay
hi, i'm a signature viruz, plz set me as your signature and help me spread
hört sich gut an.genau sowas brauch ich.frage ist nur wie das geht.
weil ich unabhängig von den jeweiligen chatprogrammen bleiben will fangen die probleme erst an oder nicht?
die arbeiten doch alle unterschiedlich oder nicht?
wenn die overlay verwenden dürfte da doch gar nichts angezeigt werden,wenn ich meine maske drüberlege?
woher weiss meine maske,dass sie video-input sein soll?
kannst du mir da auf die sprünge helfen?
edit/
zitat von irgendwoher:"Video-Overlays liegen eben nicht im "Screen.Canvas" oder "WindowForm.Canvas", sondern mehr oder weniger in einem speziellen Bereich des Grafikspeichers - im Fenster würdest du nur eine einheitlich gefärbte Fläche auslesen. Overlays zu lesen ist ein Kunststück, das kaum ein Programm beherrscht."
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also wir hatten die Tage (ich glaub Aya wars) ne frage wie man ne Webcam mit OpenGL ausließt und darstellt. Also so unmöglich isses demnach nicht. Außerdem vertrete ich mittlerweile die ansicht, dass alles was ein Computer an Daten erhält prinzipiell auch irgendwie umgeleitet und uminterpretiert werden kann. Wär ja noch schöner wenn man das mit den Bildern nicht könnte.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
hallo,
hab mir opengl noch nicht zu gemüte geführt,(werde ich noch nachholen)
habe ne webcam auslesen ist doch relativ einfach.es handelt sich ja um hardware und das device kann man über ds-pack oder videolab zusammenklicken.gibt vieleicht etwas overhead aber da gibt es ja zig möglichkeiten.habe mal letzte woche mit videolab ne webcam ausgelesen und dargestellt,weil der entwickler meinte,man brauch keine zeile code selbst schreiben.
alles nur mit maus zusammengeklickt.funzt einwandfrei.
netmeeting oder andere chatprogramme ist da schon was anderes.es handelt sich nicht um hardware.ausserdem kommt unter umständen noch das overlay problem hinzu.
im moment bin ich da angelangt:es gibt einen direct show filter namens pushsource_desktop.damit kann man screens machen(vom fensterhandle),das dann nach tbitmap und dann wieder zum avi machen.das könnte ich dann nach motion detect abscannen.dabei habe ich mich aber um overlay noch nicht gekümmert.aber im fall netmeeting geht das.
scheint mir aber alles sehr um tausend ecken gedacht.und kostet resourcen.
vieleicht wäre da besser den framebuffer auslesen,keine ahnung.und dann auch nicht den gesamten buffer,sondern nur den bereich der maske.
werde morgen mal den von die genannten beitrag suchen.mal sehen ob da neue erkenntnisse für mich auftauchen.
danke jedenfalls schonmal und wer was neues oder besseres weiss:immer her damit.
g/e
ps:
habe immer noch nicht verstanden,was 'al' mir mit seiner antwort wirklich sagen wollte........
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
ich denke mal, al wird dir einen tipp gegeben haben, wie du dem user die möglichkeit zum auswählen des zu observenden ( ) bildschirmbereich geben kannst.
Also dem User einfach ein Fenster, das du entsprechend bearbeitest (borderstyle:=none, dann kannst du so ziemlich alles damit machen, ohne dass dich irgendwelche titelleisten oder so zeuch nerven), zum sizen und verschieben anbieten.
Ansonsten denke ich nicht, dass ein normaler IM mit Overlay oder ähnlichem arbeitet, es sei denn, er ist speziell für ingame-com gemacht (z.B. XFire) oder ähnliches. Und sowas will man normalerweise nicht überwachen, die machen selbst auf sich aufmerksam
Du solltest also am besten einfach dem User einen ersten Screenshot zur Überprüfung geben - ala "Wenn sie hier eine einfarbige Fläche anstelle ihres bevorzugten IM sehen, dann muss ich ihnen leider mitteilen, dass ich diesen bildschirmbereich nicht überwachen kann. Fortsetzen?" oder etwas ähnlichem.
Also dem User einfach ein Fenster, das du entsprechend bearbeitest (borderstyle:=none, dann kannst du so ziemlich alles damit machen, ohne dass dich irgendwelche titelleisten oder so zeuch nerven), zum sizen und verschieben anbieten.
ja genau,das würde mich interessieren,wie ich meinem fenster sagen kann,dass der hintergrund, auf dem es liegt eine videoquelle ist und mein fenster jetzt der videoinput für meine anwendung sein soll.
luketheduke hat geschrieben:
Du solltest also am besten einfach dem User einen ersten Screenshot zur Überprüfung geben - ala "Wenn sie hier eine einfarbige Fläche anstelle ihres bevorzugten IM sehen, dann muss ich ihnen leider mitteilen, dass ich diesen bildschirmbereich nicht überwachen kann. Fortsetzen?" oder etwas ähnlichem.
warum sollte ich das tun?
nur weil ich nicht weiss wie ich das video abgreifen kann heisst das doch nicht dass das nicht geht....
kann mir gar nicht vorstellen,dass das noch nie einer gemacht hat.....
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also ganz ehrlich. Overlays solltest du erst einmal außen vor lassen. Das ist ein Modus von vielen und ich kenne auch kein Program welches Obverlays einlesen kann. Und Messenger werden sicherlich nicht damit arbeiten. Die Hauppauge WinTV arbeitet normal mit Overlays. Aber seit Windows XP bietet sie einen DirectX beschleunigten Modus an. Der dürfte wieder auslesbar sein. Bin mir da aber nicht so sicher.
Du solltest dir mal ein TCanvas erstellen und diesem den DC des DesktopWindows zuweisen. Dann kannst du locker flockig von dem Canvas lesen ohne, dass du irgendetwas mit dem Fenster machen musst. Evtl kannst du ja dann auch Fenster unter der Maus abfragen und dich an diese ranheften. Also sobald sie verschoben werden verschiebst du dein Rechteck mit. Oder bevor du ein Bild schießt. Evtl kannst du ja dann auch noch hergehen und relative Offsets einstellen oder so etwas.
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.