Autor Beitrag
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: Mo 13.11.06 00: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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mo 13.11.06 00: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Mo 13.11.06 13: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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 13.11.06 14: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

_________________
There are 10 types of people - those who understand binary and those who don´t.
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mo 13.11.06 15:28 
Zur Info erst diese Seite

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Mo 13.11.06 16: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.

sourceforge.net/docm...56&group_id=5776

Terra
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Di 14.11.06 11: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Mi 15.11.06 13: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 15.11.06 13:42 
Moin!

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

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Do 16.11.06 01: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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 126

WIN 2000
D7 Enterprise
BeitragVerfasst: Fr 17.11.06 20: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?

_________________
"...by all means, do not use a hammer." (aus einer IBM Technikerdokumentation ca. 1920)
--->außer es kam von Microsoft<---
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 18.11.06 15: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Sa 18.11.06 20: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 19.11.06 20: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30



BeitragVerfasst: So 19.11.06 21:06 
Schau mal hier im Forum hat jemand einen Thread zum Mirror-Video-Driver gestartet
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mo 20.11.06 04: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~

_________________
Aya
I aim for my endless dreams and I know they will come true!
LLCoolDave
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win XP
Delphi 2005
BeitragVerfasst: Mo 20.11.06 15: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. ;)