AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Schnellere Alternative zu Avisynth/Vfw möglich?

Schnellere Alternative zu Avisynth/Vfw möglich?

Ein Thema von Garfield · begonnen am 29. Okt 2005 · letzter Beitrag vom 29. Apr 2006
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#1

Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 29. Okt 2005, 17:40
Hallo,

für einen Bekannten habe ich ein Tool erstellt, welches einen Player auf Grundlage dieses Tipps aus dem Swiss Delphi Center zur Wiedergabe von AviSynth-Scripten enthält.

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.
Angehängte Dateien
Dateityp: 7z source_611.7z (33,6 KB, 43x aufgerufen)
Dateityp: 7z executable_125.7z (176,9 KB, 35x aufgerufen)
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 30. Okt 2005, 16:37
Bei http://forum.gleitz.info/ habe ich die angehängte Unit gefunden, mit welcher ich aber nicht zurechtkomme.
Angehängte Dateien
Dateityp: pas avisynth_c_156.pas (23,1 KB, 28x aufgerufen)
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 30. Okt 2005, 19:59
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.
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 11. Nov 2005, 11:29
Habe wohl wieder ein zu spezielles Thema erwischt. Viele werden den TMediaPlayer oder das DSPack verwenden. Ist hier allerdings nicht das richtige. Auf http://aquaplaning.20m.com/ gibt es das Programm AVSCompare mit AVSWrap.DLL. Dies wäre schon das richtige, nur ist die DLL fehlerhaft. Das heißt, das schnelle Abrufen aufeinanderfolgender Frames ist nur von Position 0 an möglich. Bei anderen Positionen bekommt man nur das Frame an dieser Position. Ausserdem bleibt die Wiedergabe nach einer Weile einfach stehen.
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 13. Nov 2005, 01:06
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.
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 16. Nov 2005, 00:35
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.
Angehängte Dateien
Dateityp: 7z korrigiertes_projekt_160.7z (210,4 KB, 40x aufgerufen)
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 19. Nov 2005, 15:59
Die Bremse liegt im wesentlichen in der Verwendung des TImage. Gibt es dazu eine schnellere Alternative?
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 20. Nov 2005, 01:08
Mh, für diese Anwendung evtl. sowieso eine TPaintbox nehmen statt eines Images, oder schau dir mal die Graphics32 Komponenten an ( www.g32.org ), dort gibt es auch ein verbessertes TImage (TImage32) und eine Paintbox. Evtl. hilft das ja schon.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 20. Nov 2005, 01:38
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:
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;
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.
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.333 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Schnellere Alternative zu Avisynth/Vfw möglich?

  Alt 20. Nov 2005, 12:16
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?
Gruss Garfield
TuxedoOS: Laz2.0.6/FPC3.0.4 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf