AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TBitmaps2Video
Thema durchsuchen
Ansicht
Themen-Optionen

TBitmaps2Video

Ein Thema von Renate Schaaf · begonnen am 26. Jul 2020 · letzter Beitrag vom 21. Mär 2021
Antwort Antwort
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: TBitmaps2Video

  Alt 27. Jul 2020, 09:46
Welcher Datentyp von Video wird denn damit erzeugt?

Edit:

OK, Lesen bildet: Encoder is momentarily hardwired to H264
Thomas Mueller

Geändert von dummzeuch (27. Jul 2020 um 09:48 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#2

AW: TBitmaps2Video

  Alt 27. Jul 2020, 10:35
Hallo,

falls die benutzte Bibliothek verschiedene Encoder bietet könnte man die ja per Property auswählbar herausführen...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Renate Schaaf

Registriert seit: 25. Jun 2020
Ort: Lippe
114 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TBitmaps2Video

  Alt 27. Jul 2020, 10:52
Habe ich auch vor, aber ich wollte erst mal was anbieten, das ich genug getestet habe. Welche Codecs sind denn für Euch interessant? Libav enthält so gut wie alle.
Renate
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: TBitmaps2Video

  Alt 27. Jul 2020, 17:20
Habe ich auch vor, aber ich wollte erst mal was anbieten, das ich genug getestet habe. Welche Codecs sind denn für Euch interessant? Libav enthält so gut wie alle.
Für mich wäre im Prinzip MJPEG interessant, aber eigentlich haben wir sowas schon, insofern also auch wieder nicht.
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#5

AW: TBitmaps2Video

  Alt 27. Jul 2020, 19:44
Was für ein Aufwand ist das Hinzufügen eines Encoders?
Muss man den dann parametrieren und ggf. diese Parameter von außen zugänglich machen?
  Mit Zitat antworten Zitat
Renate Schaaf

Registriert seit: 25. Jun 2020
Ort: Lippe
114 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TBitmaps2Video

  Alt 28. Jul 2020, 01:43
Zitat:
Muss man den dann parametrieren und ggf. diese Parameter von außen zugänglich machen?
Das wollte ich ja eigentlich vermeiden, aber wird sich wohl nicht vermeiden lassen Was willst du denn als user von so nem Encoder wissen? Wenn du so gestrickt bist wie ich, am liebsten gar nichts. Ich möchte vorschreiben können, wie und wie gut das Ergebnis aussieht, und das Resultat soll das richtige Format haben, wenn ich es weiter verarbeiten will.
Bisher funktionieren mpeg4 und mpeg1/2 ohne Probleme mit den gleichen Einstellungsmöglichkeiten. mjpeg habe ich auch probiert, der braucht aber ganz andere Einstellungen für die Qualität (bitrate macht gar nichts), und bis jetzt sieht das Ergebnis nur verpixelt aus. Am liebsten würde ich nur versuchen, alle unterstützten codecs so einzustellen, dass die Werte sinnvoll auf Qualität übersetzt werden.
Außerdem ist das Container-Format noch wichtig (.mp4, .mkv, .flv, .f4v, .avi ...) nicht jeder container unterstützt auch alle codecs.

Was wäre, wenn man so was wie TFormatOptions (record?) baute, das einem für das gewählte Container-Format die Codecs zur Auswahl anbietet, und Grund- Einstellungen. Die kann man dann dem Constructor übergeben. VLC-player hat so was, aber selbst da funktioniert es nicht immer. Leider bin ich kein so Experte, was dieses Video-Zeug angeht, ich wollte nur sowas haben, und nicht auf beim Endbenutzer installierte Codecs angewiesen sein.

Gruß, Renate
Renate
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#7

AW: TBitmaps2Video

  Alt 28. Jul 2020, 04:17
Oder nimm dir als Beispiel ein anderes Programm.
7Zip und Dergleichen

Einmal das Format und dann noch die Qualität bzw. Geschwindigkeit (hier wäre es die Datenmenge)
Schnell/Klein, Normal, AmBesten ... z.B. in 1-5, 0-4, 0-9, 1-9 oder als Enum (1-5 bzw. 1-9 und in der Mitte das Normale ... 1=das kleinstmögliche=grad noch so erkennbar, über Mitte=Default=GutGenug für den Alltag, bis Groß=BesserGehtNimmer aka noch mehr lohnt eigentlich nicht sich nicht (selbst wenn noch mehr, gibt es keinen/kaum einen Unterschied)


Ich veruch für was was Anderes och 'ne "nutzbare" API zu erstellen ... Ergebnis ist in der Klasse eine "kleine" Anzahl der Wichtigsen/Allgemeinen Property und eine ConfigKlasse (welche im Prinzip nur sowas wie 'ne INI-artige StringListe ist) wo die SpezialDinge drin sind.

In deinem Fall:
* Datenformat
* Containerformat (mit gegenseitiger Prüfung, wenn man was Auswählt, dass das Andere nicht nuterstützt -> Exception oder "still" zutücksetzen (btw. das Ähnlichste nehmen)
* Oder ein CombiEnum aus Beidem = das ist "übersichtlicher"/verständlicher, aber es gibt natürlich paar Formate die dann doppelt/mehrfach vorkommen

* dann noch Qualität
* und vielleicht noch ein Limit (z.B. maximale Datenrate)

* und den Rest entweder als "offene" Liste oder je eine Properties-Klasse (Beispiel die Properties-Property bei DevExpress) für die einzelnen Formate (meine ListenKlasse hat eine Abfragefunktion was es "gerade" gäbe, weil ja für den Entwickler nicht "direkt" klar ist, was da jeweils möglich ist, so ohne Codevervollständigung)



Es ist nie einfach "verschiedenes" einheitlich rauszugeben.
Entweder du hast massenhaft Eigenschaften, die bei gewissen Typen ohne Funktion sind, weil es die da nicht gibt,
oder du hast nur eine kleine Anzahl der Gemeinsamkeiten (ohne Spezialfälle)
oder je nach Typ eine eigene Liste (SubKlassen --- in einem Property, den man erstmal casten muß, ala DevExpress oder TPicture.Graphic)
oder je nach Typ eine eigene Liste (SubKlassen --- in getrenten Property ala TPicture.Bitmap, TPicture.Icon, ....)
oder man hat Vieles doppelt und "immer" eingebaut (siehe ImageEn: für jeden Ausgabetyp zusätzlich in der Hauptklasse SpezialProperty ala .Mjpeg_Compression .Mp4_MaxDataRate, ...)
oder siehe der ConnectStr in vielen DB-Komponenten http://docwiki.embarcadero.com/RADSt...tion_(FireDAC)
usw.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (28. Jul 2020 um 04:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:25 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-2025 by Thomas Breitkreuz