OBS für CPU mit vielen Kernen (Threadripper 2950X) einstellen

  • Ich habe jetzt eine Weile einen Threadripper 2950x da mir dieser auf Empfehlung zum Streamen und Recording2Youtube (Also Aufnahme mit direkten Encoding das am Ende eine fertige Datei rauskommt, die man so hochladen kann) angeraten wurde. Nach vielen Durchprobieren und Aufnahme-Benchmarks auf 1440p@30 bin ich folgenden Einstellungen gelandet:

    • x264
    • CRF 23, veryfast, x264 Optionen --threads 64 (Hatte gelesen, das man das 1,5 bis 2fache aller Threads dort angeben soll, aber auch 16 oder 32 macht es nicht besser)
    • Direct3D 11, NV12, YUV709

    aber irgendwie nicht wirklich zufrieden. Denn unter dem Hardcore Benchmark mit Ghost Recon Wildlands strauchelt OBS an einer flüssigen 30FPS Aufnahme, gibt aber ständig an die Encoding-Einstellung sei ständig überlastet, dass aber bei einer CPU Ausleistung von bis zu maximal 30%. An 60FPS ist garnicht zu denken, an steady 30FPS leider auch nicht. Auch wenn ich mit MSI Afterburner mir die Auslastung beim Aufnehmen anzeigen lasse, gebt dies ähnliche Werte aus. Da frage ich mich: Wo sind die restlichen 70% und sollte eine native 16-Kern CPU nicht mehr Encoding-Leistung liefern oder sind meine Einstellungen in OBS katastrophal oder einfach meine Anforderungen zu hoch? Bitte helft mir ich bin verzweifelt :D


    Mein Ziel ist es eigentlich nur Aufnahmen zu machen, die eine Dateiobergröße von etwa 2GB/10Min besitzen, was ich mit den derzeitigen Einstellungen schaffe, die Qualität ist für mich auch ausreichend. Hier ein Beispielvideo auf den aktuellen Einstellungen

  • Heyho. Kannst du eine OBS Logdatei zur Verfügung stellen? Ich kenn mich da nicht sehr gut aus, aber viele andere können damit was anfangen und dir dann sicher helfen. :)
    Btw dein Profil sagt, dein OS ist Windows 7, ist das noch aktuell?

  • Logdatei ist da.


    Hier möchte ich ausnahmsweise widersprechen. Wenn ich eine gewöhnliche CPU hätte (wie zuvor) dann würde ich auch sagen, dass NVENC die bessere Wahl ist (wie vor dem Upgrade). Aber warum einen GPU-lastigen Encoder nehmen (habe mich vertan, ist "nur" eine 1080 ohne Ti), wenn eine CPU bereit steht, die den CPU-lastigen Encoder x264 verwenden kann und aufgrund seiner 16 Kerne und 32 Threads noch genug Reserve zum spielen hat. Beim encoden mit Handbrake das ja auch x264 verwendet wird ja auch das volle Potenzial ausgeschöpft, dann sollte dass doch bei OBS auch möglich sein?

  • Aber warum einen GPU-lastigen Encoder nehmen (habe mich vertan, ist "nur" eine 1080 ohne Ti),

    Nicht GPU, sondern CUDA Kerne.
    Weil du die CUDA Kerne zum Spielen nicht brauchst und warum einen CPU Encoder nehmen und die fps töten, wenn man starke CUDA Cores einer 1080 hat? Find ich irgendwie nicht so schlüssig^^ Macht nicht wirklich Sinn :D Die CPU braucht das Spiel auch ^^ Die Cuda Cores nich :P
    Und auch bei einem Livestream. CPU Encoding sieht nur bedingt besser aus, weil du kannst ja bei 'nem Livestream kein vernünftiges preset benutzen.


    Das war 'nen Livestream mit NVEnc


    Ich finde da gibts jetzt für einen Livestream nichts zu sagen gegen die Quali. Wäres mir nicht wert da CPU zu benutzen. Würde mit der Auflösung eh nicht gut gehen (2560x1600 - ist 16:10, nicht 16:9) außer nen sehr schnelles preset zu nehmen. Dann doch lieber NVEnc und fast null Belastung durch die Aufnahme (das meiste zieht da Hook & Szenenkomposition von OBS) also sehr marginal

  • Schonmal dran gedacht die CPU Kerne manuell zuzuweisen? Wenn OBS die Kerne als erstes auslastet die auch für das Game zuständig sind ist es klar das dann gemeckert wird.

    Das Betriebssystem verwaltet eigentlich die Auslastung der Cores und kann Prozesse auch auf andere Cores umlegen, wenn Cores ausgelastet sind. Der Wechsel ist natürlich teuer, von daher kann das evtl. minimal helfen.

    Nicht GPU, sondern CUDA Kerne.Weil du die CUDA Kerne zum Spielen nicht brauchst und warum einen CPU Encoder nehmen und die fps töten, wenn man starke CUDA Cores einer 1080 hat? Find ich irgendwie nicht so schlüssig^^ Macht nicht wirklich Sinn :D Die CPU braucht das Spiel auch ^^ Die Cuda Cores nich :P

    Nach meinem Verständnis gibt es doch keine separaten CUDA Cores für Berechnungen, CUDA ist nur eine andere Programmierschnittstelle um auf die GPU Pipelines zuzugreifen. Wäre ja auch sinnfrei, wenn das zusätzliche Hardware wäre, würde das die Grafikkarte teurer machen. Dann könnte man es auch als separate Hardware verkaufen. Wenn eine Grafikkarte durch Berechnungen über CUDA ausgelastet ist, wirst Du auch am Zocken nicht viel Freude habe.

  • Wenn ich mir das hier durchlese klingt das nicht Ansatzweise nach eigenen Kernen für CUDA. Das ist lediglich die API dafür, dass die GPU als Koprozessor missbraucht wird.
    https://de.wikipedia.org/wiki/CUDA


    Abgesehen davon dass bei ner Bitrate von 6.000 für den Stream X264 auf Medium immer besser aussehen wird als NVENC. Nur braucht es dafür einen potenten Ryzen :) Streamt ja nicht jeder auf YouBitch.

  • @Drexel @ValcryTV


    https://www.nvidia.com/de-de/g…roducts/10series/compare/
    Die CUDA Cores sind da sogar angegeben ^^ Eine Karte mit mehr CUDA Cores hat auch mehr NVEnc Leistung.
    Wenn man die NVEnc Engine voll auslastet, steht in GPU-Z Video Engine Load 100%, GPU Auslastung jedoch nahezu null. Von daher möge man mir erklären, wenn da nichts extra sein soll, wieso dann die GPU keine Auslastung davon trägt?

    Abgesehen davon dass bei ner Bitrate von 6.000 für den Stream X264 auf Medium immer besser aussehen wird als NVENC

    Naja versuch ma medium bei 1440p/1600p ^^ Glaube da würden sich auch aktuelle CPUs schwer tun mit.


    Streamt ja nicht jeder auf YouBitch

    Leider. ^^
    Der Twitch Player ist kacke. Kein zurückspulen möglich, wenn man hinten dran liegt, skipt der einfach alles so das er seine live latency von 2 sek wieder drin hat, Auf Youtube bufferts bei mir nie, zumal yt auch bessere Puffergrößen benutzt, 6000 kbit sind mir zudem zu schlecht. 50 mbit leitung, will ich auch mehr senden können als 6.^^
    Twitch hat nichtmal 'nen Wiedergabeverlauf...

  • Ja aber diese CUDA Cores machen die komplette Recheneinheit der Grafikkarte aus und die werden auch in Spielen genutzt: https://www.gamingscan.com/what-are-nvidia-cuda-cores/


    Kann mir GPU-Z gerade nicht runterladen weil ich am PC offline bin, hab aber Open Hardware Monitor installiert und der zeigt auch beim NVENC Auslastung auf der GPU an, im Core ca 30% und in der Video Engine 50%, was auch immer diese Unterscheidung aussagt... VMW6 zeigt 70% CUDA Auslastung an. Bin mir sicher, dass wenn Du mal ein Spiel nimmst, das die Grafikkarte auslastet und dann mal NVENC mit hoher Priorität anschmeißt, dass die Performance vom Spiel in den Keller geht...

  • Könnte man eigendlich 2 Grafikkarten gleichzeitig benutzen? Eine 1080Ti zum zocken und die CUDA-Cores einer 1060/70 nur zum rendern/streamen?
    Ist immer noch günstiger als 2 separat PCs.

  • In der Theorie sollte das funktionieren. Praktisch keine Ahnung, das Schnittprogramm müsste Dich dafür explizit eine Grafikkarte anwählen lassen... Und auch mit NVENC wird noch CPU Zeit verbraucht, bei mir verursacht das Rendern laut Taskmanager 40% CPU Last und 35% Grafikkarten Last....


    Edit: Gerade doch noch gelesen, dass es wohl doch explizite Hardware Einheiten fürs Video Rendering auf Grafikkarten gibt, weils über die normalen GPU Einheiten auch nicht so gut performt hat. Inwiefern das jetzt nur Coprozessoren sind oder die wirklich die volle Berechnung übernehmen kann ich nicht sagen. Müsste man evtl. tatsächlich mal mit einem Spiel nebenher ausprobieren.

  • Der Twitch Player ist kacke. Kein zurückspulen möglich, wenn man hinten dran liegt, skipt der einfach alles so das er seine live latency von 2 sek wieder drin hat, Auf Youtube bufferts bei mir nie, zumal yt auch bessere Puffergrößen benutzt, 6000 kbit sind mir zudem zu schlecht. 50 mbit leitung, will ich auch mehr senden können als 6.^^
    Twitch hat nichtmal 'nen Wiedergabeverlauf...

    Das mag alles sein, aber bei YouBitch ist die komplette Platform scheisse. Nicht technisch, aber der ganze Rotz drumherum halt.

  • Könnte man eigendlich 2 Grafikkarten gleichzeitig benutzen? Eine 1080Ti zum zocken und die CUDA-Cores einer 1060/70 nur zum rendern/streamen?
    Ist immer noch günstiger als 2 separat PCs.

    Ja das ist möglich. Du musst in OBS in den Einstellungen unter Ausgabe bei GPU von 0 auf 1 stellen dann.
    Kann dir aber sagen der Mehrwert ist der Preis nicht wert. Hab ich schon gehabt und verworfen. Du kriegst aus diesem Szenario grad mal irgendwo zwischen 1-5 FPS mehr. Das ist zu vernachlässigen.
    Gegen ein 2. PC kommt die Idee absolut nicht an.
    Hatte das ganze auch weiter gedacht das ganze mit OpenGL laufen zu lassen um das ganze Szenenrendering dadrüber laufen zu lassen. War auch totaler Bockmist. Hatte mehr Probleme als es half.

  • Kann dir aber sagen der Mehrwert ist der Preis nicht wert. Hab ich schon gehabt und verworfen. Du kriegst aus diesem Szenario grad mal irgendwo zwischen 1-5 FPS mehr. Das ist zu vernachlässigen.

    Das war dann Messtoleranz.
    Es ist nämlich sogar langsamer. Weil die eine Grafikkarte die das Spiel darstellt, muss umständlich die Frames vom Spiel auf die andere Grafikkarte rüberkopieren damit diese dann encoden kann.
    Die OBS Entwickler erklären dir das gerne nochmal. Denn da kam die Frage ja auch schon paar mal auf^^

  • Wenn ich mir das hier durchlese klingt das nicht Ansatzweise nach eigenen Kernen für CUDA. Das ist lediglich die API dafür, dass die GPU als Koprozessor missbraucht wird.

    Die CUDA Cores sind da sogar angegeben Eine Karte mit mehr CUDA Cores hat auch mehr NVEnc Leistung.

    Physikalische (dedizierte) Kerne sind CUDA Cores nicht wohl nicht. Gerade bei den Angaben von NVIDIA steckt wohl viel Marketing hinter der "Anzahl" an Kernen. In der Hinsicht, übersteigt leicht mein Verständniss, im Kern (hue hue hue) aber hilfreich:

  • Wie auch immer. Es scheint aber zu funktionieren. Denn der FPS Verlust ingame ist nahezu non-existent.
    Sofern man halt über ffmpeg aufnimmt.
    Bei OBS kommt ja noch Hook und vor allem Szenenkomposition hinzu.
    via ffmpeg und capturekarte ist die performance mit shadowplay vergleichbar.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!