Einzelnen Beitrag anzeigen

Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#3

Re: AviWriter_2 SetCompression('XVID');

  Alt 11. Jul 2008, 10:58
Ich hoffe das hält niemand für spamen aber ich dokumentiere hier wenigstens meine Erkenntnisse.

Es scheint so zu sein, als könne man die AviWriter_2 komponente nicht aus einem Thread benutzen.
Zumindestens bin ich durch probieren zu dem schluss gekommen.

Delphi-Quellcode:
unit Unit3;
interface
uses
  AviWriter_2, Classes, Graphics, SysUtils;

procedure startThread;

type
TThStream = class(TThread)
  private
  protected
    procedure Execute; override;
  end;

var
   THrunning : boolean;
   ThStream : TThStream;

implementation

procedure TThStream.Execute;
var
    aviwriter3 : TAviWriter_2;
    i : integer;
    bm : TBitmap;
begin
     THRunning := true;
     aviwriter3 := TAviWriter_2.Create(nil);

     AviWriter3.SetCompressionQuality(8000);
     AviWriter3.SetCompression('XVID');
     AviWriter3.filename := 'mymove2.avi';
     with AviWriter3 do
     begin
          Width := 400;
          Height := 300;
          FrameTime := 500;
          Stretch := true;
          OnTheFlyCompression:=true;
     end;
     AviWriter3.InitVideo;

     for i := 1 to 10 do
     begin
          bm := TBitmap.Create;
          try
             bm.LoadFromFile('jpg\' + inttostr(i) + '.bmp');
             AviWriter3.AddFrame(bm);
          finally
          bm.Free;
          end;
     end;
     AviWriter3.FinalizeVideo;
     AviWriter3.WriteAvi;
     end;

procedure startThread;
begin
     ThStream := TThStream.Create(False);
     ThStream.FreeOnTerminate := True;
end;
end.
Damit bin ich mit der Komponente endgültig in einer Sackgasse gelandet und sie ist für mich unbrauchbar.
Einzige alternative scheint momentan DSPack zu sein und sich da einzulesen ist Stress pur.
Hoffe jemand mit Erfahrung gibt noch kommentare dazu.

lg
Arnulf
  Mit Zitat antworten Zitat