Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi von mehreren JPEG in MPEG (https://www.delphipraxis.net/55232-von-mehreren-jpeg-mpeg.html)

Christian18 18. Okt 2005 12:44


von mehreren JPEG in MPEG
 
Hallo,

ich habe mal eine Frage zu JPEG und MPEG. Kann ich aus mehreren JPEG Bilden ein kleines Video machen??? Also von mehreren JPEG Dateien in das MPEG Video Format konvertieren??? Oder gibt es auch noch eine andere möglichkeit ein Desktop Video zu machen??? Der jetzige stand ist:

- Ich mache 30 Bilder pro Sekunde, damit ich dann einen kleinen ruckelfreien Film habe.
- dann habe ich mir eine kleien routine geschrieben die 30 bilder in der sekunde aufruft. und somit den film abspielt. --> dies ist aber leider kein film sondern nur eine Diashow.

Gibt es da auch einen andere möglichkeit damit ich nur eine Datei pro film habe???

MFG Christian18

Phistev 18. Okt 2005 13:05

Re: von mehreren JPEG in MPEG
 
Es gibt Programme, die dir die Diashow als Video speichern (Nero 6 Reloaded und Nero 7 zum Beispiel)

igel457 18. Okt 2005 13:32

Re: von mehreren JPEG in MPEG
 
Zitat:

Gibt es da auch einen andere möglichkeit damit ich nur eine Datei pro film habe???
Jo!
Das ist eigentlich ganz einfach.
Du schreibst erst einmal deine ganzen Bilder in einen TFileStream.

Delphi-Quellcode:
var
  FS:TFileStream;
begin
  FS := TFileStream.Create(filename,fmOpenWrite);
  FS.Seek(soFromEnd,0);
  for i := 0 to bildercount-1 do
    mybild[i].savetostream(FS);
  FS.Free;
end;
So hättest du deine Bilder schon einmal in einer Datei.
Du kannst den Stream auch in OnFormCreate erzeugen und nur dann ein Bildhinzufügen wenn du es brauchst.

Um das ganze wieder zu lesen würde ich einen Timer verwenden.

Delphi-Quellcode:
var FS:TFileStream;

implementation

procedure FormCreate(Sender:TObject);
begin
.
.
  FS := TFileStream.Create(filename,fmOpenRead);
  FS.Seek(fmFromBeginning);
.
.
end;
Delphi-Quellcode:
procedure OnTimer(Sender:TObject);
begin
  image1.picture.bitmap.loadfromstream(fs);
end;
In FormDestroy nicht vergessen den Filestream zu löschen!

Ich weiß nicht ob das geht, ich rate dir mal die Online Hilfe zu Streams zur Hand zu nehmen.

BlackJack 18. Okt 2005 14:04

Re: von mehreren JPEG in MPEG
 
wenn du pech hast schreibt und liest der TFileStream die ganze zeit von der platte, d.h. dass jeder frame wieder von der platte gelesen werden muss etc. das ist mist da das 1. die platte bestimmt nicht so schön findet und 2. ist das auch noch ziemlich lahm.

ich würde dir auch zu konvertierungstools raten, oder ansonsten nimmst du ne TObjectList, packst dir da ganz viele TJPEG (oder wie die teile heissen) rein (für jeden frame eines), sodass du alle frames im RAM hast und von daher nacheinander anzeigen kannst. kommt aber auf die größe drauf an, weil wenn dein RAM voll ist und geswappt werden muss, dann hast du auch nichts davon ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz