FPS konventieren

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

  • FPS konventieren

    Anzeige
    Hey,

    Ich habe ein Problem: Ich möchte in Counter Strike einen Video-Edit machen. An mehreren Stellen möchte ich eine Super Slowmotion machen. Um diese Super Slowmotion zu erstellen muss ich quasi ein 300 FPS Video machen. Ja. 300 Frames die Sekunde. Da ich das natürlich mit DXTory kaum funktioniert, nehme ich die Ingame Slowmo Funktion. Ich verlangsame die Zeit auf 1/10 und nehme das ganze dann mit 30 FPS auf.
    Jetzt das Problem: Ich möchte diese 30 FPS jetzt 10x verschnellern und trotzdem alle Frames behalten. Also damit ich quasi mein gewünschtes Echtzeit 300 FPS Video habe. Wie mache ich das? Das geht garantiert irgendwie mit Virtual Dub. Nur ich weiß nicht wie.

    Das ganze muss natürlich auch unkomprimiert sein. Hier geht es nur um ein paar Sekunden Video. Das da ganze GB an Daten rumkommen ist mir bewusst. Danke für die Hilfe :)

    Performer

    @Julien @De-M-oN @Sagaras @RealLiVe
  • Beim SSM ist ein Plugin bei mit denen man seine Videos einen Slow oder Speedmotion geben kann durch angabe von neuen FPS. Dabei wird Ton und Video verlangsamt oder verschnellert ohne Frames dabei zu verlieren.

    Beispiel:

    Quellcode

    1. Import("C:\SSM\Plugins\Blend.avsi")
    2. AVISource("Video.avi", true).AssumeFPS(25, 1) # Aufnahme ist ein 25 FPS Video
    3. SlowMotion(50, 400, 1800)


    Damit wird das Video zwischen Frame 400 und 1800 auf 50 FPS beschleunigt und dann auf 25 FPS wieder runtergesetzt.
    Genauso auch andersherum bei SlowMotions zum Verlangsamen.

    Ein weiterer SlowMotion Befehl unter dem anderen SlowMotion würde sich auf die neue Framelänge des letzten beziehen.

    Sprich durch das erste SlowM. wird das Video kürzer, weil der Abschnitt schneller abgespielt wird.
    Das zweite SlowM. müsste dann Frameangaben bekommen die vom ersten SlowMotion entstanden sind.

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

  • @Sagaras Ich muss das in Vegas machen. Da habe ich mehr Kontrolle. Ich brauche dazu schon eine Visuelle Oberfläche und kein Script. Das ganze wird auch in einer nicht linearen Kurve gemacht und nicht apprupt. Außerdem muss ich bestimmte Plugins aus Vegas nutzen. Da kann ich das direkt da machen.

    Ich muss einfach das Problem im ersten Post lösen, sonst nichts. Und vorallem unkomprimiert und 2tens wird x264 in Vegas NICHT AKZEPTIERT.

    Trotzdem Danke für die Mühe.
  • Eh, warum markierst du mich? Hab da doch keine Ahnung und dementsprechend genieße meinen Beitrag mit Vorsicht :P

    Nur die Wiedergabegeschwindigkeit der Datei ändern? Keine Ahnung was dir das bringt, aber ok:
    1. Entweder in VirtualDub direkt - da müsstest du einfach die AVI-Datei laden, die FPS-Zahl unter Video / Frame Rate anpassen, dann noch mit Direct Stream Copy (ebenfalls unter Video bzw. Audio zu finden) garnieren und wieder abspeichern. Das sollte die Frames unangetastet lassen - was mit der Audiodatei passiert weiß ich nicht, da wirst du dir aber denke ich schon behelfen können.

    Das würde die Videostreams übernehmen und du würdest den Codec behalten - falls du unkomprimiert willst müsstest du einen anderen recompress wählen und die Kompression unter Video -> Compression anpassen.

    Oder du erstellst dir ein AVISynth-Skript, lädst die Videodatei mit AVISource und nutzt den AssumeFPS-Befehl. Diesen Skript könntest du in VirtualDub laden.
    Videoempfehlungen:
    ShimmyMC
    NuRap
    ShimmyMC
    Napoleon Bonaparte

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

  • Anzeige
    Sofern Vegas das kann (ohne Gewähr):
    Du kannst in Vegas eine Sequenz mit 300 FPS erstellen, das Material hinein laden und dann mit 1000 Prozent Geschwindigkeit abspielen lassen. Editierst du dann darin rum kannst du bei einer NLE das logischerweise wieder ohne Probleme strecken.

    Ansonsten:
    AviSource("video.avi", audio=false).AssumeFPS(300, 1)
    ... und Audio dann in irgendeiner beliebigen Software anpassen oder vielleicht sogar mal schauen, ob audio=true funktioniert.
  • Von Vegas war am Anfang gar nicht die Rede ^^ Sondern hab da vielmehr VDub rausgelesen ^^

    Mal so am Rande:

    Das Spiel hast du um 1/10 in SlowMotion mit 30 FPS aufgenommen. Und jetzt willst du daraus ein 300 FPS Video machen.

    Naja, wie gesagt: Skript:

    Quellcode

    1. Import("C:\SSM\Plugins\Blend.avsi")
    2. AVISource("Video.avi", true).AssumeFPS(30, 1) # Aufnahme ist ein 30 FPS Video
    3. SlowMotion(300, 0, last.framecount)


    Das Skript in Vdub schmeißen und mit Lagarith speichern. Audio dann als PCM WAV

    Und schon hast du dein 300FPS Video im Lossless Style.

    Dann kannste das in Vegas laden und es als normales Video behandeln.
  • If sync_audio (which is false by default) is true, it also changes the audio sample rate to match the duration of the video, the pitch of the resulting audio gets shifted.

    AssumeFPS(300,1,true)

    würde also auch den sound verschnellern.
    Aktuelle Projekte/Videos




    Seit etlichen Monaten komplett veraltete Signatur, wie ihr sicherlich schon bemerkt habt. Habe mittlerweile mehr als 4 Projekte, weshalb die Signatur leider momentan gesprengt ist xD
    Notdürftig die Liste was aktuell läuft: Unreal | Complex DooM (LPT) | DooM 2016 | Need For Speed III: Hot Pursuit | Dirt Rally | Dirt 4 | WRC 7
  • De-M-oN schrieb:

    AssumeFPS(300,1,true)


    Naja, ich hab mal bei mir nachgeschaut wie ich das gemacht hatt und hatte da starke Probleme mit AssumeFPS und der Audiospur am Anfang gehabt. Deswegen musste ich diese SlowMotion Funktion auch anders lösen.
    Weil bei einer bestimmten Samplerate macht er bei sync_audio=true schluss und spielt den Ton normal ab, aber Video ist verschnellert. Effekt = 0. Gerade wenn es schon um den Faktor 10 geht.

    Würde ich anders machen, nämlich so:

    Quellcode

    1. AVISource("Test.avi").AssumeFPS(30, 1)
    2. SlowMotion(300)
    3. Function SlowMotion(clip clip0, float "nfps", int "sframe", int "eframe", bool "inf") {
    4. sframe = Default(sframe, 0)
    5. eframe = Default(eframe, clip0.framecount)
    6. nfps = Default(nfps, 30)
    7. inf = Default(inf, false)
    8. c1 = clip0.Trim(0, sframe-1)
    9. c1 = (inf == True) ? c1.Subtitle("Framerate : " + string(c1.framerate) + " FPS\nSamplerate: " + string(round(c1.audiolengthf / (c1.Framecount / float(c1.framerate)))) + "Hz", font="Courier New", lsp=1).KillAudio() : c1.KillAudio()
    10. c2 = clip0.Trim(sframe, eframe)
    11. c2_2 = c2.AssumeFPS(nfps)
    12. c2_2 = (inf == True) ? c2_2.Subtitle("Framerate : " + string(nfps) + " FPS\nSamplerate: " + string(round(c2.audiolengthf / (c2.Framecount / float(nfps)))) + "Hz", font="Courier New", lsp=1) : c2_2
    13. #c2_2 = c2_2.ChangeFPS(clip0.Framerate, Linear = false).KillAudio()
    14. c3 = clip0.Trim(eframe+1, clip0.framecount)
    15. c3 = (inf == True) ? c3.Subtitle("Framerate : " + string(c3.framerate) + " FPS\nSamplerate: " + string(round(c3.audiolengthf / (c3.Framecount / float(c3.framerate)))) + "Hz", font="Courier New", lsp=1).KillAudio() : c3.KillAudio()
    16. a1 = clip0.Trim(0, sframe-1)
    17. a2 = clip0.Trim(sframe, eframe).AssumeSampleRate(round(c2.audiolengthf / (c2.Framecount / float(nfps)))).ResampleAudio(c2.audiorate).ConvertAudioTo16bit()
    18. a3 = clip0.Trim(eframe+1, clip0.framecount)
    19. return (sframe == 0 && eframe == clip0.framecount) ? Audiodub(c2_2, a2) : (sframe==0) ? AudioDub(c2_2,a2)++AudioDub(c3,a3) : (eframe==clip0.framecount) ? Audiodub(c1,a1)++AudioDub(c2_2,a2) : Audiodub(c1,a1)++AudioDub(c2_2,a2)++AudioDub(c3,a3)
    20. }
    Alles anzeigen


    Die SlowMotion Funktion habe ich nämlich bei der Erstellung mit AssumeSampleRate ausgestattet, die weitaus besser arbeitet mit höheren Faktoren.

    Im Grunde wird bei Audio ja nur die Hertz Zahl erhöht. Ich habe auch die Zeile aus der Funktion entfernt die das Video wieder in die geladene VideoFPS zwitschen lässt.

    Aber ohne diese Zeile darf man keine Frameangaben machen für Bereiche. Es muss über das gesamte Video gehen. Ergebnis ist dann ein 300 FPS Video das von 30 FPS mit den Faktor 10 erhöht wurde. Gleiches für die Hertz Zahl bei Audio.