Entwickler-Ecke

Multimedia / Grafik - "weiches" speichern ...


Terra - Do 09.11.06 11:11
Titel: "weiches" speichern ...
Hallo zusammen,

jetzt habe ich es endlich hinbekommen eine Desktop-Capture Funktion zu programmieren. Soweit so gut, wenn ich eine Vorschau mache habe ich eine Framerate von ca. 24 Bilder pro Sekunde. Ohne Vorschau sind es an die 64 Bilder pro Sekunde.

Jetzt möchte ich das ganze auch so abspeichern, das das System nicht davon belastet wird. Frage mich aber nur, wie ich das anstellen soll. Problem an der ganzen Sache ist halt, das der Stream evtl. auch in Echtzeit komprimiert werden soll. Mit DivX oder so.

Da bei der Aufnahme ja keine Vorschau verwendet wird habe ich also 64 Bilder pro Sekunde zur verfügung. Davon ziehe ich jetzt mal spontan die hälfte ab um in Echtzeit zu komprimieren.

Wie buffer ich die speicherung, so das ich nicht unter 24 bilder pro Sekunde falle und eine perfekte Aufnahme hinbekomme? einfach den Stream speichern ist nicht drinn, da die Framerate so in den Keller wandert das die aufnahme nur noch mit höchstens 5 bilder pro Sekunde stattfindet und das für mich ungenügend ist.

Könnt mir da jemand helfen. Wäre für schnelle Routinen sehr Dankbar.

Terra


Martok - Do 09.11.06 16:03

*auch meld*

Genau das Problem kenne ich. Leider hab ich auch keine Lösung für gefunden :(

Man könnte in einem Thread die Bilder capturen und in einem array oder so ablegen. Ein anderer Thread kümmert sich dann ums komprimieren.
Hab ich aber nicht hingekriegt, vielleicht gelingt es dir ja.

Grüße,
Martok

PS: mich würde mal das Programm interessieren, wenns fertig ist ;)


Narses - Do 09.11.06 16:32

Moin!

Ich habe keine Lösung, die ich aus dem Hut zaubern könnte, aber ich Überlege mal "laut": ;)

Bei 25Hz Framerate hast du ein Zeitfenster von 40ms, in dem du rund 3MB Daten (=1024x768x32Bit) capturen, komprimieren und auf den Weg Richtung Storage bringen mußt... :shock: ;) Das ist ziemlich viel in ziemlich wenig Zeit...

Schau dir mal VNC an. Wenn du von einer Transferrate von ca. 5MB/s im 100mbit-Netz ausgehst, was man realistischerweise auch als Plattentransferrate ansetzen sollte, dann ist das so ziemlich max. dessen, was man da erreichen kann, was dir VNC vorführt. Und deren Ansatz ist ja jetzt nicht gerade "ineffizient" zu nennen, weil auf Streaming von Desktopvideo ausgelegt. :D

"Auf Vorrat" in den Speicher schaufeln, weil Direktverarbeitung zu langsam ist, wird auch nix bringen, weil irgendwann (und zwar ziemlich schnell) ist der nämlich auch voll, es bleibt also eigentlich nur realtime. ;)

Meine "Prognose": Verabschiede dich schon mal innerlich von den 25Hz Framerate... :|

cu
Narses


Martok - Do 09.11.06 16:39

Irgendwie muss es aber gehen, siehe FRAPS.
(auch wenn das bei mir immer abstürzt)


perry5 - Do 09.11.06 23:00

Wieso hast du ohne Vorschau nur 64 Frames? Nur dadurch, das du den aktuellen Desktop in den Hauptspeicher kopierst, brauchst du 1/64 sek? Naja, sind vielleicht 3 mb an Daten, aber das ist ja noch Hauptspeicher und net Festplatte, alleine daran sollte man noch optimieren können.


Terra - Fr 10.11.06 09:32

Zitat:
Wieso hast du ohne Vorschau nur 64 Frames?

Also mal dazugesagt, das ist erst meine 2. Anfänger Funktion die ich in dieser Richtung geschrieben habe. Hab mich sehr an vorhandenen Material gehalten und wüsste keine alternative zum Capturen des Bildschirms. Gibt es eine Assembler Methode mit der man den Screen schneller "ablichten" könnte ? Nicht hauen, nur ne Frage.

Aber um die Frage warum ich nur 64 Frames ohne Vorschau habe zu beantworten kann ich dazu sagen, das es an meiner Grafikkarte und Rechner liegt (vielleicht mehr am Rechner als an der Graka). Ist halt ein älteres System (AMD 2600+, Geforce 6700 GT)

Ich habe bei mir im Downloadbereich mal das Programm, so wie es jetzt captured reingestellt. Zu finden hier: http://www.sro-toolbox.de/index.php?option=com_docman&task=cat_view&gid=33&Itemid=43&lang=de

Da könnt ihr auch mal selber sehen was ihr für Frameraten mit und ohne Vorschau habt.

Aber ich schweife jetzt von eigentlichen Thema ab.
Da die Größe (x, y) des Bildes das gecaptured wird nicht unbeding in der AVI genau so groß sein soll wie die Desktopauflösung frage ich mich schon die ganze Zeit ob es was bringen würde, wenn man nach dem capturen das Bild sofort verkleinert und daduch doch eigentlich eine Menge MB einspaart. Ist aber wieder die Frage, wie lange dauert das verkleinern und wie wirkt sich das auf das capturen selber aus. Mittels StretchBlt halt. Eine Größe von 640x480 sollten wohl ausreichen.

Kann man die Bilder nicht wie Texturen in den Zwischenspeicher der Grafikkarte ähm zwischenspeichern und diese dann nach und nach wieder rausholen? Damit könnte man doch eine ganze Menge Zeit einspaaren und das system sollte damit doch genug Zeit haben den Stream zu speichern ohne das system allzusehr zu belasten.

Wer mehr weiß bitte melden !

Terra


perry5 - Fr 10.11.06 14:34

Zumindest bei DirectX ist auf der Grafikkarte imemr der aktuelle Bildshcirm gespeichert. Würde mich sehr wundern, wenn das biem normalen Desktop anders wäre. Man bräuchte halt nur ne Funktion das von der Grafikkarte zu bekommen. Aber wahrshceinlich müsste das sehr lowLevel sein, und wäre dann evlt. noch für alle Grafikkarten unterscheidlich aber theoretisch gehts.


Martok - Fr 10.11.06 15:52

user profile iconTerra hat folgendes geschrieben:

Ich habe bei mir im Downloadbereich mal das Programm, so wie es jetzt captured reingestellt. Zu finden hier: http://www.sro-toolbox.de/index.php?option=com_docman&task=cat_view&gid=33&Itemid=43&lang=de

Das mag jetzt zwar doof klingen, wie lädt man bei dir was runter? Leider kein Link auf der Seite gefunden, nur zum Forum...
user profile iconTerra hat folgendes geschrieben:

Da die Größe (x, y) des Bildes das gecaptured wird nicht unbeding in der AVI genau so groß sein soll wie die Desktopauflösung frage ich mich schon die ganze Zeit ob es was bringen würde, wenn man nach dem capturen das Bild sofort verkleinert und daduch doch eigentlich eine Menge MB einspaart. Ist aber wieder die Frage, wie lange dauert das verkleinern und wie wirkt sich das auf das capturen selber aus. Mittels StretchBlt halt. Eine Größe von 640x480 sollten wohl ausreichen.

Auch das hatte ich versucht ;)
Mit einer aufs halbieren hochoptimierten Funktion immer noch zu langsam, StretchBlt ist nochmal viel langsamer.
Die Daten werden zwar weniger, aber selbst 0.1s pro Frame fürs Verkleinern sind zu langsam.


Delete - Fr 10.11.06 20:24

sag mal terra, wieso willst du 64 bilder je sekunde auf deine festplatte bannen, wenn das menschliche auge bie unter 24 bilder je sekunde das ganze als verwacklungsfreien film sieht? ..... wenn schon denk ich, kannst du dann mit der auflösung (pixel) und / oder der farbauflösung, sehr zurückschrauben...

versuch es doch mal in dieser richtung <HTH>


GTA-Place - Fr 10.11.06 21:17

user profile iconMartok hat folgendes geschrieben:
user profile iconTerra hat folgendes geschrieben:

Ich habe bei mir im Downloadbereich mal das Programm, so wie es jetzt captured reingestellt. Zu finden hier: http://www.sro-toolbox.de/index.php?option=com_docman&task=cat_view&gid=33&Itemid=43&lang=de

Das mag jetzt zwar doof klingen, wie lädt man bei dir was runter? Leider kein Link auf der Seite gefunden, nur zum Forum...

Genau das selbe habe ich mich auch gefragt.


Delete - Sa 11.11.06 15:35

3589 registriert.


Naja, willst Du jetzt die Registrationen auf 10000 pushen - oder was!?


Christian S. - Sa 11.11.06 22:39

Hallo!

@Terra: Bitte finde eine andere Download-Möglichkeit. Wieso hängst Du das Programm nicht einfach hier im Forum an Deinen Beitrag an?

@all: Bitte keine weitere Diskussion um Terras Link. Das ist nicht Thema dieses Threads!

@Hathor: Das ist nicht der Tonfall, den wir hier im Forum haben wollen! :mahn:

Grüße
Christian


Delete - So 12.11.06 13:55

Die Google-Suche ergibt 13.400 Fundstellen für "Desktop-Capture Funktion".
Warum sollte also jemand kurz vor Einführung von HD-DVD und BLURAY ein Programm erstellen, das geeignet ist, kopiergeschütztes Material, das den Weg zum Bildschirm gefunden hat, digital neu abzuspeichern?
Dass man den Ton parallel dazu auch abspeichert, setze ich mal voraus - aber dafür gibt es ja auch
schon genug Möglichkeiten...
Ich bin nicht bereit, mich irgendwo zu registrieren (der DL setzt das voraus), wenn ich damit rechnen muss, dass der Staatsanwalt ihm (Terra) bald die Türe einrennt.

Natürlich wüsste ich auch gerne, ob ich eigentlich die Hardware hätte, die die "Desktop-Capture
Funktion to AVI" nutzen kann...

Übrigens: MS wird HD-DVD unterstützen, aber BLURAY wird wahrscheinlich für die Wiedergabe kopiergeschützten Materials nicht im PC funktionieren (Grund: siehe oben!!!).


Martok - So 12.11.06 15:24

Aha. Sehr nett. Grüße auch an die armen Leute, die Trainingsvideos erstellen müssen. Auch schöne Grüße an Gamer, die ihre Aktionen aufnehmen wollen.

Achso, nochwas: ich nehm das jetzt mal persönlich, aus obengenannten Gründen.

Keine Grüße,
Martok

PS: sag das mal den Fraps, Camstudio, Camtasia usw. Entwicklern, dass die ihre Produkte nur zum Video abfilmen machen.
Mal davon abgesehen, das sich das jeder technischen Grundlage entzieht. Viedeo-Overlays kann man nicht abfilmen!!! Besonders die nicht, die für die Schutzkette von Bluray und HDDVD benutzt werden, da die selbs im Graka-Speicher verschlüsselt liegen.

PPS@Admins: haben wir sowas wie ein Killfile?


Christian S. - So 12.11.06 15:26

Könnten bitte mal die Leute, die nichts zum Thema zu sagen haben, einfach mal gar nichts schreiben? So langsam reicht's mir hier!


Quake User - So 12.11.06 18:30

user profile iconChristian S. hat folgendes geschrieben:
Könnten bitte mal die Leute, die nichts zum Thema zu sagen haben, einfach mal gar nichts schreiben? So langsam reicht's mir hier!


Ok, dann sage ich mal was dazu
1. wie speicherst Du momentan die Daten?
2. wie realisierst Du die Desktop-Capture Funktion?
3. muss die FPS Rate statisch sein?
4. was willst Du mit den gespeicherten Daten tun?

Ohne Infos zu den o.g. Fragen kann man Dir keinen Ratschlag geben.


Terra - So 12.11.06 19:54

Soooooorrrrryyyyy .... habe kein Internet zu Hause und kann nicht täglich hier reinschauen.
Leider wurde bei uns rumgefuscht und somit die Downloads zerstört.

Und nein, ich versuche nix hochzupushen !

Zitat:
sag mal terra, wieso willst du 64 bilder je sekunde auf deine festplatte bannen

Ich möchte nicht 64 Bilder/sek auf platte speichern sondern ich möchte eine Menge Reserven haben, wenn das Video OnFly noch komprimiert werden soll. Sprich mit DivX oder anderen Filtern. Dadurch geht, wie jeder weiß die Framerate in den Keller. Und da niemand gerne bereit ist eine AVI (unkomprimiert) aufzunehmen sollten paar Frames mehr schon zur verfügung stehen.

Die Funktion soll einfach nur das grade zu sehende Desktop-Bild aufnehmen und abspeichern. In unserem Fall das Bild des Spielescreens. Bitte jetzt nicht kommen und sagen, ich solle nur das Fenster aufnehmen, das zusehen ist. (Sprich den Spielescreen). Es soll ja nicht NUR dieser Screen aufgenommen werden können.

Zitat:
Ok, dann sage ich mal was dazu
1. wie speicherst Du momentan die Daten?
2. wie realisierst Du die Desktop-Capture Funktion?
3. muss die FPS Rate statisch sein?
4. was willst Du mit den gespeicherten Daten tun?

Zu 1) Speichern tuh ich noch garnix weil ich nicht weiß, wie ich eine vernünftige Speicherroutine zusammenbekomme ... darum auch der Theard hier.

Zu 2) z.Z. noch ganz einfach über BitBlt(bm.Canvas.Handle,0,0,Width,Height,Dc,x,y,SRCCOPY);

Zu 3) das ist egal, solang am ende ein Ruckefreies Bild auf der Platte liegt ist da freier Handlungsspielraum.

Zu 4) Es soll eine Aufnahmefunktion für unsere Community werden, die in einem Hauptprogramm implementiert ist. Für ein Spiel Namens Silkroad Online. Das war eine Idee von unseren Communityleuten sowas mit in die Toolbox zu bauen. Daher hab ich mich mal unwissent dranngemacht :-)



Wann zum Kuckuck habe ich jemals geschrieben, das ich hier HD-DVD oder BlueRay mit dem Programm aufnehmen will? Ich finde solche Gerüchte im Umlauf zu bringen zum Kotzen, echt ! Mit HDDVD oder so wird die funktion rein garnichts zu tun haben. Die Funktion muss nichtmal den Ton aufnehmen müssen !

Und hier nochmal die Datei im Anhang ... hatte an das garnicht gedacht.

Danke,

Terra


GTA-Place - So 12.11.06 20:03

Mit und ohne Vorschau 64 Frames (ATI Radeon 9600 Pro), aber probier mal die Anzeige "Timer Clicks" nicht andauernd zu aktualisieren, das kostet Zeit.


Terra - So 12.11.06 20:12

Hmmm .... ich arbeite mit 2 Timern da ich nicht weiß, wie man eine ordentliche FPS-Abfrage erstellt ... ein Timer tickt alle 1 Sekunde und dieser Fragt jede Sekunde nach den vergangenden Bildern nach ... so ergibt sich dann halt die Framerate ... Möglich natürlich das dieses totaler humbug ist und ich schon genug Frames habe aber hab selbst bemerkt ab 20 -15 Frames fängt die Vorschau auch an zu ruckeln .. also so verkehrt kanns net sein ^^

Die Vorschau ist eigentlich auch nur dafür da um zu sehen ob überhaupt was geht. Solang die Vorschau aktiv ist soll auch nichts aufgenommen werden.

Bei der Aufnahme soll der reine Stream aufgenommen werden (ohne Anzeige und FPS analyse - unter anderem soll gleichzeitig halt ein Komprimierfilter dazwischen sein)

Terra


Martok - So 12.11.06 23:14

Ohne Vorschau 100, mit 20 FPS
Mit Kompression...reden wir nicht drüber^^

System: Sempron 3000, Win2k, Geforce 5900XT, 1GB Ram, keine anderen Programme laufen.


Phantom1 - So 12.11.06 23:57

Ohne Vorschau 64 und mit Vorschau habe ich auch 64 FPS
Mit Kompression sind es 4 FPS

Auch wenn ich das Programm im Vollbild laufen lasse (1920x1200) habe ich mit Vorschau 64 FPS.

System: Ahtlon64 X2 4600+, 2 GB RAM, RadeonX1800XT, WinXPsp2


Tilo - So 12.11.06 23:59

Also, bei mir sie es auch nicht rostig aus, mit Kompression kein 10FPS.
Mein System 1,66Ghz Doppelkern(was mich ankerken lässt: Das Programm beanschlag oft nue eine Hälfte),
1GB ram, Geforce 7300Go.

Zu errechnung der FPS, nach jeden Bild die Systemzeit merken, und die Differenz zur letzten Zeit bildenDas ist dann die Zeit für ein Bild. Das Reziproke ist dann Bild je Zeiteinheit, noch umrechnen und Du hast die FPS, da wird kein Timer benötig.
Wie verfährst Du bei der Kompresion? Jedes Bild für sich, oder mit Differenzbilder?


Terra - Mo 13.11.06 12:57

@Tilo:
Ich habe zwar kein Wort verstanden aber ich bin froh, das du dich hier mit einklingst ^^

Also bei der kompression hab ich ne Vorlage genommen ... ähm mom... ok habs.
naja, es handelt sich dabei nicht um eine echte kompression sondern nur eine funktion die BMP in JPG wandelt.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure BMPtoJPGStream(const Bitmap : TBitmap; var AStream: TMemoryStream);
var
  JpegImg: TJpegImage;
begin
   JpegImg := TJpegImage.Create;
   try
    JpegImg.CompressionQuality := 50;
    JpegImg.PixelFormat := jf8Bit;
    JpegImg.Assign(Bitmap);
    JpegImg.SaveToStream(AStream);
    Application.ProcessMessages;
   finally
    JpegImg.Free
   end;
end;


Net erschlagen ... war ja nur mal nen Test. kompression war wohl das falsche Wort in der Form ^^

Terra


Narses - Mo 13.11.06 13:23

Moin!

Kompression ist schon korrekt, aber JPEG ist für StillImage optimiert (also für Fotos). ;)

Du solltest bei Video dann schon auf MJPEG (Motion-JPEG) setzen, sonst wird das eh nix, weil bei Standbildern ja der Zeitfaktor egal ist.

Zugegeben: wie man einen MJPEG-Codec unter Delphi ans Laufen kriegt, kann ich dir auch nicht aus dem Handgelenk schütteln, aber das ist jedenfalls die Richtung. ;) (abgesehen davon, dass man erstmal einen mjpeg-Codec für Delphi oder einen passenden Wrapper HABEN muss :?)

cu
Narses


Tilo - Mo 13.11.06 14:28

Zur Info erst diese Seite [http://www.gup.jku.at/~tkoeck/Magisterarbeit_html/node14.html]

Das ganze Problem an der Sache ist wie user profile iconNarses angedeutet hat, das OpenSource Codecs leider für C/C++ sind.

Mal eine ganz blöde Idee:
Wie wäre es mit einen eigenen rudimentären "Codec"?
:flehan: bitte nicht hauen :flehan:
:flehan::flehan::flehan::flehan::flehan::flehan:


Terra - Mo 13.11.06 15:34

Also MJPEG war wohl das Stichwort, das ich gebraucht habe. Habe jetzt einen Artikel gefunden wo ein bissel beschrieben ist, wie MJPEG arbeitet. Damit sollte sich was anfangen lassen.

https://sourceforge.net/docman/display_doc.php?docid=3456&group_id=5776

Terra


Quake User - Di 14.11.06 10:32

user profile iconTerra hat folgendes geschrieben:
Soooooorrrrryyyyy .... habe kein Internet zu Hause und kann nicht täglich hier reinschauen.
Leider wurde bei uns rumgefuscht und somit die Downloads zerstört.
...
Zu 1) Speichern tuh ich noch garnix weil ich nicht weiß, wie ich eine vernünftige Speicherroutine zusammenbekomme ... darum auch der Theard hier.
Zu 2) z.Z. noch ganz einfach über BitBlt(bm.Canvas.Handle,0,0,Width,Height,Dc,x,y,SRCCOPY);
Zu 3) das ist egal, solang am ende ein Ruckefreies Bild auf der Platte liegt ist da freier Handlungsspielraum.
Zu 4) Es soll eine Aufnahmefunktion für unsere Community werden, die in einem Hauptprogramm implementiert ist. Für ein Spiel Namens Silkroad Online. Das war eine Idee von unseren Communityleuten sowas mit in die Toolbox zu bauen. Daher hab ich mich mal unwissent dranngemacht :-)

Wann zum Kuckuck habe ich jemals geschrieben, das ich hier HD-DVD oder BlueRay mit dem Programm aufnehmen will? Ich finde solche Gerüchte im Umlauf zu bringen zum Kotzen, echt ! Mit HDDVD oder so wird die funktion rein garnichts zu tun haben. Die Funktion muss nichtmal den Ton aufnehmen müssen !
...


Dein Ton ist einem Forum nicht angemessen

zu 1. Du solltest erst mal Deine Idee anbieten und erklären warum diese schlecht ist. Dann kann man Dir auch Verbesserungsvorschläge geben.
Also bspw. könntest Du die Bilder in einem (oder mehreren) Memory Stream speichern und dann auf deine Platte schreiben.
Sollte das nicht funktionieren, erkläre warum.


Terra - Mi 15.11.06 12:39

user profile iconQuake User hat folgendes geschrieben:
user profile iconTerra hat folgendes geschrieben:
Soooooorrrrryyyyy .... habe kein Internet zu Hause und kann nicht täglich hier reinschauen.
...


Dein Ton ist einem Forum nicht angemessen

zu 1. Du solltest erst mal Deine Idee anbieten und erklären warum diese schlecht ist. Dann kann man Dir auch Verbesserungsvorschläge geben.
Also bspw. könntest Du die Bilder in einem (oder mehreren) Memory Stream speichern und dann auf deine Platte schreiben.
Sollte das nicht funktionieren, erkläre warum.


Mein Ton ist nicht angemessen ????? Wenn sich das auf jenes bezieht, was ich zuletzt geschrieben habe solltest du vielleicht mal schauen wer damit angefangen hat. Ich habe nur was klargestellt.

zu deinem 1.) OK, da hast du Recht. Ich habs einfach vergessen. Mich hat aber auch niemand darauf hingewiesen.
Wie auch immer, ich habe eine Lösung für mein Problem gefunden. Speichern kann ich jetzt und das sogar mit MJPEG Komprimierung. Und alles bei minimalster Rechnerauslastung.

Bin ich gut oder bin ich gut ??

Jetzt kommt nur noch das "Feintuning" und fertig ist meine Desktop-Capture Funktion.

Terra


Narses - Mi 15.11.06 12:42

Moin!

Stell doch mal deinen Ansatz hier vor. ;) So haben alle was davon.

cu
Narses


Quake User - Do 16.11.06 00:50

user profile iconNarses hat folgendes geschrieben:
Moin!

Stell doch mal deinen Ansatz hier vor. ;) So haben alle was davon.

cu
Narses


Das würde ich auch vorschlagen - wir haben uns Zeit genommen und können wir ggf. auch was lernen.


NCortex - Fr 17.11.06 19:02

also das Programm arbeitet schon echt kurios.....

ich hab mit vorschau 100Bilder ohne 99-100 Bilde mit Kompression weniger als 5.

System: Laptop mit 1.7 Centrino 512Mb ram 447 aktuell ohne Programm belegt. GK: ATi 9700 mobile


Was ich komisch finde ist, dass die Werte so "konstant" sind. Ich glaube eher du berechnest die falsch.
normalerweise müsste sowas doch viel mehr schwanken oder?


Delete - Sa 18.11.06 14:12

user profile iconNarses hat folgendes geschrieben:
Moin!

Stell doch mal deinen Ansatz hier vor. ;) So haben alle was davon.

cu
Narses


Ich glaube nicht, dass von Terra noch was Sinnvolles kommt - dieses Topic war von Anfang an vermurkst mit dem sonderbaren DL-Link.


Terra - Sa 18.11.06 19:57

Nu mal keine Stress machen .... bevor ich hier was reinstelle möchte ich erst noch einige Fehler bereinigen.

Beim DL Link hab ich mich nur vertan .. war bestimmt keine Absicht.
Lasst mir doch auch mal Zeit. Ich kann nicht hexen.

Terra


VaNaTiC - So 19.11.06 19:56

Um nochmal auf das Thema VNC zurückzukommen. UltraVNC ist deshalb so performant (vorallem wenn das fernzusteuernde System sowieso schon zu arbeiten hat), weil es einen Virtuellen Grafikkartentreiber ins System hängt, der VNC direkt mitteilt, welche Bildschirmbereiche sich geändert haben. Dadurch verringert sich der wegzuspeichernde Bildanteil drastisch, da Du ja sozusagen im Vorgängerbild nur einen bestimmten Bereich nachführen musst.

Eine weitere Variante ist die Farbtiefe zu reduzieren (siehe auch bei VNC), denn jede Kompression erfordert Rechenleistung. Ich hab keine Ahnung wie FRAPS das macht, aber es gibt normalerweise kein MAGIC-CODE :D


VaNaTiC - So 19.11.06 20:06

Schau mal hier im Forum hat jemand einen Thread [http://www.delphi-forum.de/viewtopic.php?t=66661&start=0&postdays=0&postorder=asc&highlight=Mirror%20Video%20Driver] zum Mirror-Video-Driver [http://www.demoforge.com/dfmirage.htm] gestartet


Aya - Mo 20.11.06 03:22

user profile iconVaNaTiC hat folgendes geschrieben:
Eine weitere Variante ist die Farbtiefe zu reduzieren (siehe auch bei VNC), denn jede Kompression erfordert Rechenleistung. Ich hab keine Ahnung wie FRAPS das macht, aber es gibt normalerweise kein MAGIC-CODE :D

FRAPS hat soweit ich weiß einen eigenen Codec, welcher speziell dafür geschrieben wurde (und wer weiß, evtl lässt FRAPS das ganze ja von der GPU statt der CPU berechnen?).

Aya~


LLCoolDave - Mo 20.11.06 14:50

user profile iconAya hat folgendes geschrieben:
user profile iconVaNaTiC hat folgendes geschrieben:
Eine weitere Variante ist die Farbtiefe zu reduzieren (siehe auch bei VNC), denn jede Kompression erfordert Rechenleistung. Ich hab keine Ahnung wie FRAPS das macht, aber es gibt normalerweise kein MAGIC-CODE :D

FRAPS hat soweit ich weiß einen eigenen Codec, welcher speziell dafür geschrieben wurde (und wer weiß, evtl lässt FRAPS das ganze ja von der GPU statt der CPU berechnen?).

Aya~


Meiner Meinung nach ist bei den Bereichen, für die FRAPS gedacht ist, die GPU weit mehr ausgelastet als die CPU. ;)