• Hi Leute,
    ich hoffe, ihr könnt mir helfen.

    Also, ich möchte ein paar Videoclips (10fps) von einer Digitalkamera in bewegungskompensierte 25 fps umwandeln.
    Hab es mit MotionPerfect versucht, aber das ist Schrott, deshalb will ich mal AviSynth probieren. Hab Version 2.5 und MVTools 1.3.0.
    Was muss ich jetzt in das Skript eintragen. Momentan sieht es so aus:

    loadplugin("C:\Programme\AviSynth 2.5\plugins\MVTools\mvtools.dll")
    AVISource("H:\video01.avi")


    BITTE...HILFE...

  • Gleiches Problem inklusive Lösungsvorschlag hier zu finden:
    http://forum.gleitz.info/showthread.php?p=294655

    • Quellenangabe anpassen
    • "num" auf 25 stellen
    • Sich aus dem Kopf schlagen, ein zur Gänze artefakt- und ruckelfreies Resultat von bester Qualität zu bekommen.
  • Das reizt die Möglichkeiten noch lange nicht aus.

    Matthias hat die "Einfach-Variante" gepostet. Etwas besser, aber auch langsamer, geht's mit 2+2 Bewegungsvektoren:

    Zitat

    Zitat von MVTools Documentation

    To change fps with MVFlowFps2:

    Code
    # Assume progressive PAL 25 fps source. Lets try convert it to 50.
    backward_vec = source.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1)
    # we use explicit idx for more fast processing
    forward_vec = source.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1)
    cropped = source.crop(4,4,-4,-4) # by half of block size 8
    backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel=2, idx=2)
    forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel=2, idx=2)
    return source.MVFlowFps2(backward_vec,forward_vec,backward_vec2,forward_vec2,num=50,idx=1,idx2=2)

    Mit den Artefakten, das ist leider ein grundsätzliches Problem der Methode. Es wurden schon verschiedene Vorschläge zur Minimierung der Artefakte gemacht. 100%ig perfekt sind sie nicht, aber es wird jedenfalls schon mal deutlich besser damit. Also am besten mal auf Doom9 diesen Thread durcharbeiten.

  • ach, ich geb's bald auf. Es funktioniert überhaupt nichts. Egal was ich in das Skript schreibe, an dem Video ändert sich nichts. Das Einzige was funktioniert ist "Interleave". Das wäre auch eine Alternative zur Bewegungskorrektur. Aber ich dachte, MVTools kann das vielleicht besser.

    Grüße

  • Grün ist von Dir.
    Blau ist mein Zitat aus der MVTools-Doku.

    Auf rot hättest Du noch selber kommen müssen. ;)

  • hey super, das Ergebnis ist hervorragend. Kein Vergleich zu MotionPerfect.
    Allerdings gibt es mittendrin immer ein paar Frames die nicht kompensiert werden. Das ruckelt dann. Wenn man da noch was machen könnte...
    Ich habe von dem Skriptaufbau leider überhaupt keine Ahnung.

  • Nochmal Hi,

    also, in meinen Videos gibt es einige Lichteffekte die ganz häßliche Artefakte erzeugen. Deshalb meine Anfängerfrage:
    Kann man bei MVTools einzelne Frames vom Interpolieren ausschließen????

    Grüße

  • Die Lösung des Problems ist folgende:

    -------------------------------------
    loadplugin("C:\Programme\AviSynth 2.5\plugins\MVTools\mvtools.dll")
    AVISource("E:\video.avi")

    Video01=last.Trim(0,100).convertfps(25)

    clip02=last.Trim(101,500)
    Video02=last.Trim(101,500).MVFlowFps2(clip02.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1),clip02.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1),clip02.crop(4,4,-4,-4).MVAnalyse(isb = true, truemotion=true, pel=2, idx=2),clip02.crop(4,4,-4,-4).MVAnalyse(isb = false, truemotion=true, pel=2, idx=2),num=25,idx=1,idx2=2)

    Video03=last.Trim(501,800).convertfps(25)

    clip04=last.Trim(801,1200)
    Video04=last.Trim(801,1200).MVFlowFps2(clip04.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1),clip04.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1),clip04.crop(4,4,-4,-4).MVAnalyse(isb = true, truemotion=true, pel=2, idx=2),clip04.crop(4,4,-4,-4).MVAnalyse(isb = false, truemotion=true, pel=2, idx=2),num=25,idx=1,idx2=2)

    Video05=last.Trim(1201,1500).convertfps(25)

    clip06=last.Trim(1501,1800)
    Video06=last.Trim(1501,1800).MVFlowFps2(clip06.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1),clip06.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1),clip06.crop(4,4,-4,-4).MVAnalyse(isb = true, truemotion=true, pel=2, idx=2),clip06.crop(4,4,-4,-4).MVAnalyse(isb = false, truemotion=true, pel=2, idx=2),num=25,idx=1,idx2=2)

    Video07=last.Trim(1801,0).convertfps(25)

    Video01 + Video02 + Video03 + Video04 + Video05 + Video06 + Video07
    --------------------------------------


    ROT sind die Frames die nicht interpoliert werden sollen, bei denen Artefakte auftreten

    GRÜN sind die Frames bei denen die Bewegungen ohne Fehler kompensiert werden

    Über das Ergebnis kann man nicht meckern, man kann framegenau die Artefakte herausschneiden, ohne Übergangseffekte o.ä.
    Es macht zwar ein bisschen Arbeit, aber wenn es das Video wert ist...

    Grüße

  • hmm...von den Parametern habe ich keine Ahnung, ich habe das Skript aus Anderen zusammen gewürfelt und es funktioniert auch ganz gut.

    Video02=last.Trim(xxx,xxx) kann durch Video02=clip02 usw. ersetzt werden, dann ist die Eingabe einfacher.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!