![]() |
Schnellere Alternative zu Avisynth/Vfw möglich?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
für einen Bekannten habe ich ein Tool erstellt, welches einen Player auf Grundlage ![]() Beim Test hat er festgestellt, dass es beim Scrollen mit den Cursortasten (Links = zurück, Rechts = vor) ab und zu zu Stillständen kommt, während es in VirtualDubMod flüssiger funktioniert. Nun stellt sich die Frage, ob mein Player beschleunigt werden kann? Zum Beispiel, indem man die einzelnen Frames nicht über Vfw sondern direkt von der AviSynth.Dll abfordert. Ich weiß allerdings nicht wie. Im Anhang ist das Tool (reduziert auf den Player) als Source und kompiliert. Ich arbeite mit Delphi 7 Personal Edition. Anmerkung, damit niemand schreibt: "Dann nimm doch VDM": Es werden mehrere Tools für die Bearbeitung des AviSynth-Scriptes benötigt, deren benötigte Funktionen in dem Tool vereint werden. |
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Liste der Anhänge anzeigen (Anzahl: 1)
Bei
![]() |
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Leider konnte mir in der kurzen Zeit noch niemand helfen. Ich bitte ich um Verständnis, dass ich erst in 12 Tagen wieder vorbeischauen kann, da ich auf Montage gehe und mir dort kein Internetanschluss zur Verfügung steht.
|
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Habe wohl wieder ein zu spezielles Thema erwischt. Viele werden den TMediaPlayer oder das DSPack verwenden. Ist hier allerdings nicht das richtige. Auf
![]() |
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Für Programmierforen wie unseres scheint diese Frage zu speziell zu sein. Das ist wohl auch der Grund dafür, dass bei Doom9.org und Gleitz.info Unterforen für Softwareentwicklung eingerichtet wurden. Da wird nun auch an der Lösung meines Problemes gearbeitet.
|
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Liste der Anhänge anzeigen (Anzahl: 1)
In der obigen Source ist leider ein Fehler enthalten. Wenn man die Cursortasten drückt, wird zwar die Position der Trackbar verändert, aber es wird kein Frame geholt. Unten ist das korrigierte Projekt.
Ausserdem wird die Position der Trackbar erst geändert, wenn das Bild neu gezeichnet wurde. |
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Die Bremse liegt im wesentlichen in der Verwendung des TImage. Gibt es dazu eine schnellere Alternative?
|
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Mh, für diese Anwendung evtl. sowieso eine TPaintbox nehmen statt eines Images, oder schau dir mal die Graphics32 Komponenten an (
![]() |
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
An eine TPaintBox habe ich auch schon gedacht. Ich weiß nur nicht wie ich das hinbekomme, weil ich am Ende doch nur ein Handle eines TBitmaps habe.
Delphi-Quellcode:
In der Regel sind die Frames 32Bit und die Source ein AviSynth-Script. Ich werde mir die Graphics32 sofort ansehen, vielleicht bekomme ich damit hin. Wenn Beispiele dabei sollte es auf jeden Fall gehen.
procedure Tfrm_Haupt.HoleImage(FrameNumber: Integer; ABitmap: TBitmap);
begin GetFrame := AVIStreamGetFrameOpen(AVIStream, nil); BitmapInfoHeader := AVIStreamGetFrame(GetFrame, FrameNumber); bits := Pointer(Integer(BitmapInfoHeader) + SizeOf(TBitmapInfoHeader)); DC_Handle := CreateDC('Display', nil, nil, nil); try hBmp := CreateDIBitmap( DC_Handle, BitmapInfoHeader^, CBM_INIT, bits, PBITMAPINFO(BitmapInfoHeader)^, DIB_RGB_COLORS); finally DeleteDC(DC_Handle); end; ABitmap.Handle := hBmp; AVIStreamGetFrameClose(GetFrame); end; |
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
Das TImage32 scheitert daran, dass das Handle Property ist. Das Handle des Bitmap kann ihm nicht zugewiesen werden. An sonsten kann man mit den Graphics32 interessante Sachen machen.
Nachtrag: Bildgröße und Farbtiefe sind bekannt. Kann man das Bild nicht direkt auf das Panel zeichnen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 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