Video ruckelt

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

  • Anzeige
    Schön guten Morgen
    Hab nur ich das Problem das diese Videos ruckeln?
    Wobei das erste mehr ruckelt?

    youtu.be/Kwifnq298_w
    youtu.be/M3LURgHeD3c


    Skript:
    Spoiler anzeigen
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\resamplehq.dll")
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\blockbuster.dll")
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\mvtools2.dll")
    Global breite = 3200
    Global hoehe = 1800
    Global AR = 0

    SetMemoryMax(512)
    SetMTMode(3,2)
    AVIload("A:\Bioshock\BioShockInfinite 2014-01-17 22-56-16-499.avi", 0, 0, 0, -0, -0)

    SetMTMode(2)
    sum = MSuper(pel = 2)
    MFlowBlur(sum, MAnalyse(sum, isb = true), MAnalyse(sum, isb = false), blur = 15.0)

    Blockbuster("Blur", Block_size=4, Detail_min=75, Detail_max=100, Luma_offset=0, Luma_threshold=25, Strength=100)

    Function AVIload (String file, int loading, int cl, int co, int cr, int cu) {
    Try {
    clip0 = (loading == 1) ? FFVideoSource(file, threads=1) : AVISource(file, false)
    clip1 = clip0.AssumeFPS(Float(Round(clip0.Framerate*1000))/1000).ChangeFPS(30.000)
    Global FPS = clip1.framerate
    clip1 = clip1.Crop(cl, co, cr, cu)
    clip1 = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
    clip1 = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.ResampleHQ(breite, ceil(float(Clip1.height * breite) / clip1.width), Kernel = "Spline16", dstcolorspace="RGB24") : Clip1.ResampleHQ(ceil(float(clip1.width * hoehe) / clip1.height), hoehe, Kernel = "Spline16", dstcolorspace="RGB24")) : clip1.ResampleHQ(breite, hoehe, Kernel = "Spline16", dstcolorspace="YV12")
    back = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? (0 == 1) ? ImageSource("", 0, 0, Clip1.framerate).Loop(clip1.Framecount).KillAudio().ResampleHQ(breite, hoehe, Kernel = "Spline16", dstcolorspace="YV12") : BlankClip(clip1.framecount, breite, hoehe, "YV12", Clip1.framerate).KillAudio() : clip1
    Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV12() : (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    }
    Catch (Error) {
    Return BlankClip(0, breite, hoehe, "YV12", FPS).KillAudio()
    }
    }


    Edit:
    Mediainfo (wenn das reicht)

    Spoiler anzeigen
    Allgemein
    Vollständiger Name : A:\Bioshock\BioShockInfinite 2014-01-17 22-56-16-499.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format-Profil : OpenDML
    Dateigröße : 13,0 GiB
    Dauer : 2min 49s
    Gesamte Bitrate : 656 Mbps
    Originale Source-Form/Vertrieb durch : Video:YUV420|CompressV3 Audio:Line 1 (Virtual Audio Cable)
    Kodierendes Programm : DxtoryCore ver2.0.0.124

    Video
    ID : 0
    Format : xtor
    Codec-ID : xtor
    Dauer : 2min 49s
    Bitrate : 655 Mbps
    Breite : 2 560 Pixel
    Höhe : 1 440 Pixel
    Bildseitenverhältnis : 16:9
    Bildwiederholungsrate : 30,000 FPS
    Bits/(Pixel*Frame) : 5.923
    Stream-Größe : 12,9 GiB (100%)

    Audio
    ID : 1
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 2min 49s
    Bitraten-Modus : konstant
    Bitrate : 1 411,2 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 44,1 KHz
    BitDepth/String : 16 bits
    Stream-Größe : 28,6 MiB (0%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 999 ms (29,96 Video-Frames)



    Die Erscheinung und das testen wegen Ruckeln wurde durch diese beiden Videos erschaffen.

    30fps : youtube.com/watch?v=7MZ3XmTOxFg : in 30 fps aufgenommen
    25fps : youtube.com/watch?v=7uTY7XyWf2k : in 25 fps aufgenommen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von GelberDrache92 ()

  • Das Skript nützt einen nicht grad viel, wenn man keine Infos zum Quellvideo hat was verarbeitet wird. (Mediainfo)

    Und SSM wurde nicht upgedatet ^^ (Ich sollte in dem Skript ne Versionsnummer noch eintragen lassen xD)

    Obs am MT liegt oder an der Quelle weiß ich aber nicht. Daher wäre die Mediainfo schon mal interessant.
  • So das zweite ist nicht mehr Privat 8|
    Ich frag mich gerade was Youtube da nur gemacht hat mal wieder xD
    Und ja ist Dxtory

    Edit@ Sagaras
    Ok das muss ich dir lassen das geht bei dir echt schnell mit denn Updates xD
    Naja das Skript ist von 4.7

    Mediainfo (wenn das reicht)

    Spoiler anzeigen
    Allgemein
    Vollständiger Name : A:\Bioshock\BioShockInfinite 2014-01-17 22-56-16-499.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format-Profil : OpenDML
    Dateigröße : 13,0 GiB
    Dauer : 2min 49s
    Gesamte Bitrate : 656 Mbps
    Originale Source-Form/Vertrieb durch : Video:YUV420|CompressV3 Audio:Line 1 (Virtual Audio Cable)
    Kodierendes Programm : DxtoryCore ver2.0.0.124

    Video
    ID : 0
    Format : xtor
    Codec-ID : xtor
    Dauer : 2min 49s
    Bitrate : 655 Mbps
    Breite : 2 560 Pixel
    Höhe : 1 440 Pixel
    Bildseitenverhältnis : 16:9
    Bildwiederholungsrate : 30,000 FPS
    Bits/(Pixel*Frame) : 5.923
    Stream-Größe : 12,9 GiB (100%)

    Audio
    ID : 1
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 2min 49s
    Bitraten-Modus : konstant
    Bitrate : 1 411,2 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 44,1 KHz
    BitDepth/String : 16 bits
    Stream-Größe : 28,6 MiB (0%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 999 ms (29,96 Video-Frames)

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

  • Anzeige
    Das ChangeFPS kann man sich sparen zu setzen, wenn alle Videos die im SSM in der Liste über die gleiche FPS verfügen. Das Teil ist nur zur Anpassung da.

    Weil nützt dir ja eh nix von 30 auf 30 zu changen, oder? ^^

    Von 30 auf 25 FPS ist das logisch das es hin und wieder mal stocken tut. Das 25 FPS Video hinkt nämlich hinterher zur 30 FPS Aufnahme. Um genau 1 Frame.

    Du müsstest also in 25 FPS aufnehmen, wenn du 25 FPS Videos haben willst. Oder in 50 FPS. Dann kann der Changer besser arbeiten bei 50. Also entweder gleich in 25 oder in 50 FPS aufnehmen.

    Wärend 30 FPS bei 200 Millisekunden bereits 6 Frames hat, hat das 25 FPS Video in dieser Zeit erst 5 Frames

    Ab dieser Zeit. Also jede 200ste Millisekunde ist das Bild vom 30 FPS Video gleich dem des 25 FPS Video. Ansonsten hinkt das 25 FPS Video hinterher um 1 Frame.

    Bedeutet das beim Changen irgendwo ein komplettes Bild fehlt. Dieses fehlende Bild erzeugt den Ruckler im Video.

    Würde nicht passieren wenn man gleich in 25 FPS aufnehmen würde, oder von 50 auf 25 changed.


    Zudem laufen Spiele in der Regel mit höheren FPS. 60, 120, 180, 240 etc. Wärend man spielt läuft alles flüssig, doch die Aufnahme bereits nicht mehr. Jedenfalls nicht mit 30 FPS.

    Aber bei deinen 30 FPS Video war eigentlich alles ok soweit. <- Ansonsten mal die Zeit ansagen im Video wo das am deutlichsten zu sehen ist.

    1 Frame / 30 FPS = 0,033 Sekunden = 33 Millisekunden
    1 Frame / 25 FPS = 0,04 Sekunden = 40 Millisekunden

    Wenn du hier von 30 auf 25 changen tust ergibt sich die Konstelation das Frames die Zeitlich gesehen gar nicht so lange abgespielt werden, einfach kopiert werden.
    Dann hat man 2 Bilder hintereinander die identisch sind. Und zwars immer dann wenn se Zeitlich identisch sind. Also alle 200 Millisekunden ist ja das 25 FPS Video gleich dem 30 FPS Video vom Bild her. Im nächsten Frame aber wärend das 30 FPS Video weiter geht, bleibt beim 25 FPS Video das Frame so wie es ist. Sprich eine Kopie um das Zeitverhältnis auszugleichen. Weil es kann ja nur mit den Bildern des 30 FPS Video arbeiten.

    Rein von den Zeitabweichungen die 7 Millisekunden betragen zwischen den beiden FPS Zahlen ist es halt zu empfehlen auch in diesen FPS aufzunehmen. Oder halt in etwas ähnlichem was man dann halbieren könnte. Bei 25 wäre es halt 50 FPS und bei 30 halt 60 FPS.

    Die Ruckler beim 25 FPS Video bei dir werden halt durch falsche Zeitliche Korrektur hervorgerufen. ChangeFPS gleicht zwars Zeitlich gesehen alles an. Kopiert aber Bilder oder entfernt diese wenn sie zur neuen FPS nicht passen sollten. Halt um die Zeit wieder herrauszubekommen.

    Gedankengang den man haben sollte wäre: War man wirklich zur 33 Millisekunde an dieser Bildposition oder erst ab der 40 ms ? ;D Und das verhaut dein ganzes Video.

    Wie gesagt... dein 30 FPS Video sieht ok aus
  • OK dann werd ich das noch mal gleich in 25 fps aufnehmen und gucken was dann dabei rauskommt.

    Da Grund warum ich da überhaupt drauf zu stolpern kam waren die beiden Videos
    30fps : youtube.com/watch?v=7MZ3XmTOxFg : in 30 fps aufgenommen
    25fps : youtube.com/watch?v=7uTY7XyWf2k : in 25 fps aufgenommen

    Mediainfo der 25 fps.
    Spoiler anzeigen
    Allgemein
    Vollständiger Name : A:\Osu!\Aufnahme\GelberDrache92 - Commercial Club Crew vs Clubmaster - Sakura Girl [Hard] (2013-08-18) Osu.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format-Profil : OpenDML
    Dateigröße : 9,95 GiB
    Dauer : 2min 31s
    Gesamte Bitrate : 563 Mbps
    Originale Source-Form/Vertrieb durch : Video:YUV420|CompressV3 Audio:Line 1 (Virtual Audio Cable)
    Kodierendes Programm : DxtoryCore ver2.0.0.124

    Video
    ID : 0
    Format : xtor
    Codec-ID : xtor
    Dauer : 2min 31s
    Bitrate : 561 Mbps
    Breite : 2 560 Pixel
    Höhe : 1 440 Pixel
    Bildseitenverhältnis : 16:9
    Bildwiederholungsrate : 25,000 FPS
    Bits/(Pixel*Frame) : 6.090
    Stream-Größe : 9,92 GiB (100%)

    Audio
    ID : 1
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 2min 31s
    Bitraten-Modus : konstant
    Bitrate : 1 411,2 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 44,1 KHz
    BitDepth/String : 16 bits
    Stream-Größe : 25,6 MiB (0%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 999 ms (24,98 Video-Frames)


    Was wir halt festgestellt haben:
    Das erste ruckelt nicht im Gegensatz zum zweiten, dafür ist das zweite halt schärfer.

    Beim 30 fps Bioshock sieht man halt wo er das Wasser entlang geht dieses ruckeln.

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

  • Das zweite ist schärfer weil 25 FPS weniger Bilder beherbergt und somit die Bitrate besser untereinander aufteilen kann die YT gibt. Resultat sind schärfere Bilder.

    Kann man sich so vorstellen das man eine gewisse Dateigröße nur hochladen darf, aber die Datei durch mehr Inhalt ziemlich stark herrunterkomprimiert werden muss damit es passt. Und wenn etwas zu stark komprimiert ist sieht es halt schlecht aus.
    Ist es weniger komprimiert, weil weniger Daten da sind, dann steigt auch die Qualität dadurch.

    Noch mal um auf dein 25 und 30 FPS Video zu kommen.

    Zeitzonen von einen 30 zu 25 FPS Change:
    [table='FPS/Frames,1,2,3,4,5,6,7,8,9'][*]
    30 FPS
    [*]
    33ms
    [*]
    66ms
    [*]
    100ms
    [*]
    133ms
    [*]
    166ms
    [*]
    200ms
    [*]
    233ms
    [*]
    266ms
    [*]
    300ms
    [*]
    25 FPS
    [*]
    -
    [*]
    40ms
    [*]
    80ms
    [*]
    120ms
    [*]
    160ms
    [*]
    200ms
    [*]
    -
    [*]
    240ms
    [*]
    280ms
    [/table]

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

  • GelberDrache92 schrieb:

    mit der Komprimierung wird das bei denn beiden nichts zu tun haben da selbst das 4K Osu Video nur 150 MB hat

    Naja doch. Es macht schon ein Unterschied ob sich 25 FPS beispielsweise 2000 Bitrate teilen oder 30 FPS 2000 Bitrate.

    Das andere mit der Auflösung ist aber auch ein Aspekt und damit haste natürlich auch recht. Ist ja auch logisch wenn YT ein 4K Video als Quelle bekommt oder ein 1080p Video.

    Je besser und größer die Quelle die YT bekommt, desto höher fällt die Qualität der unteren Auflösungsstufen aus.

    Aber dir ging es ja um die Ruckler, oder? ^^ Das ist wirklich weil einfach ein Bild alle 200 ms fehlt wenn du von 30 nach 25 changen tust.
  • ^^ Ich weiß. (Man ist das wieder schwer euch das zu erklären xD)

    Dein Spiel läuft höstwahrscheinlich immer mit der gleichen FPS. Und du fägst bei der Aufnahme die Bilder ab. Entwerder mit 30 FPS alle 33ms ein Bild oder mit 25 FPS alle 40ms ein Bild

    Die Aufnahme selbst arbeitet schon wie ein Changer. Was weiß ich... von 60 auf 30 oder von 60 auf 25

    Jetzt klar? ^^ Das Spiel hat doch auch ein Framewechsel der halt nur deutlich höher ist.

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

  • Ich bin immer noch überzeugt, dass das Ruckeln in den Videos vom Eröffnungsbeitrag nicht vom Kodieren kommt, sondern schon von Dxtory. Es sei denn, du kannst mit Sicherheit sagen, dass die Rohaufnahmen sehr viel flüssiger sind. ;) Aber gerade mit Bioshock Infinite hatte ich auch Probleme beim Grafiktest, auch hier musste ich SyncLock und WaitForBuffer ausmachen und die FPS limitieren, damit dieses Zittern nicht so extrem aufgetreten ist.
  • Warum schauste dir die Videos denn nicht vorher an bevor du sie hochladen tust? ^^ Sowas sieht man doch schon im eigenen Player.

    Wenn ich mir dein 25 FPS OSU anschaue merke ich gar nix das da was ruckelt. Einfach weil wenn ich das Video anschaue keinen Vergleich zu etwas habe. Würde ich das 30 FPS Video daneben noch laufen lassen, dann würde das auffallen. Aber so nicht. Das ist wirklich nur dann wenn man echt bewusst weiß wieviel FPS es sind und eventuell ein Vergleichsvideo hat.

    Das 30, 60 und höhere FPS füssiger sind, ist klar. Hättese du aber kein Vergleich gehabt dazu oder hättest die FPS nicht gewusst, wäre es dir selbst nie aufgefallen das das Video 25 FPS hat. ^^

    Dafür ist die Differenz einfach noch zu gering.

    Das ist so als würde man ein PAL Signal dessen FPS nur 25 betragen mit 30 FPS aufnehmen. Der der das aufnimmt denkt sich das 30 FPS flüssiger sind.

    Und jetzt sagt ihm jemand das er 25 FPS aufnehmen soll weil das PAL Signal nicht mehr unterstützt. Und auf einmal sagt derjenige das die 25 FPS Aufnahme ruckelt.

    Finde den Fehler ^^ Der gleiche Gedanke wäre wenn man sich die Frage stellt: Kann ich ohne elektronische Geräte auskommen?

    Das Empfindungsvermögen wird oftmals durch falsche Informationen getäuscht die man eventuell mal gehört hat oder irgendwo gelesen hat.

    Wie gesagt dein 25 FPS Osu ruckelt gar nicht bei mir. Finde ich jedenfalls so.

    Aber jetzt ist mir noch was aufgefallen das mein Videomaterial von Bioshock nachdem es bei Youtube hochgeladen ist doch sehr verpixelt ist
    img5.fotos-hochladen.net/uploads/miau26axzj9vwo.png

    Die Verpixlung kommt vermutlich entweder durch schlechten Encode oder das Video ist einfach zu komplex das es in einen Pixelsalat endet.
  • Sagaras schrieb:

    Warum schauste dir die Videos denn nicht vorher an bevor du sie hochladen tust? ^^ Sowas sieht man doch schon im eigenen Player.


    Wenn du damit die Pixel Probleme meinst... nein das sah auf dem Pc noch nicht so aus...
    Hier mal vergleich Pc zu Youtube:
    img5.fotos-hochladen.net/uploads/wtfnpr913g8az.png

    Mediainfo und Skript sind oben
    CRF 18 mit Slow
  • GelberDrache92 schrieb:

    Wenn du damit die Pixel Probleme meinst... nein das sah auf dem Pc noch nicht so aus...

    Meinte ich eher zu deinen 25 und 30 FPS Aufnahmen.

    GelberDrache92 schrieb:

    Ok wenn das so normal ist bin ich ja beruhigt :thumbdown:
    Hab das nur halt das erstmal so extrem denn unterschied gesehen... es war mir einfach an der hinteren linken Säule am Schatten so extrem aufgefallen.
    Naja dann mal danke und euch noch ein schönes Wochenende :D

    Ab diesen Punkt darfste dich bei YT bedanken dafür das die schon fast wie Camtasia codieren xD