Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TBitmaps2Video (https://www.delphipraxis.net/205039-tbitmaps2video.html)

grizzly 11. Aug 2020 11:40

AW: TBitmaps2Video
 
Hallo!

Das ist ein tolles Projekt, das hätte ich schon viel früher brauchen können! :thumb:

Da Du Dich mit der Schnittstelle ja schon länger beschäftigt hast: Gibt es da wohl eine einfache Chance, statt ein Video mit "Create" neu zu erstellen, ein bestehendes zu öffnen (und alle Parameter wie Größe und Codec von dort einzulesen), und da dann Frames dranzuhängen?
Ich weiß, alternativ kann man das alte Video natürlich öffnen, alle Frames entpacken, in ein neues Video kopieren und dann die neuen Frames dranhängen - aber man ist ja bequem :wink:


Gruß
Michael

Renate Schaaf 11. Aug 2020 12:30

AW: TBitmaps2Video
 
@grizzly Danke!

Zitat:

Gibt es da wohl eine einfache Chance, statt ein Video mit "Create" neu zu erstellen, ein bestehendes zu öffnen (und alle Parameter wie Größe und Codec von dort einzulesen), und da dann Frames dranzuhängen?
Geht. Das erste Video bestimmt dann alles, die Bitmaps werden passend dazu komprimiert. Nur wie sag ichs dem user? :)

Constructor CreateFromVideo?

müsste verständlich sein. Aber was soll mit dem Audio im ersten Video passieren, einfach drin lassen? Erstmal ignorieren denke ich.

@Turbomagic Du hast sicher den neuen upload TinyMJpeg schon angeguckt, ich kann im Moment nichts testen, aber das sieht doch genauso aus wie das, was du brauchst.

Gruß, Renate

grizzly 11. Aug 2020 13:25

AW: TBitmaps2Video
 
Ha, Audio, das war Luxus an den ich gar nicht gedacht habe. :oops:

Mit dem Anhängen an ein bestehendes Video hat man halt die Möglichkeit, das Rendern mal zu unterbrechen und zu einem späteren Zeitpunkt fortzusetzen. Mit meinen selbstgestrickten Billiglösungen muss ich immer alle Bitmaps aufbewahren, bis ich endlich das finale Video in einem Rutsch zusammensetzen kann. (Und in meinem Fall nur MJPEG, das ist nicht so berauschend von der Qualität)

Aber natürlich: Je mehr Features, desto komplizierter wird wieder alles. :wink:

Ach, da fällt mir noch was ein: Wenn ich diese Klasse schon verwende, um die Videos zu schreiben, könnte man da auch gleich Frames aus dem Video auslesen? "GetFrame(42)". Wobei das vermutlich nicht ganz trivial ist, weil die Liste mit den Indizes (wo welches Bild zu finden ist) erst am Ende geschrieben wird. Da könnte man höchstens die schon bestehenden Frames auslesen wenn man Bilder an ein bestehendes Video anhängt. Vergiß es... Am Schluß wird die schöne kleine Klasse zum VollFeatureVideoEditingTool das man nicht mehr versteht...

Viele Grüße
Michael

Klitzekleinigkeit am Rande: In UBitmaps2Video.pas, Zeile 239, musste ich ein F hinter dem Rect einfügen.
Delphi-Quellcode:
    ZoomResampleTripleOnly(bm, am, RectF(0, 0, bm.Width, bm.Height), 1.8);

Renate Schaaf 11. Aug 2020 13:45

AW: TBitmaps2Video
 
Zitat:

GetFrame(42)
Habe ich schon als utility, aber nur für ein fertiges Video, um ein Thumbnail zu erstellen, oder den ersten frame etwas länger zu zeigen bevor ein eingefügtes Video startet. Es wird Zeit, dass ich das Projekt veröffentliche.

Danke für das RectF, das ist bei mir overloaded.

Gruß, Renate

TurboMagic 12. Aug 2020 19:23

AW: TBitmaps2Video
 
Danke Renate für deine Bibliothek und dein Beispielprojekt.
Wir haben heute begonnen es auszuprobieren um dann mit dem Wissen unser eigenes minimaloistisches Win32 FMX Programm zu erstellen,
welches wir danach nach ANdroid portieren wollen.

Zu deinem Projekt (außer dem Einstellen als Open Source ;-) ) noch ein weiterer Tipp:
Irgendwo baust du dir Pfad und Dateiname mittels + und '\dateiname.wasauchimmer' zusammen.
Schau dir mal TPath.Combine aus IOUtils der RTL an, das funktioniert sogar crossplattform
kompatibel und wäre der modernere Weg.

Für das Projekt braucht man ja die DLLs (oder .so's) von der Delphi ffmpeg Webseite.
Das mit der Lizenz hab' ich nicht 100% verstanden. Ich interpretiere es aber so, dass die API
header Übersetzung frei ist, die DLLs auch (GPL oder LGPL Variante) und nur derein eigene
darauf aufbauende Bibliothek einer kommerziellen Lizenz unterliegt. Richtig?

Grüße

TurboMagic

Renate Schaaf 12. Aug 2020 22:47

AW: TBitmaps2Video
 
Liste der Anhänge anzeigen (Anzahl: 1)
@Turbomagic

Ich habs doch grad fertig!

Compiliert für Android und Win32 (anderes nicht getestet), demo läuft unter Windows, Android kann ich nicht testen.

Ich habe extra für dich eine Prozedur eingefügt:
Delphi-Quellcode:
AddColorFrame(Color: TBGR)
TBGR=record
Blue: byte;
Green: byte;
Red: byte;
end;
Jetzt kannst du dir den Weg über die Bitmap sparen, das ist viel schneller. (Bitmap hab ich nicht mal getestet...)

Ich habe ein neues Header-file gefunden, ist im Ordner FFMPEGHeader (zum searchpath hinzufügen), und ist für alle dlls.
Die Android-Library habe ich nicht dazugepackt, wurde zu groß.

Das mit der Lizenz verstehe ich so wie du. Aber guck mal hier: https://github.com/PassByYou888/FFMPEG-Headerhttp://, da gibt es alles nochmal, und da hab ich das neue header-file her.

So, dann werde ich mir morgen mal GitHub zu Gemüte führen. Es wird dann erstmal eine Win32-Version mit mehr features geben, und eine Cross-Platform-Version. Ohne dich hätte ich mich nie an das fmx-Zeug gemacht.

Gruß Renate

TurboMagic 13. Aug 2020 13:48

AW: TBitmaps2Video
 
Hallo,

wir versuchen gerade deine Demo zu testen,
bekommen aber sofort beim Starten eine Zugriffsverletzung.
Nur bevor die erste Zeile im FormCreate erreicht wird.

Die DLLs habe ich aus dem funktionierenden VCL Projekt
in den Ordner mit der erzeugten exe-Datei kopiert.

Delphi Version ist 10.2 Update 3.

Hat jemand eine Idee?

Grüße
TurboMagic

TurboMagic 13. Aug 2020 14:08

AW: TBitmaps2Video
 
Ok, inzwischen eines gelernt:

FFMpeg aus deinem neuen FMX Beispiel will ältere DLLs als die,
die wir von der VCLFFMPEG Seite geladen haben.
Da stimmt die Version im Dateinamen der DLLs nicht,

Aber auch das äkltere auf der VCLFFMPEG Seite gelistete Paket hat
DLLs mit den neuen Namen...

TurboMagic 13. Aug 2020 14:28

AW: TBitmaps2Video
 
Ok, haben die FFMPAG Pascal Umsetzung auf Github gefunden und dort sind auch passende DLLs vorhanden.
Läuft jetzt also! Danke!

Renate Schaaf 13. Aug 2020 15:31

AW: TBitmaps2Video
 
Gut. Werde mir die Versionen noch mal genau angucken müssen. Ich hatte Probleme mit PAnsiChar und den anderen headers.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Seite 3 von 6     123 45     Letzte »    

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