AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Bitmaps2Video für Windows Media Foundation
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmaps2Video für Windows Media Foundation

Ein Thema von Renate Schaaf · begonnen am 27. Mai 2023 · letzter Beitrag vom 15. Aug 2023
Antwort Antwort
Seite 2 von 3     12 3      
Renate Schaaf
Registriert seit: 25. Jun 2020
Aktualisierung:

Eine erste Version des Projekts gibt es jetzt auf https://github.com/rmesch/Bitmaps2Vi...dia-Foundation.
Für Details siehe das Readme dort.

/Aktualisierung

In letzter Zeit habe ich an einem port von Bitmaps2Video von ffmpeg auf Windows Media Foundation gearbeitet, denn mir gefällt nicht, dass es diese ganzen Dlls benötigt.
Bevor ich das Resultat auf GitHub hochlade, möchte ich es gern hier vorstellen, da ich nur begrenzte Möglichkeiten zum Testen habe.
Außerdem hoffe ich, vielleicht ein paar Tips für noch bestehende Probleme zu bekommen (siehe unten). Die Dokumentation von WMF hat mich schon ein paar Mal an den Rand des Wahnsinns getrieben.

Was es tut:
Enkodiert eine Serie von Bitmaps als Video, wobei man als Benutzer nur Grundkenntnisse über Videos haben muss.
Kann 2 Sorten von Übergängen zwischen Bildern als Beispiel dafür, wie man mehr einbauen kann.
Unterstützt Dateiformate .mp4 mit Codecs H264 oder H265, oder .wmv mit Codec WMV3.
Benutzt die GPU zum Enkodieren, falls unterstützt, falls nicht, wird Software benutzt.
Benutzt parallele Routinen wann immer das Sinn macht.
Hat eine experimentelle Routine zum Einfügen von Audio (Muxer). Geht im Moment nur für H264 und WMV3.

Was es braucht:
VCL-basiert
Braucht die hervorragenden MF-headers von https://github.com/FactoryXCode/MfPack.
Den Ordner src von MFPack zum Bibliothekspfad hinzufügen, packages müssen nicht installiert werden.

Um alle features zu nutzen, braucht es Windows10 oder höher.
Delphi-Versionen: Braucht wahrscheinlich mindestens XE3, aber ich habe nur 11.3 zum Testen.

Probleme:
Ich bin nicht allzu angetan von der Enkodier-Qualität, liegt vielleicht an meiner nVidia-Karte.
Der Audio-Muxer müsste eigentlich auch für H265 funktionieren, denn es geht, wenn ich ffmpeg für's muxen nehme.
Ich habe bis jetzt nicht rausgekriegt, wie ich Video-clips einfüge.

Renate
Angehängte Dateien
Dateityp: zip Bitmaps2VideoWMF.zip (130,2 KB, 13x aufgerufen)

Geändert von Renate Schaaf (15. Aug 2023 um 13:41 Uhr) Grund: Aktualisiert auf GitHub-Link
 
Renate Schaaf

 
Delphi 11 Alexandria
 
#11
  Alt 3. Jun 2023, 22:27
Zitat:
Druckgröße Auflösung in [Pixel / Inch], [Pixel / cm], [Pixel / mm]. Da gibt es kein Herumrechnen mehr. Es gibt eine Vorgabe, die man direkt einstellen kann.
Das ist die Aufgabe Deines Expertenprogramms, finde ich. Ich stelle nur ein tool zur Verfügung, mit dem man Bitmaps auf eine bestimmte Pixel-Größe skaliert. Wie Du die Größe errechnest, ist meiner Meinung nach Deine Sache. Und wenn Du weiterhin Hinweise auf die Minderwertigkeit meiner Arbeit verstreust, muss ich mir das aber noch mal sehr überlegen. Oder hab ich da was missverstanden?
Renate
  Mit Zitat antworten Zitat
klaus schaaff
 
#12
  Alt 4. Jun 2023, 07:13
Hallo Renate,

es tut mir leid, wenn du den Eindruck gewonnen hast, ich würde Hinweise verstreuen auf Minderwertigkeit deiner Arbeit. Ich habe anscheinend zu viel rumgemeckert, das hätte ich gern und das noch...

Besonders unter dem Aspekt, dass ich es nicht nach ca. 7 Std investierter Arbeit zustande brachte dein Package zu compilierem, bestätigt deinen Eindruck, dass ich eigentlich keine Ahnung habe, was dein Programm macht.

Bitte entschuldige meine Vorschläge.


Liebe Grüße
Klaus Schaaff
  Mit Zitat antworten Zitat
klaus schaaff
 
#13
  Alt 4. Jun 2023, 08:41
Hallo Renate,

zu deinen Referenzen und Reputation sollte ich noch erwähnen. Viele deiner Arbeiten verfolge ich seit ca. 1993. Dazu gehörten:

unit Parser10;
unit AviWriter_2;
unit IFSCodeEditor;
unit IFSDesigner;
unit IFSDesignForm;
unit IFSDisplay;
unit IFSMathUtils;
unit IFSTriangle;
unit MathUtils;
unit VirtualExplorerListviewEx;

Das sind alles wegweisendende Arbeiten, an denen ich selbst sehr viel lernen konnte. Diese Komponenten habe ich heute noch auf meinem System installiert, weil diese es wert sind! Und, wahrscheinlich ist das nur ein kleiner Teil all deiner Arbeiten.


Liebe Grüße
Klaus Schaaff
  Mit Zitat antworten Zitat
Renate Schaaf

 
Delphi 11 Alexandria
 
#14
  Alt 4. Jun 2023, 15:11
Hallo, Klaus,

Ich hätte meinen Post gestern am liebsten gelöscht. Tut mir leid, dass ich Dich missverstanden habe. Ich hätte gar nicht gedacht, dass jemand das alte Zeug von mir noch kennt. Arbeit an der Legacy-Version geht etwas schleppend voran, wenn man mit der alten Delphi-Version arbeitet, merkt man erst, welche Annehmlichkeiten die neueren bieten.
Ich porte jetzt die neue Version nach Delphi2006, anstatt die alte aufzufrischen, dann sind die threads auch gleich mit dabei. Dass Du die neue Version nicht complilieren konntest, ohne zu wissen, wie die Sachen ineinander greifen, ist verständlich. Hätte ich auch nicht geschafft.

Alles Gute,
Renate
Renate
  Mit Zitat antworten Zitat
klaus schaaff
 
#15
  Alt 4. Jun 2023, 16:35
Hallo Renate,

ich möchte gern mal etwas ausprobieren, was auch dir nützlich sein könnte, zum Zeitvertreib oder was auch immer.

Ich lade mal hier meinen Screengrabber hoch, da es in diesem
Forum schon öfters Probleme gab wegen Virusmeldungen, daher ein Schuss ins Blaue.

Ich habe bei Virustotal meine *.exe prüfen lassen. Nur bei MaxSecure gab es eine positive Virusmeldung, bei allen anderen war der Befund negativ.


Liebe Grüße
Klaus Schaaff
Angehängte Dateien
Dateityp: zip 10 Screengrabber.zip (839,6 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

 
Delphi 10.2 Tokyo Professional
 
#16
  Alt 4. Jun 2023, 18:18
Ich porte jetzt die neue Version nach Delphi2006, anstatt die alte aufzufrischen
Sicher, dass Du Dir das antun willst? Delphi 2006 war zwar deutlich besser als 2005, aber z.B. Enhanced Records (falls Du die verwendest) hatten noch einiges an Bugs, die gerne zu einem "internal compiler error" führen. Außerdem war das noch eine non-Unicode-Version (oder war das mit "legacy" gemeint?).

Aber gut, die Entscheidung liegt natürlich bei Dir.

Für den Fall, dass Du das noch nicht wusstest: Wenn Du ein Delphi 11 gekauft hast, ist da normalerweise auch noch je eine Lizenz für alles bis zurück zu Delphi 2007 + Delphi 7 dabei. Allerdings muss man sich die Lizenzkeys dafür rechtzeitig herunterladen, nach einem Jahr (oder so) funktioniert der Link nicht mehr. (Einer meiner Kollegen hat das verbummelt ).
Thomas Mueller
  Mit Zitat antworten Zitat
Renate Schaaf

 
Delphi 11 Alexandria
 
#17
  Alt 4. Jun 2023, 19:30
Zitat:
Sicher, dass Du Dir das antun willst?
Ist schon fertig, s.u.
Gott sei Dank habe ich genügend Erfahrung mit den alten Versionen bis 2006. Unicode ist bei mir egal. Die Records habe ich entweder in Klassen umgewandelt oder auf normale reduziert.
Leider habe ich für Delphi 11 nur die Community, bin aber glücklich, dass es die gibt.

Zitat:
Ich lade mal hier meinen Screengrabber hoch
Läuft bei mir OK. Schönes Tool, z.B. nützlich, um schnell Fehlermeldungen hier hochzuladen.

Die Legacy-Version vom Bitmap-Resampler ist fertig, Demo eingeschlossen. Hoffe es passiert nichts Unerwartetes mehr beim Ausprobieren.

Leider werden die Bitmaps u.U. nicht in Originalgröße angezeigt, von wegen GDI-Scaling.

Die Version müsste auch in Delphi 7 laufen, wenn man alle ;inline entfernt. Delphi 6 hatte Schwierigkeiten mit threads, ist also nicht empfohlen.

Edit: Ich hab ein Icon gelöscht, weswegen Delphi meckert, macht aber nichts. Einfach Projekt-Optionen anpassen.

Renate
Angehängte Dateien
Dateityp: zip Parallel Bitmap Resampler Legacy.zip (109,7 KB, 11x aufgerufen)
Renate

Geändert von Renate Schaaf ( 4. Jun 2023 um 20:07 Uhr)
  Mit Zitat antworten Zitat
klaus schaaff
 
#18
  Alt 5. Jun 2023, 09:39
Hallo Renate,

Der Bitmap Resampler läuft bei mir inzwischen auf Delphi 5. Das
Konzept mit der nachträglichen Skalierung ist wesentlich besser als meines. So ganz verstanden habe ich es aber noch nicht, das braucht noch etwas Zeit.

Ich werde dann alles nochmals nach Delphi 2009 portieren und sehen, was da 'rauskommt. Alles in Allem ist das Projekt ein hochkomplexes Thema. Im Moment sehe ich noch kein Land, wohin das führen wird. All meine Vorschläge sind erst mal obsolet. Nochmals, Entschuldigung ... für meine unverblümten Einfälle.

Auf jeden Fall, danke für deine Geduld und die Arbeit, die du dir gemacht hast!


Liebe Grüße
Klaus Schaaff
  Mit Zitat antworten Zitat
Renate Schaaf

 
Delphi 11 Alexandria
 
#19
  Alt 5. Jun 2023, 10:25
Zitat:
So ganz verstanden habe ich es aber noch nicht, das braucht noch etwas Zeit
Erklärung siehe Anhang.

Renate
Angehängte Dateien
Dateityp: pdf Scaling Bitmaps - Algorithm explained.pdf (160,7 KB, 9x aufgerufen)
Renate
  Mit Zitat antworten Zitat
klaus schaaff
 
#20
  Alt 6. Jun 2023, 06:11
Hallo Renate,

was mich von Anfang an viel mehr interessiert hat, ist die Möglichkeit deines Package ein Video aus Einzelbildern rendern zu lassen.

Ich habe vor langer Zeit einen eigenen RayTracer ähnlich POV-Ray v3.6 geschrieben und diesen über die Jahre immer mal wieder erweitert mit neuen Features.

Also, der RayTracer rendert bei mir eine 3D-Szene (1 Frame). Die 3D-Szenensprache enthält Animationsparameter x, y, z nach denen alles z.B. Orte der Körper, Texturen in Zeitschritten verändert werden kann. Der erste Frame wird mittels AviWriter_2 dem Video hinzugefügt. Dann der nächste Frame gerendert, hinzugefügt usw. bis ein kleines Video fertig ist. Damit du mir einfacher folgen kannst füge ich im Anhang Sinus.zip hinzu. Blöd ist jetzt, man kann hier im Forum keine *.mp4 als Anhang hochladen. Sinus.zip enthält Sinus.mp4 ein gerendertes Video. Dort wird nur die Oberflächen-Textur mit der Funktion Sinus variiert.

Nun zum meiner Frage: Ich habe es nie geschafft in das Video zusätzlich eine Wave-Datei zu rendern. Video Schnittsoftware kann sowas, da legt man mehrere Einzelbilder in den Videostream und in den Audiostream eine *.wav und rendert das zusammen.

Gibt es in deinem Bitmaps2Video eine Möglichkeit Audiostreams hinzuzufügen?


Liebe Grüße
Klaus Schaaff
Angehängte Dateien
Dateityp: zip Sinus.zip (218,8 KB, 4x aufgerufen)

Geändert von klaus schaaff ( 6. Jun 2023 um 06:19 Uhr) Grund: Korrektur
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      

 

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 16:29 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