OBS Studio - Verlustfreie Aufnahme & Sammelthread

  • Ich habe ein kleines Problem:
    Bei der 1. Variante schluckt OBS viel zu viel Arbeitsspeicher und beansprucht zuviel von meiner HDD.
    Bei der 2. Variante ruckelt die Aufnahme in Magix Video Deluxe 2016 im Programm und auch gerendert.


    Ich hoffe mir kann jemand helfen

  • Ich bin zu dumm was über google zu finden. habe nur Videos von älterne Versionen gefunden, wo das irgednwie alles anders ausschaut als bei mir, daher wieder mal ne Frage:


    Wie stelle ich OBS so ein, dass ich nur die Gamesounds und das Video natürlich aufnehme?


    Ich würde gerne aufnehmen, nebenher Skypen und später nachsynchronisieren aber mit den Gamesounds.


    Hat wer nen Tutorial für die aktuelle Version dafür?

  • Dafür müsstest du Skype vom Windows-Sound trennen. Das geht entweder mit einer zweiten Soundkarte oder mit einem Programm wie Voicemeeter Banana, das eine virtuelle Soundkarte erstellt. Und dann musst du in OBS eigentlich nur Spiel und Windows-Sound aufnehmen, dann hört man Skype und dein Mikrofon nicht.

  • Dafür müsstest du Skype vom Windows-Sound trennen. Das geht entweder mit einer zweiten Soundkarte oder mit einem Programm wie Voicemeeter Banana, das eine virtuelle Soundkarte erstellt. Und dann musst du in OBS eigentlich nur Spiel und Windows-Sound aufnehmen, dann hört man Skype und dein Mikrofon nicht.

    Ich nutz von dem Hersteller einfach nur die Virtual cables und das klappt sehr gut. Man hört noch alles aber kann es getrennt aufnehmen.


    Falls man mal ein Programm hat, bei dem man nicht die soundkarte auswählen kann, kann man das output live verschieben mit dem open source tool audio router: https://github.com/audiorouterdev/audio-router


    z.B. Spotify. Wenn man im stream Sporify laufen lässt, es aber bei der Aufnahme nicht haben will.

  • Ich habe nun alles wie in Variante 2 erklärt eingestellt (mit NV12 wie empfohlen) und das mit den 2 Soundspuren funktioniert Super.
    Allerdings ruckelt das aufgenommene Video extrem.
    Dies tritt nur bei WatchDogs2 auf, bei Minecraft geht es xD.


    Ich kann mir nicht vorstellen, dass es am System liegt:
    - Intel i5-4690K (3,5G)
    - 16 GB Ram
    - GeForce GTX 970 (4GRAM)


    Hier noch die MediaInfo:



    Kann man vielleicht noch was bei der CRF Stufe raus holen und wofür ist das Keyframeintervall?


    Danke aber schonmal für die Super Erklärung und eure Hilfe

  • Kann es sein, dass du das Tutorial nur halbherzig befolgt hast? Dein gewählter CRF weicht von dem im Tutorial ab. Oder wolltest du deine Folgen direkt hochladen? Dann sind die Ausgabeeinstellungen im Tutorial generell ungeeignet. ultrafast wird dir riesige Dateien erzeugen, gerade in Kombination mit CRF0/QP=0.


    Dies tritt nur bei WatchDogs2 auf, bei Minecraft geht es xD.

    Dann ist deine CPU höchstwahrscheinlich zu schwach. Wirf auf einem zweiten Monitor einen Blick in den Task-Manager während der Aufnahme und unten rechts in OBS. Eine Log-Datei mit Aufnahmeversuch würde auch nicht schaden.
    Generell erscheint es mir so, als hättest du falsche Einstellungen gewählt.

  • wofür ist das Keyframeintervall?

    Keyframe = Schlüsselbild = I-Frame (Intra-Frame) = Vollwertiges Bild (So als ob man ein JPG, oder PNG oder BMP Bild sich betrachtet)
    Intervall = Zeitlicher Abstand von Zwischenräumen


    Der Keyframeintervall beschreibt also in welchen zeitlichen Abständen Schlüsselbilder gesetzt werden.
    Dabei benötigen Keyframes mehr Bitrate, also Speicher, als z.B. Referenz Bezogene Frames wie z.B. B- und P-Frames (Bidirectional-Frames und Predicted-Frames). Dabei werden B- und P-Frames auch Inter-Frame genannt. Sie dienen als Kompressions-Frames die als Referenz sich das Intra-Frame zu Rate ziehen.


    Erklärung:
    Als erstet kommt ein I-Frame das das Gesamtbild darstellt. Ändert sich das Gesamtbild nicht um ein bestimmten Wert, (bei x264 ist es Standardmäßig 40%), so können sämtliche Bewegungen in den nächsten Frames komprimiert werden, indem alle Werte die sich nicht ändern vom Intra-Frame beibehalten werden und die Referenz Frames nur die Bewegten Sachen, sprich die die sich wirklich ändern im Bild, ändern. Diese Referenz Frames bzw. Kompressions-Frames sind voll und Ganz auf ein Intra-Frame angewiesen und können ohne nicht auskommen.


    Daher nennt man Codecs mit Inter-Frames auch Lossy Codecs. Dazu zählen z.B. H264, XVID, VP9, etc...


    Je mehr Schlüsselbilder also drin sind, desto größer wird die Datei später sein.


    Ein Verlustfreier Codec wie z.B. MagicYUV oder UTVideo oder Lagarith, etc. speichern nur mit I-Frames die Videos. Da I-Frames vollwertige Bilder sind, ist eine Weiterverarbeitung mit diesen viel angenehmer als mit B- und P-Frames.



    Diese 3 Frame Typen bilden zusammen dann die GOP (Group of Pictures). Wobei P-Frames nicht unbedingt drin sein müssen. Und B-Frames findet man nur bei Lossy Codecs. Selbst wenn man mit ihnen Verlustfrei aufnimmt. Und I-Frames sind in der GOP immer vertreten.


    In der GOP würdest du dann deinen Keyframeintervall ersehen können


    z.B. bei einem Keyframeintervall von 8 würde die GOP so bestückt sein für ein 60 FPS Video


    Frame

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    ...

    Zeit in ms

    16

    33

    50

    66

    83

    100

    116

    133

    150

    166

    183

    200

    216

    233

    250

    266

    283

    300

    ...

    Typ

    I

    B

    B

    B

    P

    B

    B

    B

    I

    B

    B

    B

    P

    B

    B

    B

    I

    B

    ...


    Der Abstand zwischen den I-Frames ist dann der Keyframeintervall



    Normalerweise gibt es dafür eine goldene Regel die besagt das pro Sekunde ein I-Frame gesetzt werden soll.
    Sprich der Keyframeintervall sollte min. so gesetzt werden das er der FPS des Videos entspricht.


    z.B. 60 FPS Video, Keyframeintervall = 60


    Keyframes dienen später für Videoplayer als Anspulpunkt. Es sind auch die einzigen Frames an denen man im Nachhinein das Video aufteilen kann (Splitten) ohne das Video neu enkodieren zu müssen.


    Solltest du das Video später auf YT hochladen, wird das auf YT neu enkodiert und somit auch komplett neu strukturiert für YT. Das heißt das diese Einstellung keine Bedeutung dann mehr hat.


    Bei einem Live-Stream sollte man den Intervall auch entsprechend setzen. Weil sonst der Stream verschmieren könnte dadurch, wenn der Abstand zu hoch gewählt wird.

  • Normalerweise gibt es dafür eine goldene Regel die besagt das pro Sekunde ein I-Frame gesetzt werden soll.
    Sprich der Keyframeintervall sollte min. so gesetzt werden das er der FPS des Videos entspricht.


    z.B. 60 FPS Video, Keyframeintervall = 60

    In OBS wird der Keyframeintervall allerdings in Sekunden angegeben, nicht in Frames.
    Nur bevor jemand auf die Idee kommt, das auf 60 zu stellen.

  • Naja, dann rechnet man das halt um


    Bei einem 60 FPS Video hat man einen Frameabstand von 1/60 Sekunde (Zeit für 1 Frame)


    Also ist für 60 FPS ein Keyframeintervall von 16ms * 60 = 960ms angebracht. (Zeit für 60 Frames)

  • In OBS wird der Keyframeintervall allerdings in Sekunden angegeben, nicht in Frames.
    Nur bevor jemand auf die Idee kommt, das auf 60 zu stellen.

    maximum ist eh 20 (Sekunden) oder so was man da einstellen kann :)
    Aber mich nervt es auch dass es in Sekunden angegeben wird. bei x264 kann man es ja noch überschreiben dank custom parameter aber nicht bei nvenc.

  • Sorry für meinen letzten Beitrag, das war Müll. Zu blöd gedacht. ^^


    Also OBS macht das ganz einfach. Das ist eigentlich Idiotensicher.


    Hat ein Video 60 oder 40 oder 30 FPS, so ist ein Keyframeintervall von 1000ms immer der Wert für 1Sek.


    Sprich die goldene Regel ist damit eingehalten. Egal welche FPS.
    Bei 60 FPS ist ein Keyframeintervall von 1000ms halt genau 60
    Bei 30 FPS ist er 30
    usw...


    Also schon recht idiotensicher.
    Bei einem Keyframeintervall von 2000ms sieht das dann so aus das immer die doppelte FPS Zahl als Intervall genommen wird.


    Sprich bei 60 ist es dann 120
    Bei 30 dann 60
    usw...


    Ist der Keyframeintervall < 1/FPS, so ist in der Theorie jeder Frame ein Keyframe.
    Sprich bei bei 60 FPS ist der kleinste Keyframeintervall 16ms, da der kleinste Abstand 1/60 ist.
    Ist der Wert noch kleiner so ändert sich das nicht das der kleinste Wert für diese FPS 16ms beträgt.


    Jetzt sollte es korrekt sein ^^

  • @Schauerland Dich dürfte es vllt auch interessieren das dein Grafikkarten VRAM runtergetaktet wird um einige hunderte mhz, weil sie bei Drittsoftwarenutzung von NVEnc trotz - Maximale Leistung bevorzugen in Nvidia Systemsteuerung - in den P2 Performance-Modus runterschaltet..

  • Hallo zusammen!


    Ich frage mich, ob es möglich ist die Audiobitrate der Aufnahme getrennt von der fürs Streamen zu kontrollieren.
    Wenn ich das richtig verstanden habe, bezieht sich das Feld "Bitrate" in Ausgabe->Streamen nur auf den Videostream, oder?
    Falls nicht korrigiert mich bitte.


    Hintergrund ist der, dass meine Internet-Holzleitung mit weniger Audiobitrate auskommen würde, so bliebe mehr fürs Video.

  • Hallo zusammen!


    Ich frage mich, ob es möglich ist die Audiobitrate der Aufnahme getrennt von der fürs Streamen zu kontrollieren.
    Wenn ich das richtig verstanden habe, bezieht sich das Feld "Bitrate" in Ausgabe->Streamen nur auf den Videostream, oder?
    Falls nicht korrigiert mich bitte.


    Hintergrund ist der, dass meine Internet-Holzleitung mit weniger Audiobitrate auskommen würde, so bliebe mehr fürs Video.

    Ja, da stellst du unter ausgabe => audio ein pro kanal.
    Für Aufnahme nimmst du dann im mixer zB kanal 1 und für stream kanal 2 wobei kanal 1 z.B. 320kbit und kanal 2 160kbit hat

  • In den erweiterten Audioeigenschaften wird festgelegt welche Audiospuren letztlich zusammengemischt oder separat gehalten werden. Da wir Spielsound und Stimme unabhängig voneinander aufnehmen wollen, legen wir Desktop Audio auf Spur 1 und Mic/Aux auf Spur 2.
    Wer direkt Spielsound und Stimme zusammenmischen möchte, kann beispielsweise beide auf Spur 3 legen, ist für das Tutorial aber unwichtig.

    Hab das Problem, das dann beide Soundspuren Asynchron sind - wenn ich Gamesound auf die eins lege und Mic dann auf die 2 Spur. Woran könnte das liegen?


    MediaInfo:



    Edit: Wenn ich mir das Roh Material im Player anschaue, sind die Spuren Synchron, was mich jetzt noch mehr verwirrt :D

Jetzt mitmachen!

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