Selur's Little Message Board

Full Version: SelectEvery für Color Filter
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
Hab glaub ich ne Methode gefunden wie es geht und sie mal für die Color Filter implementiert (8 Stunden später, kaum getestet).
Lies Dir mal [INFO] About Vapoursynth Filter Order/Queue durch, damit Du weißt wie die Vapoursynth FilterQueue benutzt werden kann.

Wenn Du z.B.
  • Tweak mit Gamma 2 auf alle cycle=2, offsets=[0], und
  • Tweak mit Gamma 0.5 auf alle cycle=2, offsets=[1]
anwenden wolltest, müsstest Du, bei aktivierter FilteQueue, entsprechend 2x Tweak mit unterschiedlichen Gamma, 'Apply only to' cycle&offset zur FilterQueue hinzufügen.
Die FilterQueue sieht dann in etwa so aus:
Code:
Deinterlace:*,*:QTGMC (Vapoursynth):*,*:vsQTGMCBob;false:*,*:vsQTGMCSelect;Even:*,*:vsQTGMCPadToMod16;false:*,*:vsQTGMCPreset;Fast:*,*:vsQTGMCCPreset;Slower:*,*:vsQTGMCDenoiser;auto:*,*:vsQTGMCInputTyp;0:*,*:vsQTGMCOrder;-1:*,*:vsQTGMCInputTyp;0:*,*:vsQTGMCTr2;1:*,*:vsQTGMCSharpness;1.0:*,*:vsQTGMCSourceMatch;off:*,*:vsQTGMCNoisePreset;Fast:*,*:vsQTGMCShow;false:*,*:vsQTGMCShowNoise;false:*,*:vsQTGMCUseEzd;false:*,*:vsQTGMCUseEzk;false:*,*:vsQTGMCEzdValue;0.00:*,*:vsQTGMCEzkValue;0.00:*,*:vsQTGMCLossless;off:*,*:vsQTGMCOpenCL;false:*,*:vsQTGMCMatchEnhance;0.50:*,*:vsQTGMCMatchPreset;default:*,*:vsQTGMCMatchPreset2;default
Crop:*,*:nonea
Rotation:*,*:flipVideo;false:*,*:flipVideoHorizontal;false:*,*:rotate;false:*,*:rotateValue;off
Frameinterpolation:*,*:none
Resize:*,*:none
Letterboxing:*,*:none
AddingSubtitle
Color - Levels:*,*:vsLevels;true:*,*:vsLevelsMinIn;16:*,*:vsLevelsMaxIn;235:*,*:vsLevelsMinOut;16:*,*:vsLevelsMaxOut;235:*,*:vsLevelsPlanes;luma only:*,*:vsLevelsGamma;2.00:*,*:vsLevelsFrame;false:*,*:vsLevelsUseRGB;true:*,*:vsLevelsApplyOnlyToEvery;true:*,*:vsLevelsApplyOnlyToEveryCycle;2:*,*:vsLevelsApplyOnlyToEveryOffsets;0:*,*:vsLevelsOnlyRange;false:*,*:vsLevelsRanges;
Color - Levels:*,*:vsLevels;true:*,*:vsLevelsMinIn;16:*,*:vsLevelsMaxIn;235:*,*:vsLevelsMinOut;16:*,*:vsLevelsMaxOut;235:*,*:vsLevelsPlanes;luma only:*,*:vsLevelsGamma;0.50:*,*:vsLevelsFrame;false:*,*:vsLevelsUseRGB;true:*,*:vsLevelsApplyOnlyToEvery;true:*,*:vsLevelsApplyOnlyToEveryCycle;2:*,*:vsLevelsApplyOnlyToEveryOffsets;1:*,*:vsLevelsOnlyRange;false:*,*:vsLevelsRanges;
und Hybrid würde dann etwas wie:
Code:
# Imports
import vapoursynth as vs
core = vs.get_core()
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/FFMS2/ffms2.dll")
# source: 'F:\TestClips&Co\files\test.avi'
# current color space: YUV420P8, bit depth: 8, resolution: 640x352, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: progressive
# Loading source using FFMS2
clip = core.ffms2.Source(source="F:/TestClips&Co/files/test.avi",cachefile="E:/Temp/avi_078c37f69bb356e7b5fa040c71584c40_853323747.ffindex",format=vs.YUV420P8,alpha=False)
# making sure input color matrix is set as 470bg
clip = core.resize.Point(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 25
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# adjusting color space from YUV420P8 to RGB24 for vsLevels
clip = core.resize.Bicubic(clip=clip, format=vs.RGB24, matrix_in_s="470bg", range_s="limited")
# Color Adjustment
clipA = core.std.SelectEvery(clip = core.std.Levels(clip=clip, min_in=16, max_in=235, min_out=16, max_out=235, gamma=2.00), cycle=2, offsets=[0])
clipB = core.std.SelectEvery(clip=clip, cycle=2, offsets=[1])
clipA0 = clipA
clipB1 = clipB
clip = core.std.Interleave(clips=[clipA0,clipB1])
# Color Adjustment
clipA = core.std.SelectEvery(clip = core.std.Levels(clip=clip, min_in=16, max_in=235, min_out=16, max_out=235, gamma=0.50), cycle=2, offsets=[1])
clipB = core.std.SelectEvery(clip=clip, cycle=2, offsets=[0])
clipA1 = clipA
clipB0 = clipB
clip = core.std.Interleave(clips=[clipB0,clipA1])
# adjusting output color from: RGB24 to YUV420P8 for x264Model (i420@8)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, matrix_s="470bg", range_s="limited")
# set output frame rate to 25.000fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Output
clip.set_output()
erzeugen. Ist zwar nicht wirklich 'schön', aber sollte funktionieren.
-> Habe Dir mal nen Link zu ner dev Version (per PM) zum Testen geschickt. Smile

Cu Selur
Quote:Okay, sehe ich das richtig was Du in Hybrid bräuchtest wäre:
1. die Möglichkeit nur auf Odd/Even frames anzuwenden (das SelectEvery wäre der allgemeinere Fall, in dem nur bestimte Frames filtern will)
2. die Möglichkeit Filter öfters anzuwenden, da Du ja die Frames in mindestens zwei unterschiedliche Gruppen einteilen willst und diese dann unterschiedlich filtern willst.
Zu beiden ein Ja , so ist es gut zusammengefasst und umfasst soweit denk ich das ganze 'ausmaß' dieser methode


Quote:zu 1.: Das geht noch nicht. Weiß wie ich es implementieren könnte ist aber ein Heiden Aufwand, da der komplette Vapoursynth-Tab dafür überarbeitet werden müsste. Bin aktuell schon nicht so ganz glückliche wie ich das 'Apply only to' in die GUI integriert habe und an jeden Filter noch ein 'Apply only on: Cyle [1-n] with Offsets: [....]' zu packen würde das Ganze nur noch unschöner machen.
------------------
Hab mal ein MockUp des "Vapoursynth->Color->Basic"-Bereichs gemacht, an dem man sieht wie es z.B. aussehen würde.

[Image: attachment.php?thumbnail=1347]   
Sieht nicht mal soo schlimm aus, aber man kann schon recht wie seht das die allgemeine Sichtbarkeit der Filter vermindern würde.
Da bist du nun auf meinem Terrain Smile Ich bezeichne mich gerne als hobby UI/UX desginer und hab mir auch schon gedanken über Hybrid gemacht, und habe auch die änderung zu Horizontalen Tabs gesehen und das es rückgängig gemacht wurde. Was Denk ich eine gute entscheidung war, es hat seine vorteile aber persöhnlich bin ich kein Fan davon. Hybrid hat ein grund 'problem' mit Tabs, es sind zu viele so das auch durch die schiere anzahl an filter es auch immer mehr gefahr läuft unübersichtlich zu werden. Einerseits liebe ich es wie einfach Hybrid zu bedienen ist, es liegt ja alles da man muss es nur aktivieren, das lange navigieren ist eher das problem. Tabs sind aber nötig oder ? Nunja nicht ohne große änderungen am desgin prinzip, bsw ein modulares desgin: eine filter-liste pro projekt, wo der user einer leeren liste filter hinzufügt, die horizontal in reihen untereinander aufgebaut wird. Die liste regelt die Reihenfolge und das einzelne hinzufügen der filter hilft den filter tab klein zu halten. Aber das wäre ja nicht der einzige Tab, und wie gesagt finde ich die leichtigkeit mit der man filter an/aus macht und bearbeitet erfrischend einfach, kein ewiges menu rumgesuche nach einfachen filtern.
Ich würde gern mal ein paar vorschläge machen wie man das UI etwas entschlacken könnte wenn du interesse hast ? Ich werde heute zusätlich mal adobe xd starten, ich habe gesehen man kann sogar über sketch .qml code generieren. (Ich bin gerade erst Heim gekommen! Demnach ist noch nicht abzusehen wann genau leider)

Das problem oben würde ich so lösen indem man sagt der user bekommt ein radial menü mit drei optionen (Even, Odd, All) (bzw Frame1, Frame2 + ein add button der die selectEvery syntax hat) vaporsynth tab ändet seine filter-liste je nach dem ob alle filter kompatible sind. Wie man das programier technisch umsätzen sollte wüsste ich aber nicht 

*edit und wegen apply to, nun das ist ein pro filter mod, also entweder ein icon das ein pop-up öffnet oder eine allgemeine timeline ?


Quote:clipOdd = core.std.SelectEvery(clip=clip, cycle=5, offsets=[0 3 4])Mir ist gerade ein Problem aufgefallen, da man ja wenn den allgemeinen Fall mit SelectEvery angeben würde bei dem man: 1. Cycle und 2. offsets angeben würde.
Wie würde man die den mergen? Einfaches interleave geht da nicht.
Ein core.std.Interleave([clipA, clipB]) würde 0,1,3,2,4 zurück liefern,...
Ps.: Vielleicht kann man das ganze mit https://github.com/Irrational-Encoding-W...emapFrames machen,...
Oh macht sinn, für andere fälle hab ich garnicht mit gedacht aber ja ein blick auf remapframes scheint das problem lösen zu würden, ich hab allerdings noch keine erfahrung damit.



Quote:Hab glaub ich ne Methode gefunden wie es geht und sie mal für die Color Filter implementiert (8 Stunden später, kaum getestet).
Lies Dir mal [INFO] About Vapoursynth Filter Order/Queue durch, damit Du weißt wie die Vapoursynth FilterQueue benutzt werden kann.
-> Habe Dir mal nen Link zu ner dev Version (per PM) zum Testen geschickt. [Image: smile.png]
Das werde ich machen! Und vielen Dank ich werde die version gleich mal installieren, ich werd mich dann nach meinen verdienten schlaf gleichmal damit befassen , der script sieht ja schonmal einfach aus haha


Aber ich möchte wenigstens schonmal eine beobachtung aufschreiben damit dieser post wenigstens etwas an mehr wert hat 
FluxSmooth in temporalen modus (spatial -1 = deaktiviert) + 128 threshold (ist ein guter start wert) für alle planes, hat einen posterisation effekt 
- Nur für Animes geeignet (schärfer?)
FluxSmooth in temporalen modus ) + 128 threshold (ist ein guter start wert) für luma plain + spatio aktiviert, wert 8 ( ein guter start wert)
- gut für alles andere , nötig mit spatio zu spielen hat aber einen sehr interessanten effekt, es verringert auf eine weise den contrast und macht das bild dunkler, durch neues erhellen auf den selben ausgangs wert bekommt man ein sehr detail reiches bild, besonders in sehr dunkel bis schwarz und sehr hell bis weiß bereich ( spatio 8 ist minimum sonst artifakte)
aber! ghosting wenn 50i, also nur progressiv

Außerdem benutze ich zum testen meistens diese werte: Tweak( hue=-90.00, sat=1.50, cont=0.75)

Da in meinen fall scrubs ein problem mit magenta bzw pink rainbows/chroma leaks hat, ist es sinnvoll die hue um 90 ° ins minus zu verschieben damit bekommt man die kontrast farbe grün und man sollte theoretisch bessere ergebnisse bekommen
Zur Erläuterung des Skripts, was Hybrid für jeden Filtereintrag mit SelectEvery macht ist:
  • zwei Clips erstellen (clipA, ClipB) einen der auf dem das SelectEvery und die Filterung angewendet wird (clipA) und einen der nichts macht (clipB)
  • splittet die Clips in UnterClips auf (clipAx, clipBx)
  • mischt die Clips wieder.
so erhält man dann:
Code:
# Color Adjustment
clipA = core.std.SelectEvery(clip = core.std.Levels(clip=clip, min_in=16, max_in=235, min_out=16, max_out=235, gamma=2.00), cycle=2, offsets=[0]) # Clip gefiltert mit SelectEvery
clipB = core.std.SelectEvery(clip=clip, cycle=2, offsets=[1]) # ungefilterter Frames
#splitten der Clips in die Frames (bei cycle 2 ist a nicht wirklich was zu tun)
clipA0 = clipA
clipB1 = clipB
clip = core.std.Interleave(clips=[clipA0,clipB1]) # mergen der gefilterten und ungefilterten Frames
ist bis dato die übersichtlichste Weise den ScriptCode zu schreiben die mir eingefallen ist.

zum UI:
Hatte auch schon mal drüber nachgedacht auf qml umzusteigen, ist aber einfach viel zu viel Aufwand, da es leider keine automatisierte Methode gibt um Qts alte .ui Forms in .qml Forms umzuwandeln. Da fehlt mir einfach die Zeit und die Motivation das in meiner Freizeit zu machen. Smile
Radiale-Popup-Menus muss ich mir mal anschauen, bin aber generell kein großer Fan von Popup-Menus, da man sie zu leicht übersieht und UIs dann immer "arkaner" werden.
-> werde ich aber noch was drüber nachdenken ... -> ne, kann mich für PopUp-Menus nicht begeistern.

Cu Selur

Ps.: Hab die 'Apply only to'-GroupBoxen gestern noch zum den ganzen Vapoursynth Filtern gepackt die vorher 'Apply only to' hatten, schick Dir nachher mal einen neuen Link via PM.
Werde es wohl erst mal so machen, dass:
  • die 'Apply only to'-GroupBoxen nur sichtbar sind wenn "Filtering->Vapoursynth->Misc->UI->Show 'Apply only to'-controls" an ist
  • die 'Add to FilterQueue'- und 'Remove from FilterQueue'-Buttons nur sichtbar sind wenn "Filtering->Vapoursynth->Misc->Filter Order/Queue->Use Filter Queue" ans ist

Cu Selur
Quote:SelurZur Erläuterung des Skripts, was Hybrid für jeden Filtereintrag mit SelectEvery macht ist:
  • zwei Clips erstellen (clipA, ClipB) einen der auf dem das SelectEvery und die Filterung angewendet wird (clipA) und einen der nichts macht (clipB)
  • splittet die Clips in UnterClips auf (clipAx, clipBx)
  • mischt die Clips wieder.
ist bis dato die übersichtlichste Weise den ScriptCode zu schreiben die mir eingefallen ist.

Es funktioniert alles Perfekt ! Alles wird richitg hinzugefügt und sowohl das Preview window als auch ein encode funktioniert ohne Probleme. Auch finde ich die neue Queue Funktion sehr gut, die gibt nun etwas mehr einblick wie das end resultat zusammengesetzt wird und man kann viel besser reihenfolgen fehler nachvollziehen.

Das + zum hinzufügen funktioniert gut aber es wäre gut eine nachricht unten einzublenden die das erfolgreiche hinzufügen des filters ausgibt ( also zb. "AddGrain wurde erfolgreich Hinzugefügt")
Ansonsten denke ich ist es ready for prime time Smile  

Quote:zum UI:
Hatte auch schon mal drüber nachgedacht auf qml umzusteigen, ist aber einfach viel zu viel Aufwand, da es leider keine automatisierte Methode gibt um Qts alte .ui Forms in .qml Forms umzuwandeln. Da fehlt mir einfach die Zeit und die Motivation das in meiner Freizeit zu machen. Smile
Radiale-Popup-Menus muss ich mir mal anschauen, bin aber generell kein großer Fan von Popup-Menus, da man sie zu leicht übersieht und UIs dann immer "arkaner" werden.
-> werde ich aber noch was drüber nachdenken ... -> ne, kann mich für PopUp-Menus nicht begeistern.

Ach ich hatte nur QT gesehen und gleich gedacht es wäre qml, ich verstehe das komplette neu implementieren der gui sehr aufwändig wäre, ich habe leider keine erfahrung mit dem QT desginer, aber qml ist json+css ? (also ungefähr , es ist natürlich kein css) Wenn du möchtest würde ich dich da gerne unterstützen und dir die arbeit der neu Implementierung abnehmen? (Wenn keine eile geboten ist, wie du evtl merkst habe ich doch weniger zeit als mir manchmal lieb ist) Ich würde dann manuel die .ui in .qml neu schreiben

Das wäre mal ein Mockup und ein paar ideen in Adobe XD ( es 'fehlt' nichts, es wäre in meiner vorstellung bloß in anderen kategorien oder der gleichen )
[Image: attachment.php?aid=1354]

(Und gute idee mit dem label im preview window das einem anzeigt welches das original Bild und welches gefilter ist ! Ich komm da doch oft durcheinander )


Quote:Ps.: Hab die 'Apply only to'-GroupBoxen gestern noch zum den ganzen Vapoursynth Filtern gepackt die vorher 'Apply only to' hatten, schick Dir nachher mal einen neuen Link via PM.

  • die 'Apply only to'-GroupBoxen nur sichtbar sind wenn "Filtering->Vapoursynth->Misc->UI->Show 'Apply only to'-controls" an ist

  • die 'Add to FilterQueue'- und 'Remove from FilterQueue'-Buttons nur sichtbar sind wenn "Filtering->Vapoursynth->Misc->Filter Order/Queue->Use Filter Queue" ans ist

Du arbeitest wohl noch an dieser Version ? Es ist eine gute idee das als Standard zu haben um neue user nicht zu erschlagen mit funktionen



*edit was hällst du den zb von dieser aufteilung: (spacing fehler nicht beachten , geht nur um die horizontale aufteilung, ich bin noch am desginen von aktiven und inaktiven elemmenten )

[Image: attachment.php?aid=1360]
Quote:Das + zum hinzufügen funktioniert gut aber es wäre gut eine nachricht unten einzublenden die das erfolgreiche hinzufügen des filters ausgibt ( also zb. "AddGrain wurde erfolgreich Hinzugefügt")
kann ich machen

Quote:Ach ich hatte nur QT gesehen und gleich gedacht es wäre qml, ich verstehe das komplette neu implementieren der gui sehr aufwändig wäre, ich habe leider keine erfahrung mit dem QT desginer, aber qml ist json+css ? (also ungefähr , es ist natürlich kein css) Wenn du möchtest würde ich dich da gerne unterstützen und dir die arbeit der neu Implementierung abnehmen? (Wenn keine eile geboten ist, wie du evtl merkst habe ich doch weniger zeit als mir manchmal lieb ist) Ich würde dann manuel die .ui in .qml neu schreiben
Manuell neu schreiben ist sicher overkill.
Wenn Du Dir den Qt-Designer installierst (https://doc.qt.io/qt-6/qtdesigner-manual.html), kannst Du Dir die aktuellen Formulardateien (.ui) mal anschauen. Schick Dir nen Link per PM.
Der Designer kommt mit dem Qt Online Installer ( https://www.qt.io/download-qt-installer ), hat aber auch jemand separat gebundelt (https://build-system.fman.io/qt-designer-download).

Quote:Das wäre mal ein Mockup und ein paar ideen in Adobe XD ( es 'fehlt' nichts, es wäre in meiner vorstellung bloß in anderen kategorien oder der gleichen )
a. finde ich persönlich hässlich
b. Du hast da jetzt neue Elemente eingefügt (Timeline, Cycle 1, All Frames) für die keine Funktionalität existieren.
c. Du hast Sachen rausgelassen. Selbst unter Other sind ja mehr Filter zu sehen. Muss etwas sein, was auch mit Kategoriern wie DeNoise noch klar kommt.
d. die 2te und 3te Spaltenreihe macht irgendwie keinen Sinn,...


Cu Selur
Quote:Manuell neu schreiben ist sicher overkill.
Wenn Du Dir den Qt-Designer installierst (https://doc.qt.io/qt-6/qtdesigner-manual.html), kannst Du Dir die aktuellen Formulardateien (.ui) mal anschauen. Schick Dir nen Link per PM.
Der Designer kommt mit dem Qt Online Installer ( https://www.qt.io/download-qt-installer ), hat aber auch jemand separat gebundelt (https://build-system.fman.io/qt-designer-download).
Sehr gerne das mach ich mal; Ich versuch mich dann gleich auch mal in den desginer einzuarbeiten , kann nur praktisch für die zukunft sein.



Quote:a. finde ich persönlich hässlich
b. Du hast da jetzt neue Elemente eingefügt (Timeline, Cycle 1, All Frames) für die keine Funktionalität existieren.
c. Du hast Sachen rausgelassen. Selbst unter Other sind ja mehr Filter zu sehen. Muss etwas sein, was auch mit Kategoriern wie DeNoise noch klar kommt.
d. die 2te und 3te Spaltenreihe macht irgendwie keinen Sinn,...
zu a. nun ja Geschmack ist vielfältig haha (beachte aber das die Farben im ersten Bild nicht fertig waren und im zweiten Bild näher an das rannkomt, was ich in Sinn hatte; die Palette generiere ich mit leonardocolor.io )
Ich könnte den nativen windows Stil verwenden oder mit dir etwas Neues ausarbeiten, wenn du mir zeigen kannst was dir z. B. in anderen Programmen oder online so gefällt ?

b. Richtig, ich hatte es oben schon mal geschrieben wollte es aber mal verbildlichen was ich meinte mit einem Add button und Cyle1 Cyle2. Das wäre noch dafür gewesen das man sagt der vapoursynth Tab ändert seinen Inhalt je nach frame/cycle option. Allerdings gibts es ja nun eine gut funktionierende Methode, demnach würde ich das UI wieder anpassen. Ich wollte es aber zeigen da es wirklich viel Platz und in Zusammenhang mit der 'timeline' Funktion mehr sinn macht. Timeline wäre hier nur ein schönes Wort für die aktuelle liste mit filtern + ein 'apply only to' checkbox inputbox etc. Keine grafische Timeline

c. Oh nein das ist ganz und gar nicht fertig ! ich habe einfach nur Add Logo verdoppelt, um inaktive Elemente zu erstellen. Ich wollte nur mal eine horizontale liste probieren. Da müssen natürlich ALLE filter noch rein. (Da aber adobe XD kein code erzeugt möchte ich gar nicht alles hier einfügen, nur genug um ein anschauliches Bild zu erzeugen.

d. Das kommt daher das Ich viel umstellen würde, um es besser zu organisieren. Also was ich mir dachte: Der Frame tab händelt größe, anzahl, geschwindigkeit, nun alles was mit frames zu tun hat, also auch deinterlacing und resize etc.
Generell möchte ich auch Misc bzw Einstellungs tabs anders darstellen. Das burger menü und der pfeil neben order sollten dropdown menüs öffnen oder ein pop-up. Ich weiß du meintest du bist kein fan von pop-ups, aber Einstellungen die nicht oft geändert werden können so verschoben werden und machen platz im UI
Noch nicht alles gelesen, mach ich nach der Arbeit, aber schon mal:

Quote:Das kommt daher das Ich viel umstellen würde um es besser zu organisieren.
Da bin ich ja mal gespannt was 'besser' ist. Nicht vergessen, dass je nach Setup z.B. Avisynth und/oder Vapoursynth nicht vorhanden sind und sich Avisynth&Vapoursynth Filtering nicht mischen lässt (FFMpeg Filter mit den anderen Mischen geht zwar, es ist aber eher davon abzuraten). Smile

Burger-Menüs sind letzte, die sind, meiner Ansicht nach, ein totaler Schuss in den Fuß und führen nur für Verwirrung und der einzige Sinn von denen ist Sachen zu verstecken um den User zu verwirren.


Cu Selur
(15.03.2021, 07:45)Selur Wrote: [ -> ]Noch nicht alles gelesen, mach ich nach der Arbeit, aber schon mal:

Quote:Das kommt daher das Ich viel umstellen würde um es besser zu organisieren.
Da bin ich ja mal gespannt was 'besser' ist. Nicht vergessen, dass je nach Setup z.B. Avisynth und/oder Vapoursynth nicht vorhanden sind und sich Avisynth&Vapoursynth Filtering nicht mischen lässt (FFMpeg Filter mit den anderen Mischen geht zwar, es ist aber eher davon abzuraten). Smile
Natürlich. Frohes Schaffen

Das dachte ich mir sogar aber gut das du es nochmal sagst, ich hatte schon an soetwas gedacht wie 'Filterengine: FFmpeg-only / Vapoursynth / Avisynth' 
Und 'besser' ist das Ziel ich kann nur hoffen das meine ideen im gesamt konzept stimmig und sinnvoll sind. Im zweifelsfalle habe ich ja eine sehr gut funktionierende vorlage !


Quote:Burger-Menüs sind letzte, die sind, meiner Ansicht nach, ein totaler Schuss in den Fuß und führen nur für Verwirrung und der einzige Sinn von denen ist Sachen zu verstecken um den User zu verwirren.

Notiert haha , ich kann es verstehen aber nicht nachvollziehen da ich es immer praktisch fand , ich werde aber davon absehen es zu benutzen Smile
Sehe ich es richtig das ich nur darauf achten muss das 'objectName' (in qt) den gleichen namen hat und du wärst in der lage es als drop in replacemnet zu benutzen ? Oder gibt es noch andere werte die du benutzt ? Das ist ja dann einfacher als gedacht, ich würde dann warscheinlich erstmal eine 1:1 kopie in qml erstellen und dann davon eine alternative erstellen
* edit und soll ich das 'modulare' desgin beibehalten ? Also wie ich sehe ist MainWindow ein frame mit einen container der je nach tab die complete page neu läd bzw eine neue .ui in diesen container
und es scheint eine ältere version zu sein oder ?
Pages: 1 2 3