Mikroruckler bei Videoaufnahme (OBS / ReLive / Fraps / etc.)

B

Bard

Gast
Wenn ich Spiele mit OBS/ReLive/Fraps oder anderen Aufnahmeprogrammen aufnehme oder streame, "ruckelt" das Video alle paar Sekunden obwohl das Spiel problemlos ohne Ruckler läuft.

Hier ein Videobeispiel mit OBS und ReLive, 2 mal HEVC mit der AMD Karte und 2 mal x264 mit der CPU:
(tritt bei allen Spielen auf, hier LoL nur als Beispiel)
(bei 0:01 _ 0:20 _ 0:41 _ 1:04 _ 1:17 _ 1:39)

X264 mit der Standardempfehlung von Twitch.
HEVC Einstellungen: https://i.imgur.com/a3LT7n0.png


Mein System:
Ryzen 7 1700X (UV -0.1v + aktuellster Chipsatztreiber)
32GB (2x 16GB) RAM 3000MHz CL 15 (D.O.C.P. Profil)
ASUS Prime X-370 Pro (neuste BIOS-Version)
Windows 10 mit Oktober-Update (war aber auch vorher schon so)
250GB SSD
4TB HDD
Radeon Treiber 20.10.1 (war auch bei vorherigen Versionen immer so)

RX 580 (wird drauf gespielt)
RX 550 (nimmt mit HEVC auf)

AOC Q3279VWFD8 (1440p 75Hz 10bit DisplayPort)
BenQ G2420HD (1080p 60fps 8bit HDMI)

Neuste Version von OBS Studio bzw. Radeon ReLive.


Folgendes hab ich schon probiert:

VSync/FreeSync an/aus, FPS limitiert/ohne Limit, jeweils alle Variationen
Nur 1 Monitor angeschlossen, auf 60Hz eingestellt
Monitore nur über die Haupt-Grafikkarte angeschlossen, bzw. 1x RX 580 und 1x RX 550 (kein Unterschied)
HDMI statt DisplayPort beim 1440p Monitor (kein Unterschied)

(FreeSync+VSync+60Hz lock gab das "Beste" Ergebnis bisher)

Nur eine der beiden Grafikkarten im System eingebaut zum Aufnehmen
Alles auf Werkeinstellungen, kein UV etc.
Windows neu aufgesetzt
Keine Hintergrundprogramme (ausser OBS oder Relive)
Alle Designeffekte und Ähnliches bei Windows deaktiviert
Preview bei OBS deaktiviert

---

Das Problem tritt auf egal in welcher Auflösung und mit welcher Bitrate aufgenommen wird.
Auch bei 640x480 und Bitrate 500 gibts das gleiche Problem.

Das Aufnahmeprogramm ist dabei auch egal, ob nun OBS / Fraps / ReLive und auch ob nun mit der CPU oder der Grafikkarte aufgenommmen wird.

Auch ist der Encoder nie überlastet, läuft also alles eigentlich "super".
 
Es könnte auch einfach um einen codec Inkompatibilität sein
AMD udv und vcn sind nicht annähernd so gut wie nvidia nvenc und nvdec
polaris kann hevc decodieren bis 4k und encodieren mit vce was im Gegensatz zu vcn nur bedingt geht. da dies explizit für H264 ist.
HEVC dagegen läuft auf dem vcn sdk und muss von der software unterstützt werden
vp9 können keine gcn karten decodieren oder encoden
tabelle dazu im link
https://en.wikipedia.org/wiki/Unified_Video_Decoder
nvidia dagegen hat einen ebsseren stand weil dies auch stärker in ffmpeg untertsützt wird
tabelle dazu
https://en.wikipedia.org/wiki/Nvidia_NVDEC
und nvenc und auch der Grund warum das besser ist fürs streamen besonders weil man lossless streamen kann mit h264
https://en.wikipedia.org/wiki/Nvidia_NVENC

nun das löst dein problem nicht
meine Lösung wäre auf vcn oder vce zu verzichten die rx550 raus
Und stattdessen OBS mit lossless recording an einen zweiten PC mittels capture card. dazu braucht es nur ein software adapter von blackmagic design.
Wichtig hier ist ssm oder SSD als speichermediuj da HDD ab 800mbit ins straucheln kommen.
Codec die sparsam sind bei aufnahme
iyuv stark veraltet
huffney stark veraltete könnte schlechterer qualität sein
wenn man diesen noch bekommt im netz cineform (ja der war mal von davinci resolve Betonung liegt hier auf war ist freeware allerdings nur in der vor davinci kauf somit völlig veraltet 2006 rum)
Sony yuv sofern man irgendein produkt von magix hat.
Zuletzt raw uncompressed größte bitrate.

Die alternative hardware encoder wie usb capture devices mit eigener HDD ohne Pc nutzbar.
Anschließen an nicht geschützten (hdcp) HDMI und aufnehmen
nachteil ist das man das nicht sicher sagen kann das es geht.
Alternative nvidia gpu rein da reicht eine gtx1650 locker den der nvenc chip ist identisch
Wegen dual gpu mit zwei unterschiedlichen Herstellern , das Thema ist ein problem da nvidia einfach den zugriff verweigert wenn eine amd gpu im system ist.
Nähste alternative ist navi kaufen da sollte die perfomance für streamen und recorden besser sein.
über cpu zu streamen wäre die letzte lösung allerdings Sollte man da wissen welche settiongs man einstellt bei obs

Streaming sollte
h264 crf 20 (je geringer der wert desto höher der Einbruch an fps, je höher der wert desto schlechter das bild).
zero latency das verhindert das man im video sich bei pausieren Klötzchen bilden quasi in jeden frame ist ein keyframe b frames sind dennoch vorhanden
fast decode das erleichtert den decoder die arbeit weil man quasi kein lookahead hat (vorschau auf nächste frame reduziert die encoderleistung und macht eine höhere bitrate).

das kann man auch für aufnehmen einstellen in Verbindung mit crf
gute h264 crf werte bei langsameren material.
crf 20-crf 23
bei schnellen material crf18-crf20
rechne bei 720p um die 6-9mbit
mit 1080p mit 9-12mbit
mit 1440p 18mbit

Fürs streamen wo man auf 6mbit limitiert wird bsp twitch
Empfiehlt es sich auf hardware encoder zu setzen diese laufen aber konsequent bei 6-18mbit auf 720p
Eine höhere Auflösung geht schlicht nicht. Da hilft nur ein PC zum streamen und ein pc zum spielen.
Und da ist die blackmagic design cam adapter (usb) die beste Lösung
Dafür braucht man aber auch rechenleistung unter einen 12kerner mit hohen takt ist da nicht
zwar reicht auch ein hexa mit hohen takt aus aber nur bis 1080p
zum vergleich mein 5820k erreicht etwas um die 50fps bei h264 crf20
Was auch an den spectre fixes liegt
Dein r7 1700x sollte schneller sein aber nicht mehr als 60fps auf h264 crf 20 ohne spiel.
mein rat reduziere die streamauflösung auf 720p 60hz
OBS interner scaler arbeitet ab und an nicht richtig.
also musste auch im spiel nativ mit 720p spielen.
ich hatte nur Probleme mit scaling bei obs
Seitdem ich aufnahmen in lossless nvenc h264 nutze läuft es butterweich aber bei 300-600mbit auf 1080p
CQP 10 reduziert das auf 18-50mbit
amd gcn kann kein lossless encoden mit vce/vcn
Daher würde ich hier klar auf cpu setzen. und mit iyuv/lagarth aufnehmen
Die bitrate schwank zwischen 300-800mbit auf 1080p
achja iyuv ist 4:2:0 also kein gamma fix notwendig
Der codec ist aber auch seine 20 Jahre alt im Urzustand indeo v5 1999
Neuerer Versionen sind shareware.
Ich habe diesen mit magix vegas pro inkludiert bekommen.
Was ich selbst installiert habe ist lagarth was nicht immer kompatible ist allerdings eine gute alternative
https://lags.leetcode.net/codec.html
Ich habe damit Probleme wegen dem decoding beim umwandeln muss man zuerst auf uncompressed wechseln und dann zu h264 reduzieren. (ich arbeite mit vegas pro15)
Sehr zeitaufwendig weswegen ich auf iyuv gewechselt bin bzw sony yuv
fraps eignet sich auch zur Aufnahme wichtig hier ist das die Aufnahme immer 0-255 sind nicht tv standard 35-235.
Die anderen codecs nehmen in 35-235 auf nach Wunsch abhängig von der software fraps codec kann das nicht.

Die beste Lösung ist aktuell fürs streamen nvidia nvenc mit cqp 10 oder cbr werte
Für recording empfiehlt es sich lossless zu nehmen.
Allgemein ist Qualität sehr Datenaufwendig. schnelle Datengräber mit Dauerbetrieb Eignung sind pflicht.
Also cmr sowie möglichst schnell drehend konstante 7200 oder eine SSM mlc oder 3d tlc mit pcie4/3 x4 als m2 oder pcie karte
kein USb außer bei usb 3,2
Das max sind aktuell bei 1080p alles darüber wird zu Datenintensiv.
Da stellt sich die frage über cpu zu encoden schon dringender mit einen zweiten Pc doch billiger ist.

mjpeg ist lossy daher keine option
 
Zuletzt bearbeitet:
@o2r_basti Danke, das hat zumindest schon minimal geholfen:
(dazu vllt noch, ich starte OBS immer als Admin, ansonsten ist es mit dem "Ruckeln" im Video noch schlimmer)

Jetzt ist es nicht mehr so stark wie vorher, hab zusätzlich dann noch 59.94 FPS bei OBS eingestellt und probiert und siehe da, fast vollkommen weg.
Zumindest die meiste Zeit über läufts mit 59.94 butterweich im Video, ausser 2 mal im Fluss ab Minute 1:18 und 1:28.

Ist zwa keine ideale Lösung und das Problem bleibt weiterhin bestehen aber schon mal viel besser als vorher und hier und da merkt man es kaum, also danke für den Tipp!


@syfsyn Ich hab leider nicht das Geld für sowas.
Die RX 550 verwende ich nur, weil ich das Glück habe die rumliegen zu haben. War ein Kauf von vor 3 Jahren für nen älteren PC.
Auch hilft das beim Aufnehmen. Wenn ich nur die RX 580 verwende, kommt die bei der Bitrate von 70000 und 1440p alleine nicht mehr mit, wenn ich sowas wie Skyrim oder noch grafikintensivere Spiele aufnehmen will, wo die Grafikkarte immer auf 99-100% gepuscht wird.
Mit der RX 550 als Zweitkarte zur Aufnahme ist das dann wieder kein Problem mehr.
HEVC ist also nur da um bestmögliche Rohaufnahmen von Spielen zu haben und damit dann YouTube Videos zu schneiden.
Und bei so einer hohen Bitrate ist der Qualitätsunterschied zwischen der nVidia HEVC Lösung und AMD so gering, da muss man jeden Pixel einzeln überprüfen. Ich glaub schon ab 1080p, Bitrate 10000 gibt es da keinen Unterschied mehr.

Streamen mach ich auch nur Hobbymäßig und sehr selten und da es mir da nicht auf super hohe FPS ankommt, verwende ich eh nur "x264 Medium", weil das problemlos bei jedem Spiel läuft und es keine FPS Einbrüche oder Ruckler gibt und nie die Meldung mit "Encoder Overloaded" kommt.
Hier mal ein Beispiel: https://www.twitch.tv/videos/526503149
Aber auch da gibts dieses "Ruckeln" im Video alle paar Sekunden, obwohl alle Zahlen bei der Streamüberwachung auf grün/sehr gut sind und sonst nie was ist wo der PC hängt.

Wie das jetzt mit 59.94 FPS beim Streamen sein wird muss ich noch testen, aber wahrscheinlich wie im Video: Viel besser als vorher aber immer noch nicht durchweg butterweich.
 
Zurück
Oben