Megui OpenCL intiegration

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Megui OpenCL intiegration

    Anzeige
    hallo, Ich habe Mich Gestern Gefragt ob es Möglich ist beim Rendern die GPU Beschleunigung zu verwenden in meinem Fall wehre das OpenCL weiß da vielleicht einer was wie ich es in mein Bestehendes Skript intigriere bzw ob es überhaupt möglich ist.

    Ich würde mich sehr über eine Antwort Freuen MfG ironia

    Quellcode

    1. ​LoadPlugin("E:\megui\tools\NicAudio\NicAudio.dll")
    2. v = AVISource("E:\einblendungen/SpacePerception_OPT3_SD_1.avi",audio=false,pixel_type="Auto").ConvertToYV12()
    3. a = RAWavSource("E:\einblendungen/SpacePerception_OPT3_SD_1.wav")
    4. c1 = AudioDub(v, a)
    5. v = AVISource("D:\java 11-10-2015 21-44-10.avi",audio=false,pixel_type="Auto").Spline64Resize(1920, 1080).ChangeFPS(30.00).ConvertToYV12()
    6. a = RaWavSource("D:\java 11-10-2015 21-44-10 neu.wav")
    7. c2 = AudioDub(v, a)
    8. return c1 ++ c2# Kurzform für AlignedSplice(c1, c2)
  • Ironia schrieb:

    das will ich ja nicht aber das erste reicht mir schon damit kann ich was anfangen . danke für die Hilfe


    Du musst aber für die Sourcen, für die Filter usw jeweils den richtigen MTMode nehmen, und wäre alles viel Handarbeit, welche SSM dir abnimmt. Warum sträubst du dich so dagegen?

    Besonders hilfreich wird SSM, wenn du Videos einladen willst, wo FPS, Auflösung, Codec und/oder whatever abweichen.
    Aktuelle Projekte/Videos


  • De-M-oN schrieb:

    Warum sträubst du dich so dagegen?

    Weil man das Rad immer wieder neu erfinden kann xD

    Ironia schrieb:

    Quellcode

    1. ​LoadPlugin("E:\megui\tools\NicAudio\NicAudio.dll")
    2. v = AVISource("E:\einblendungen/SpacePerception_OPT3_SD_1.avi",audio=false,pixel_type="Auto").ConvertToYV12()
    3. a = RAWavSource("E:\einblendungen/SpacePerception_OPT3_SD_1.wav")
    4. c1 = AudioDub(v, a)
    5. v = AVISource("D:\java 11-10-2015 21-44-10.avi",audio=false,pixel_type="Auto").Spline64Resize(1920, 1080).ChangeFPS(30.00).ConvertToYV12()
    6. a = RaWavSource("D:\java 11-10-2015 21-44-10 neu.wav")
    7. c2 = AudioDub(v, a)
    8. return c1 ++ c2# Kurzform für AlignedSplice(c1, c2)


    OMG... Ja...Nee... is klar. xD

    Wave mit NicAudio laden? Du weißt schon das RaWavSource kein Wave64 einlesen kann, oder? ^^ Damit ist RaWavSource so ziemlich nix anderes als das Stink Normale WaveSource.
    Wave64 kann von BassAudio eingelesen werden. BassAudio hat damit keine Probleme. (Bitte nicht vom Namen irritieren lassen. BassAudio heißt nicht so, weil es die Audiospur Basshaltig macht, sondern ist nur der Name des Filters.)

    Bei Pfadangaben bitte Backslash "\" nutzen und nicht das Schrägzeichen "/" für die Pfadangabe von Datein.


    AVISource(clip clip,bool audio, ..., string pixel_type)
    Defaultwerte:
    audio = true
    pixel_type = "Auto"

    Daher muss man das Argument "audio =" nicht hinschreiben, da es an zweiter Stelle gleich kommt, da ohnehin an erster Stelle ein Clip verlangt wird.
    pixel_type muss nicht angegeben werden mit "Auto", da pixel_type Standardmäßig "Auto" nutzt

    Bei der Verwendung von AVISource ist es Ratsam immer danach ein AssumeFPS mit anzugeben mit den exakten FPS die das Video auch hat. Es ist nämlich nicht auszuschließen das AVISource zwars sehr schnell ist, jedoch kann es auch mal sein das es von den FPS Werten abweichen kann. Daher sollte immer ein AssumeFPS mit der konkreten FPS des Videos angegeben werden.

    Gleichnamige Datein kann mit Variablen ein wenig abkürzen lassen und erweitert sie halt um die entsprechende Endung einfach wieder (String-Erweiterung)

    Ein Clip in AVISynth wird ohne Variablenangaben in die Variable Last gespeichert. Daher kann man dies nutzen um mehr Schreibaufwand betreiben zu müssen. Auch die Übergabe an andere Funktionen ist gegeben.

    In der letzten Zeile ein Return reinzuschreiben, kann man machen, muss man aber nicht. Wenn du Multithreading nutzen solltest, solltest du das Return rausnehmen, da es sonst bei bestimmten Einstellungen zu Problemen führen kann und dir den Encode somit zum Absturz führen kann.
    Das Return sollte bei AVISynth am besten nur für selbst erstellte Funktionen verwendet werden oder wenn das Skript in mehreren Modulen unterteilt werden soll.

    ChangeFPS gibst du mit einer Fließkomma Angabe an. Sollte vermieden werden, wenn es geht. Dafür kann man mit ChangeFPS die Angabe in Zähler und Nenner angeben lassen.
    Also nicht ChangeFPS(30.00), sondern ChangeFPS(30, 1)
    29.97 FPS ergibt sich somit aus 30 und 1,001. Effektiv für ChangeFPS also so: ChangeFPS(30000, 1001) ergibt 29.97 FPS.
    Nur als Beispiel mal jetzt. ;D

    Resizer und ChangeFPS... Am besten ist es eigentlich immer die niedrigste FPS zu resizen bevor man die FPS erhöhen tut.
    Oder halt die FPS zu reduzieren und dann zu resizen.

    Grund dafür ist das ein Resizer so am wenigsten zu tun hat. Je weniger Frames da sind, desto weniger hat ein Resizer zu tun.
    Beispiel: 60 FPS Video resizen lassen und dann auf 30 FPS runterbrechen lassen ist Zeitaufwendiger als das Video erst in 30 FPS runterbrechen zu lassen und dann zu resizen.
    Genau verhält es sich von niedriegen FPS auf höhere zu pushen.
    Da du dies anhand deiner Videos selbst wissen müsstest und ich das halt nicht sehe, werde ich da jetzt nix ändern. Ist nur mal für dich als Info gedacht ^^

    Ein ConvertToYV12 brauchst du nicht angeben, sofern du A) in YV12 schon aufnimmst oder B) es via Frameserver so an AVISynth weiterleitest.
    Um Bestmögliche Qualität zu erziehlen, sollte der Farbraum stehts zum Schluss geändert werden. Sprich immer nach einem Skalierer.

    Ich mach dir das mal besser:

    Quellcode

    1. LoadPlugin("E:\megui\tools\BassAudio\BassAudio.dll")
    2. File1 = "E:\einblendungen\SpacePerception_OPT3_SD_1"
    3. File2 = "D:\java 11-10-2015 21-44-10"
    4. c1 = AVISource(File1 + ".avi", false).AssumeFPS(30, 1).Audiodub(BassAudioSource(File1 + ".wav")).ConvertToYV12()
    5. c2 = AVISource(File2 + ".avi", false).AssumeFPS(25, 1).Spline64Resize(1920, 1080).ChangeFPS(30, 1).AudioDub(BassAudioSource(File2 + " neu.wav").ConvertToYV12()
    6. c1 ++ c2 # Kurzform für AlignedSplice(c1, c2)


    Das wäre so jetzt erst mal optimial.

    Übersichtlicher kann man das z.B. so noch machen:

    Quellcode

    1. LoadPlugin("E:\megui\tools\BassAudio\BassAudio.dll")
    2. File1 = "E:\einblendungen\SpacePerception_OPT3_SD_1"
    3. File2 = "D:\java 11-10-2015 21-44-10"
    4. AVISource(File1 + ".avi", false).AssumeFPS(30, 1)
    5. c1 = Audiodub(BassAudioSource(File1 + ".wav")).ConvertToYV12()
    6. AVISource(File2 + ".avi", false).AssumeFPS(25, 1).Spline64Resize(1920, 1080).ChangeFPS(30, 1)
    7. c2 = AudioDub(BassAudioSource(File2 + " neu.wav").ConvertToYV12()
    8. c1 ++ c2 # Kurzform für AlignedSplice(c1, c2)
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sagaras ()

  • ich Danke Euch sehr für die Antwort ich, denke das reicht ich werde mich Dan in ruhe noch weiter darein lesen und die Tipps umsetzen. Um hier klar zustellen warum ich nicht den SSM nehme ist da ich Bald Komplet selbstständig meine Skript schreiben will und etwas dabei lehren will beim SSM steht immer soviel kram mit drin das man da schnell den Überblick verliert, ich schreibe die Skripte lieber selber den das was ich Dan hinzufüge und was ich habe das weis ich dennoch probiere ich gerne mal neue Sachen aus. Trotzdem Mag ich den SSM sehr habe damit früher sehr viel gemacht also Schluss endlich zu Sagen das Tool ist Supa aber ich möchte auch nachvollziehen können was ich da reinschreibe klar kann man nicht alles Wissen aber dafür seid ihr ja da um einen aufzuklären.
  • Beim SSM Setup kannst du dir auch Beispielskripte mitinstallieren lassen und auch den dazu passenden AVSPmod Editor. Ich denke, wenn man sich die Beispiele mal dann anschaut, kann man auch viel schon mal lernen und auch nachvollziehen. Unter anderem sind da auch sehr coole Skriptbeispiele zu finden wie z.B. Nintendo DS Videos, wo man 2 Bildschirma hat und sie via Animationen innerhalb des Skriptes die Bildgrößen der jeweiligen Fenster anpassen kann.

    Ein wichtiges Plugin von mir ist z.B. die Funktionssammlung "Blend.avsi", wo viele nützliche Funktionen enthalten sind, die den Schreibaufwand des eigentlichen Skriptes wesentlich kürzen.

    Wäre für dich eventuell sehr interessant sich das mal anzuschauen und eventuell zu testen und zu verstehen. Lernste auch schon mal einiges wieder ^^