• IT-Karriere:
  • Services:

Und wie erreicht man 60 fps oder 120 fps?

Anstatt zu versuchen, den Benchmark 120 fps in dieser Auflösung laufen zu lassen und aufzunehmen - was in keiner Hardwarekonstellation möglich ist -, ist der Trick, das Programm auszubremsen. Am besten funktioniert da Cheatengine.

Stellenmarkt
  1. NÜRNBERGER Versicherung, Nürnberg
  2. Drägerwerk AG & Co. KGaA, Lübeck

Alle Programme, die ich vor Cheatengine ausprobiert habe, brachten schlechtere Ergebnisse. Cheatengine ist zudem ein Beispiel für guten Support. Bis Cheatengine 6.2 gab es das Limit, dass der Speedhack-Wert nur zwei Nachkommastellen hat und keine Brüche akzeptiert. Im Fall eines Faktors von 1/30, um in Bandicam mit 2 fps aufzunehmen und 60 fps als Resultat zu bekommen, war der Speedhack-Wert vor dem Fix auf 0,03 statt 0,033333... gestellt. Das machte es schwieriger, bestimmte Verlangsamungen zu erreichen und Audio zu synchronisieren.

Zum Ausbremsen sind keine komplizierten Scans oder Ähnliches nötig. Es reicht das interne LUA-Scripting mit der Funktion speedhack_setSpeed(). Nach dem Start wird "Show Cheat Table Lua Script" im Menü "Table" geöffnet.

  • In Bandicam das richtige Format auswählen (Bild: Badicam/Screenshot: Golem.de)
  • Unter "Image" das geeignete Bildformat bestimmen  (Bild: Badicam/Screenshot: Golem.de)
  • Weitere Einstellungen in Bandicam  (Bild: Badicam/Screenshot: Golem.de)
  • Das LUA-Skript der Cheatengine öffnen (Bild: Cheatengine/Screenshot: Golem.de)
  • Das LUA-Skript für den 3DMark Night Raid. (Bild: Cheatengine/Screenshot: Golem.de)
  • Einen passenden Dateinamen wählen (Bild: Cheatengine/Screenshot: Golem.de)
  • Bulk Rename Utility hilft bei der Benennung. (Bulk Rename Utility/Screenshot: Golem.de)
Das LUA-Skript der Cheatengine öffnen (Bild: Cheatengine/Screenshot: Golem.de)

Die bequemste Variante ist, einen Hotkey zu definieren, um ein beliebiges Programm mit dem gewünschten Faktor auszubremsen. Mit einem Timer sorgt man dafür, dass Cheatengine keine unnötige Systemlast erzeugt. Mit "Execute script" wird es aktiviert. Hier ist das Beispiel für den 3DMark Night Raid.

  • In Bandicam das richtige Format auswählen (Bild: Badicam/Screenshot: Golem.de)
  • Unter "Image" das geeignete Bildformat bestimmen  (Bild: Badicam/Screenshot: Golem.de)
  • Weitere Einstellungen in Bandicam  (Bild: Badicam/Screenshot: Golem.de)
  • Das LUA-Skript der Cheatengine öffnen (Bild: Cheatengine/Screenshot: Golem.de)
  • Das LUA-Skript für den 3DMark Night Raid. (Bild: Cheatengine/Screenshot: Golem.de)
  • Einen passenden Dateinamen wählen (Bild: Cheatengine/Screenshot: Golem.de)
  • Bulk Rename Utility hilft bei der Benennung. (Bulk Rename Utility/Screenshot: Golem.de)
Das LUA-Skript für den 3DMark Night Raid. (Bild: Cheatengine/Screenshot: Golem.de)

N sieht für normale Geschwindigkeit, M bremst um den Faktor 60 aus, und K um den Faktor 360. Faktor 360 bedeutet, dass Night Raid statt knapp vier Minuten über 24 Stunden läuft, während Bandicam alle drei Sekunden eine 388 MByte große bmp-Datei schreibt.

Eine schnellere Screenshot-Folge, wie etwa eine Verlangsamung um den Faktor 300 und alle 2,5 Sekunden ein Screenshot, sorgt für inkonsistentes Timing und sichtbare Mikroruckler im Video. Für die etwa 13 Minuten von der 3DMark06-Demo waren, pro Aufnahmeversuch, mehr als drei Tage zu veranschlagen.

Für die 16K-Aufnahme war noch ein weiterer Task nötig, denn über 90.000 Screenshots von 3DMark 06 mit je 388 MByte sind mehr als 30 Terabyte an Daten -, und so viel Platz habe ich nicht. Ein paralleler, auf einem anderen Computer laufender Task sorgte während der Aufnahme dafür, dass die bmp-Dateien mit Convert aus dem ImageMagick-Paket zu .jpg konvertiert und auf einem anderen Computer gespeichert wurden.

Je nachdem, wie viel Rechenzeit am aufnehmenden Rechner noch übrig ist, kann es auch dort laufen und muss nicht ausgelagert werden. Der Task ist ein im Loop laufendes .cmd-Script, hier im Beispiel zum Download ist es auf meine Konstellation angepasst. Aber mit etwas Programmiererfahrung kann es leicht angepasst werden:

  1. :: This batch runs in a loop to convert incoming .BMP files to .jpgs.
  2.  
  3. :: Its purpose is to save space, and save the .jpg files somewhere else than the busy source.
  4. :: The test1.txt / test2.txt / test3.txt trick allows a sort of multithreading from a batch file.
  5. :: It allows to start the first in foreground, the second in background and the third in background.
  6. :: Needed since Imagemagik-Convert is single-threaded and therefore too slow to convert fast enough to avoid the source running out of space.
  7. ::
  8. :: (c) 2019 Joachim Otahal, jou@gmx.net and youtube@joumxyzptlk.de

  1. @echo off
  2.  
  3. :start
  4. :: Destination directory
  5. mkdir E:\tmp\Bandicam 2>NUL
  6. :: Source directory, in my case a mapped network drive from the recording computer.
  7. :: This moves all movable source files out of the way. The purpose is to avoid access conflicts while the main computer is still capturing.
  8. mkdir b:\temp 2>NUL
  9. move B:\*.bmp b:\temp 2>NUL
  10.  
  11. :: Process the .BMPs
  12. for %%f in (b:\temp\*.bmp) do (
  13. echo %%f
  14. :: Part of "Multithread" control.
  15. if not exist %temp%\test1.txt if not exist %temp%\test2.txt if not exist %temp%\test3.txt copy NUL %temp%\test1.txt > NUL
  16.  
  17. :: the actual conversion in up to three threads
  18. if exist %temp%\test1.txt "C:\Program Files\ImageMagick-7.0.8-Q16\convert.exe" "b:\temp\%%~nf.bmp" -quality 92 "e:\tmp\Bandicam\%%~nf.jpg"
  19. if exist %temp%\test2.txt start "" /MIN "C:\Program Files\ImageMagick-7.0.8-Q16\convert.exe" "b:\temp\%%~nf.bmp" -quality 92 "e:\tmp\Bandicam\%%~nf.jpg"
  20. if exist %temp%\test3.txt start "" /MIN "C:\Program Files\ImageMagick-7.0.8-Q16\convert.exe" "b:\temp\%%~nf.bmp" -quality 92 "e:\tmp\Bandicam\%%~nf.jpg"
  21.  
  22. :: Part of "Multithread" control.
  23. if exist %temp%\test3.txt del %temp%\test3.txt
  24. if exist %temp%\test2.txt ren %temp%\test2.txt test3.txt
  25. if exist %temp%\test1.txt ren %temp%\test1.txt test2.txt
  26. )
  27. :: Clean up temp on source after conversion.
  28. rd /s /q b:\temp 2>NUL
  29. :: This avoids racing the batch at full speed if there is nothing to do.
  30. ping -n 2 127.0.0.1 >NUL
  31. goto :start

Beim Final-Fantasy-XV-Benchmark in 8K war es einfacher, da bei 8K die Screenshots als .jpg problemlos funktionieren. Es brauchte aber fünf Anläufe, bis eine passende Kombination von Verlangsamung (in diesem Fall 1/180) und Screenshot-Häufigkeit (in diesem Fall alle 1,5 Sekunden) gefunden war, um ein flüssiges Ergebnis ohne Mikroruckler zu erhalten.

Eine Verlangsamung auf 1/240 mit einer Screenshot-Frequenz von zwei Sekunden brachte nicht das gewünschte Ergebnis.

Ein grundsätzlicher Nachteil der Aufnahme einer Screenshot-Sequenz ist, dass der Ton fehlt. Es müssen immer zwei Aufnahmen gemacht werden, denn Audio läuft nicht synchron zur Verlangsamung. Es muss in einem getrennten Durchlauf mit niedriger Auflösung in normaler Geschwindigkeit aufgenommen werden, um es nachher mit dem hochauflösenden Video zu mischen.

Auch deswegen kann auf kein normales Gameplay aufgenommen werden, sondern immer nur auf selbstlaufende Demos oder ein aufgenommenes Gameplay, das von der Spielengine abgespielt wird.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 16K-Videos: 400 MByte für einen ScreenshotMindestens 32 GByte RAM zum Encodieren 
  1.  
  2. 1
  3. 2
  4. 3
  5.  


Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)

zilti 25. Okt 2019

Muss ja nicht HDMI-Murks sein. Gibt ja auch noch DisplayPort.

MainframeX 23. Okt 2019

Hast du schonmal Fotos mit der IQ4 gemacht ?

mhstar 19. Okt 2019

dann werden wir das verdammt noch mal auch verbrauchen! Sonst bräuchte das ja keiner mehr ...

Christian72D 18. Okt 2019

So, und du kannst immer noch niemand erklären, wieso man in 2014 Videos produziert, die...

sosohoho 17. Okt 2019

Aber dann ist gleich die erste Aussage von Golem falsch:"Die meisten Spiele können nur...


Folgen Sie uns
       


    •  /