![]() |
Re: 25mal / Sekunde Screenshot machen
Ich würde es mal mit einem Thread probieren, aber die Priorität runtersetzen.
|
Re: 25mal / Sekunde Screenshot machen
Wieso runter? Wenn dann doch rauf! Wenn es schon bei normaler Prio nich klappt dann wohl erst recht nich mit na kleinern oder?
Was ich machen würde wär das ganze erst mal in nen MemoryStream schreiben, so sparst du die Zeit um das ganze auf die Platte zuschreiben ... bringt warscheinlich nich viel aber nen bissel könnte es bringen. |
Re: 25mal / Sekunde Screenshot machen
Nein runter. Damit man mit dem System noch arbeiten kann. Bei sekündlichen Screenshots, konnte man mit meinem System schon nicht mehr arbeiten.
|
Re: 25mal / Sekunde Screenshot machen
Ja schon nur dürfte es dann auch keine 25 Screens geben ... ich seh schon wir haben nen Problem ...
|
Re: 25mal / Sekunde Screenshot machen
Man muss eben einen Kompromiss fiden.
|
Re: 25mal / Sekunde Screenshot machen
Ich halte ja die 15 für ganz gut aber er will ja unbedingt die 25. Kann man denn nich per DX gleich von der Grakaschnittstelle mit "filmen"? Das is wohl die einzige Möglichkeite da wenigstens ne variable Zahl an Screens zubekommen.
|
Re: 25mal / Sekunde Screenshot machen
Keine Ahnung DX ist nicht mein Bereich.
|
Re: 25mal / Sekunde Screenshot machen
Ich hatte mal n tool, dâ konnte man
einen Bereich auf dem Bildschirm markieren, und dann hat es von diesem Bereich n Avi-Video erstellt. Vielleicht bietet indows ja ne Funktion, den "Bildschirm" auf dein Programm "zuleiten". geht bei der soundkarte ja auch... |
Re: 25mal / Sekunde Screenshot machen
Na ja, das kopieren an sich geht ohne Zeitverlust (< 1ms). Wenn du also dafür sorgst, dass 40 mal pro Sek. in eine Bitmap kopiert wird, schaffst du 25 frames/s. Das Problem ist das Speichern und das Anlegen der Variablen (speichern >> anlegen der Var).
Du musst halt vorher (Anzahl der sek. * 40) Bitmaps erstellen und auf die dann immer nur das kopieren anwenden. Und wenn du damit fertig bist, dann speichern. Eventuell kannst du dass Speichern nebenher mit einem Thread mit niedriger Priorität erledigen. |
Re: 25mal / Sekunde Screenshot machen
Hallo,
@kurtm1 hat Deine Grafikkarte einen Videoausgang ? (Videorekorder) An welche Aufnahmelaufzeiten denkst Du "Sekunden, Minuten, Stunden, Tage" In Abhängiglkeit davon würde ich mir erstmal Gedanken darüber machen wie Du die Datenmenge auf Seite schieben kannst. Deinen Code kann man noch optimieren einmalig die Objekte erzeugen Funktionen wie Screen.DesktopWidth, Screen.DesktopHeight oder GetWindowDC(0) außerhalb der function ScreenToFile ermittlen und als Register-Variable speichern Dann Laufzeitmessungen (Geschwindigkeit) durchführen über BitBlt (h, 0, 0, w, ... dann ermitteln ob es an der Grafikkarte liegt oder am Treiber Die Auflösung (Ausschnitt) wurde ebenfalls angesprochen reicht eine 640x480 oder muss es wirklich 1280x1024 sein ? Erst mal alle technischen Probleme angehen bevor man wirklich sich zu tote hackt und dann nur noch Assembler der letzt Ausweg ist Gibt es ähnliche Hardcopy-Routinen bei DirectX oder OpenGL ? und wie wird dort das Streaming realisiert. Vom TTimer würde ich die Finger lassen und eher einen eigenen MultiMediaTimer schreiben oder bei Torry suchen. Früher :-D unter dem guten alten DOS :) konnte man direkt auf den Bildspeicher zugreifen, gibt es unter Win32 die Möglichkeit den Speicher (Pages) der Grafikkarte direkt auszulesen ? (Achtung Synchronisation ((hier sind dann wieder die Threads gefragt)) ) ansonsten muss man sich in die Treiber-Entwicklung von Microsoft einarbeiten ist dann hier ein Win9x-System besser als ein abgeschiermtes NT, 2000 oder XP ... naja, viele Fragen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz