Aufnehmen unter Linux

  • Hallo,
    Hier folgt ein Tutorial zum Erstellen einer Aufnahme, sowie dem optionalen Encoden selbiger. Eine Bearbeitung der Aufnahme ist nicht vorgesehen.


    Im Grunde gibt es die vielfältigsten Herangehensweisen, die nachher beschriebene halte ich im Moment jedoch für die sinnvollste. Dieses Tutorial erhebt weder den Anspruch auf Richtig- und Vollständigkeit, noch ist es in Stein gemeißelt. Veränderungen im positiven Sinne sind nicht ausgeschlossen.
    Zur Aufnahme verwende ich den SimpleScreenRecorder (im folgenden SSR) von Maarten Baert. Der Vorteil dieses Programms ist zugleich auch das Ausschlusskriterium aller anderen mir bekannten Aufnahmearten: Es kann Vollbild bzw. Fullscreen aufnehmen. Und das auch gleich auf mehrere verschiedene Arten. Das Programm kann direkt OpenGL abgreifen, was jedoch im Moment noch nicht wirklich komfortabel ist. Deswegen gehe ich auf diese Funktion nicht weiter ein.
    Das [lexicon]Encodieren[/lexicon] der Aufnahme ist optional, da man im SSR direkt eine nicht verlustfreie Encodierung einstellen kann. Darauf gehe ich an entsprechender Stelle genauer ein. Zum Bearbeiten bietet sich Kdenlive an. Reines [lexicon]Encodieren[/lexicon] eht im Terminal gut mit ffmpeg und libx264.
    Den Ton richte ich mit PulseAudio und dessen Einstellungsprogramm pavucontrol ein.


    [tabmenu]
    [tab='Aufnehmen']
    SSR gestaltet sich denkbar einfach (Woher nur das Simple im Namen kommt?). Die Einstellungen sind nacheinander angeordnet. Es gibt immer Tooltips zu den Einstellungen.

    • Drückt im Willkommensbildschirm erstmal auf weiter. Solltet Ihr hier beim Start eine Warnung bekommen, so nehmt die ernst und stellt die entsprechende Option in den nvidia-settings aus.
    • Als nächstes stellt Ihr die Eingabequellen ein. Wollt Ihr Spielesound und Kommentar aufnehmen, solltet Ihr jetzt zuerst im Tab Ton Einrichten dieses Tutorials vorbeischauen.
      Setzt den Haken für den Ton rein und stellt das Aufnahmemedium auf „default“. Wählt für das Video entweder den gesamten Bildschirm aus, oder stellt euch mit einem festen Rechteck ein Fenster ein (der Knopf „Select window“). Sollte es gewünscht sein, kann das Video auch skaliert werden.
    • Als [lexicon]Container[/lexicon] empfehle ich Matroska (.mkv). Dieser kann viele Formate aufnehmen und ist recht gut anpassbar. Den Speicherort solltet Ihr nicht vergessen einzustellen.
      Als Videocodec empfiehlt sich zur Zeit ganz klar der H.264-Codec. SSR verwendet für ihn den populären x264-Encoder. In Zukunft mit [lexicon]H.265[/lexicon], [lexicon]VP9[/lexicon] und Daala kann das anders aussehen. Als Preset solltet Ihr etwas von veryfast bis ultrafast auswählen, je nachdem, wie leistungsstark eure [lexicon]CPU[/lexicon] ist. Diese Einstellung spiegelt sich nur in der späteren Dateigröße wieder.
      Mit dem Constant Rate Faktor (CRF) müsst Ihr euch für die spätere Qualität des Videos entscheiden. Kleinere Werte ergeben eine bessere Qualität. Die Werte reichen von 0 bis 51. 0 ist dabei verlustfrei. Bis 18 kann man keine optischen Verluste erkennen. Höher als 26 würde ich auf keinen Fall gehen.
      Wenn Ihr euch entscheidet, die Aufnahme im Nachhinein optimiert auf die Dateigröße zu encodieren oder Ihr die Aufnahme später zu bearbeiten, dann wählt hier 0. Entsprechend wählt beim Ton unkomprimiert (uncompressed).
      Wenn Euch die Dateigröße egal ist, wählt einen höheren Wert (nicht wenn Ihr die Aufnahme bearbeiten möchtet). Für den Ton wird generell Vorbis oder [lexicon]FLAC[/lexicon] (unter other) empfohlen. Beides im SSR weniger, da nur eine feste [lexicon]Bitrate[/lexicon] vergeben werden kann. Da euch die Dateigröße egal ist, wählt Vorbis mit *utopischen Wert eintragen* aus.
    • Die Aufnahmeseite.
      Startet die Aufnahme per Klick oder Tastenkombination. Eine Live-Vorschau ist möglich, aber nicht empfohlen.
      Zwischendurch ist eine Pause durch erneutes Drücken möglich.
      Ihr könnt die Aufnhame auch abbrechen (Achtung, alle Daten werden gelöscht!).
      Speichert hinterher eure Aufnahme.
    • Wenn Ihr euch gegen die spätere Encodierung entschieden habt, seid Ihr nun fertig und könnt euer Video hochladen. Andernfalls fahrt mit dem encodieren fort.



    [tab='Encodieren']



    [tab='Ton einrichten']Damit gleichzeitig Ton aus mehreren Kanälen aufgenommen wird, schleifen wir die Kanäle über einen Ausgang in SSR.


    Inzwischen kann ich die einfache Methode nicht mehr empfehlen.
    Nach längerer Zeit setzen komische pulsierende Geräusche ein, alles sehr Merkwürdig.


    Das Schema bleibt das Gleiche, jedoch verwende ich nun Jack um die Verbindungen zu erstellen. SSR bekommt auch kann später auch selber mit Jack umgehen.
    Bis jetzt funktioniert das jedenfalls besser - auch bei längeren Aufnahmen.
    Zum Konfigurieren kommt später was. QjackCtl ist hier das Programm der Wahl.


    [/tabmenu]

    6 Mal editiert, zuletzt von Lucki () aus folgendem Grund: Automatische Tonkonfiguration verbessert Hinweis auf Jack

  • Sehr interessanten Tutorial, villeicht kann ich dann (wenn sich die Spieleentwickler mal beeilen mit den Spielen) auch wieder zurück auf Linux gehen.
    Die Möglichkeit (wie bei den üblichen Windows Programmen) ein Fenser aufzunehmen (halt das Spiel) und selbst, wenn ein anderes Fenster das Spiel überdeckt weiterhinn nur das Spielfenster aufzunehmen?
    Ich denke mal das währe diese Ogen GL Funktion.


    Also sobeld die Spiele da sind und diese Open GL Funktion nutzbar könnte ich mir den tram mal erfüllenund wieder ein vollständiger Linux nutzer werden.

  • Ja, das ist die OpenGL-Funktion.
    Wie geschrieben ist die leider nicht wirklich praktikabel, weil man einen Preload mit GL-Inject ausführen muss.
    Dann haben aber die Hotkeys nicht mehr funktioniert, wodurch das Problem entsteht, dass man nicht mehr aus dem Spiel herauskommt und man die Aufnahme nicht mehr starten kann. Ferner ändert sich Inject-Nummer bei jeder neuen SSR-Aufnahme.
    Folglich sieht diese Aufnahmeart folgendermaßen aus: Spiel starten -> Spiel beenden (bis hierhin, damit das GL-Inject für die Aufnahme existiert) -> Aufnahme starten -> Spiel starten -> spielen -> Spiel beenden -> Aufnahme beenden.


    Bei mir sind bisher knapp die Hälfte meiner Spiele bei Steam für Linux verfügbar.

  • Du kannst mit jedem [lexicon]Codec[/lexicon] aufnehmen, den du installiert hast.


    P.S.: Die Aufnahme mit GlInject (OpenGL) kann man sich mit folgenden Skripten wesentlich vereinfachen: https://github.com/MaartenBaert/ssr/issues/54#issue-21297816
    Sinnvoll ist es zusätzlich folgenden Rat zu befolgen, um das [lexicon]Steam[/lexicon]-Overlay wieder mitzuladen: https://github.com/MaartenBaer…/54#issuecomment-33685859

  • Gibt es denn vernünftige Codecs, die unter Linux auch ihre Unterstrützung finden?
    lagerith gibts schonmal nicht...
    Danke für die Tipps.

  • Ja, [lexicon]Lagarith[/lexicon] gibt es nur für Windows.
    Doch wofür brauchst du den?
    [lexicon]x264[/lexicon] nimmt mit [lexicon]crf[/lexicon] = 0 (früher qp = 0) verlustfrei auf und je nachdem, wie schnell deine [lexicon]CPU[/lexicon] ist, kannst du mit den Presets eine höhere oder niedrigere Kompression fahren.


    Hm, scheinen nicht alle installierten unterstützt zu werden… ffmpeg muss die auch noch können. Sonst wären Daala und [lexicon]h.265[/lexicon] schon in der Liste.

Jetzt mitmachen!

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