Beiträge von Matt Kirby

    Ich kann meine bescheidene Dienste anbieten, wenn du mal eine Minute von dem Originalmaterial hochlädst. Also ein Stück der MKVs die MakeMKV ausgespuckt hat. Mit Avidemux schneiden. https://www.videohelp.com/software/AviDemux

    MKV öffnen-> in der Timeline A und B Abschnitt wählen -> Datei Speichern


    nimm am besten einen horizontalen langsamen Kameraschwenk, daran sieht man am Besten was Sache ist.

    Ich denke, dass das Original mal NTSC mit 60 Halbbildern pro Sekunde war. Diese wurden dann zu 50 Halbbildern auf PAL DVD gebracht.

    Handbrake macht daraus 25 Bilder, das sieht dann sehr unruhig und ruckelig aus, besonders auf den neuen TVs.

    Wenn du eine Minute oder so an Material hochlädst, versuche ich mal was...

    Also ich schätze mal, dass auf den deutschen PAL DVDs einfach schlecht konvertiertes NTSC-Material drauf ist.

    Das müsste man erstmal deinterlacen und vielleicht auf NTSC zurückführen, Blends entfernen etc... ?! (Frage an die Experten???)

    Wenn das Material Deinterlaced ist, kann man anfangen es zu resizen und zu schärfen.

    Das wird wohl nicht ohne Avisynth-Script gehen.

    Aber da gibt es bessere Leute für als mich....


    PS: Von dem AI Topaz-Kram bin ich auch nicht so überzeugt. Das erzielt wohl nur gute Ergebnisse bei gutem Ausgangsmaterial. Ich hatte bei meinen DVD-Rips auch keine Überzeugung gefunden. Da bleibe ich lieber bei den herkömmlichen Resizern und Nachschärfern.

    Aber bei dir wird es der Fall sein, dass dein Material interlaced ist. Damit kommt das Tool wohl nicht klar.

    Ich habe mal was mit meinen begrenzten Kenntnissen programmiert.

    Da ich ständig auf der Suche nach einem guten Szenenerkenner war und fast alle Tools, die es dazu zu finden gibt, mir zu blöd waren, bin ich bei einem Avisynth-Script von "StainlessS" aus dem englischen Doom9-Forum geblieben. Das hatte meiner Meinung nach die besten Ergebnisse. Das Script spuckt eine Textdatei aus mit Anfangs und Endframes der gefundenen Szenen.

    Bloss fand ich es immer umständlich die Textdatei zu durchforsten und Falscherkennungen manuell nachzuschauen. Darum habe ich mir ein kleines Tool gebaut, was diese Txtdatei ausliest und es möglich macht einzelne Szenen anzuspringen und nachzuschauen, ob etwas übersehen wurde oder vielleicht ein Schnitt erkannt wurde, wo gar keiner ist. Daraufhin müsste man die Settings des Avisynth-scripts nochmal anpassen.

    Naja, und dann kam mir die Idee, in dem Tool gleich noch die Ausführung des Scriptes zu integrieren. So dass auch eine User ohne Avisynth- Kenntnisse eine Szenenerkennung starten kann.

    Das Tool ist nun soweit fertig. Es basiert auf ffmpeg und Avisynth+ 3.7xx.


    Da ich nicht weiß, ob ich das Script von StainlessS einfach hier in meinem Tool veröffentlichen darf und da das Tool in Visual Studio 19 programmiert wurde (und ich keine Ahnung von Lizenzen habe, ich verwende eine Studentenversion), werde ich es hier nicht zum Download anbieten. Aber wer mich anschreibt, dem kann ich einen Link nicht verwehren ;)


    Wollte nur nochmal anmerken, dass es wohl so ist, dass das Dain wirklich nur zwischen zwei Bildern interpoliert. Es nimmt und braucht keine frames mehr drumherum. Für beschleunigte Bewegungen ist das sicher nicht optimal weil es ja einfach das Objekt linear in die "Mitte" setzt aber ich glaube, das fällt bei den kurzen Zeitabständen nicht auf.

    Naja, an der eigentlichen Interpolation konnte ich nichts aussetzen. Siehe hier:


    Aber klar müssen einige Speicherprobleme noch behoben werden.




    In der 0.42 soll folgendes kommen:

    Zitat

    My modifications to interpolate multiple frames at the same time are going well, i'm feeling confident it will be ready for 0.42.

    Zitat

    ich frage mich, warum must du ~150 einzel aufrufe tätigen?


    Weil ich mir nicht anders zu helfen weiß. Ich baue gerade eine Lösung für DAIN (Thema hier)


    Ich habe eine Liste (TXT-Datei) wo alle Szenenübergänge eines Videos aufgelistet sind. Dain hat beim Rendern der Zwischenbilder an den Szenenübergängen unschöne Matschbilder erzeugt. Ich will diese Matschbilder austauschen gegen ganz einfache Blend-Bilder.

    Mein Tool macht (nach grober Durchsicht ob die Szenen auch alle passen) folgendes:


    0. Gehe ich die Textdatei und suche dir die Framecodes der nächsten Szene raus, die Bilder die Dain erzeugt sind alle nach Framecodes durchnummeriert

    1. Nimm an Hand des Framecodes das letzte Bild der vorigen Szene -> kopiere es in einen Unterordner mit dem Namen "Ende.png"

    2. Nimm erstes Bild der aktuellen Szene -> kopiere es in einen Unterordner mit dem Namen "Anfang.png"

    3. Führe das statische AV-Script aus

    Code
    1. a=ImageSource("Ende.png", end=0)
    2. b=ImageSource("Anfang.png", end=0)
    3. c=Layer(a, b, "fast")
    4. c=ImageWriter(c.ConvertToRGB32(), file="Blend%00d.png", start=0 , end=1, type= "png")
    5. return c.info

    was ein Blend0.png erzeugt

    4. Kopiere das Blend0.png über das aktuelle von Dain erzeugte "Matschbild".

    5. Fange wieder bei 0. an


    bei 151 Szenen im Video macht er das eben 150 mal.


    Das Programm ist soweit schon fertig. Natürlich noch nicht ausgereift aber als Werkzeug erstmal ganz gut.

    Das Programm gibt mir auch einen Einblick auf die Szenenübergänge, da kann man sehen, ob es wirklich ein Szenenübergang ist oder ob der "Erkenner" nur eine große inhaltliche Veränderung im Bild als neue Szene erkannt hat. Dann kann man entscheiden ob man das interpolierte Dain-Bild behalten will oder ein Blendframe mehr Sinn macht, weil angenehmer fürs Auge....

    Ich bastle gerade an einem Tool (in FreePascal woraus ich ein Avisynthscript via Commandozeile starten will.

    Das Script wird so 150 mal (vielleicht später auch mehr) gestartet, berechet ein Frame, dieses Frame lasse ich per Imagewriter auf die HDD schreiben und dann wird das Script wieder geschlossen.

    Ich rufe das Script nicht mit einem Mediaplayer auf, sondern mit der Zeile "avsmeter.exe meinscript.avs"

    Mir ist kein anderes Programm geläufig womit ich ein Script schnell per Commando ausführen lassen könne. Wie gesagt und das über 150 mal und das dauert mehrere Minuten.

    Wisst ihr eine schnellere Lösung ein Script per CMD aufzurufen?