![]() |
AviWriter_2 SetCompression('XVID');
Hallo
hat jemand erfahrung mit AviWriter componente? leider crasht er wenn ich SetCompression einstelle.
Delphi-Quellcode:
ohne option SetCompression('XVID') funktioniert es gut.
procedure InitAviOptions;
begin with fVideo.AviWriter do begin Width := 320; Height := 200; FrameTime := 40; Stretch := true; SetCompression('XVID'); // wenn ich das auskommentiere dann funktioniert es SetCompressionQuality(10000); PixelFormat := pf24bit; OnTheFlyCompression := true; InitVideo; end; end; Zitat:
Arnulf |
Re: AviWriter_2 SetCompression('XVID');
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab durch langes herumprobieren und einfügen in ein neues projekt rausgefunden, dass es sich scheinbar um ein problem mit meinen multimedia timer handelt ( timesetevent ).
wenn ich in einem externen projekt versuche videos zu kompremieren funktiniert es. wenn ich allerdings einen multimedia timer verwende, dann geht scheinbar gleich einiges schief. ich hab dazu ein kleines demo programm erstellt das nicht viel macht ausser aus bitmap avi erstellen. in form1 muss man von oben nach unten alle buttons durchklicken ( ist ein testprogramm ). in form2 wird der multimedia timer verwendet. die frage ist welchen grund das wohl hat? lg Arnulf |
Re: AviWriter_2 SetCompression('XVID');
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:
Damit bin ich mit der Komponente endgültig in einer Sackgasse gelandet und sie ist für mich unbrauchbar.
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. Einzige alternative scheint momentan DSPack zu sein und sich da einzulesen ist Stress pur. Hoffe jemand mit Erfahrung gibt noch kommentare dazu. lg Arnulf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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 by Thomas Breitkreuz