Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 25mal / Sekunde Screenshot machen (https://www.delphipraxis.net/13219-25mal-sekunde-screenshot-machen.html)

Luckie 13. Dez 2003 22:32

Re: 25mal / Sekunde Screenshot machen
 
Ich würde es mal mit einem Thread probieren, aber die Priorität runtersetzen.

BungeeBug 13. Dez 2003 22:38

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.

Luckie 13. Dez 2003 22:40

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.

BungeeBug 13. Dez 2003 22:46

Re: 25mal / Sekunde Screenshot machen
 
Ja schon nur dürfte es dann auch keine 25 Screens geben ... ich seh schon wir haben nen Problem ...

Luckie 13. Dez 2003 22:56

Re: 25mal / Sekunde Screenshot machen
 
Man muss eben einen Kompromiss fiden.

BungeeBug 13. Dez 2003 22:59

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.

Luckie 13. Dez 2003 23:00

Re: 25mal / Sekunde Screenshot machen
 
Keine Ahnung DX ist nicht mein Bereich.

MrKnogge 14. Dez 2003 01:15

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...

Der_Unwissende 14. Dez 2003 12:58

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.

trifid 14. Dez 2003 13:40

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.
Seite 2 von 3     12 3      

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