TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸

Analyse: Bildschirmaufnahme (Screen Recording) auf Armbian

August 12, 2018

Die Erstellung von Bildschirmaufnahmen (Screen Recordings) auf ressourcenbeschränkten Single-Board-Computern (SBCs) unter Armbian stellt eine besondere Herausforderung dar. Viele bekannte Desktop-Tools sind entweder nicht für die ARM-Architektur verfügbar, lassen sich nur schwer kompilieren oder sind im Betrieb zu leistungshungrig.

Dieser Beitrag analysiert gängige Werkzeuge und stellt stabile Lösungen für die Kommandozeile (ffmpeg) und die grafische Oberfläche (SimpleScreenRecorder) vor.


Herausforderungen mit herkömmlichen Recording-Tools

Auf einem typischen Armbian-System (z.B. auf einem Orange Pi) scheitern viele populäre Recording-Anwendungen aus folgenden Gründen:

  • Kazam: Neigt zu Instabilität, Konfigurationen werden oft nicht korrekt gespeichert.
  • OBS Studio: Der Build-Prozess aus dem Quellcode ist auf ARM-Architekturen komplex und fehleranfällig, oft aufgrund von fehlenden SSE-Instruktionen oder schwer zu erfüllenden Abhängigkeiten.
  • RecordMyDesktop: Ist funktional, aber die Nachkodierung des Videos ist extrem langsam und führt häufig zu Farb- oder Audio-Synchronisationsproblemen.
  • Istanbul: Ist veraltet und in den meisten modernen Paketquellen nicht mehr enthalten.

Option 1: ffmpeg (Kommandozeile, sehr robust)

Die zuverlässigste und flexibelste Methode für Bildschirmaufnahmen auf jedem Linux-System ist die Verwendung von ffmpeg direkt über die Kommandozeile.

Aufnahme von Bildschirm und Audio (PulseAudio)

Dieser Befehl zeichnet den gesamten Bildschirm (:0.0) zusammen mit dem Standard-Audioausgang von PulseAudio auf.

code
ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 \
  -f pulse -i default \
  -c:v libx264 -preset veryfast -crf 23 \
  -c:a aac -b:a 128k output.mp4

Parameter-Erklärung:

  • -video_size 1920x1080: Die aufzunehmende Auflösung (anpassen!).
  • -framerate 30: Die Bildwiederholrate.
  • -f x11grab -i :0.0: Gibt an, den X11-Display-Server auf Display :0.0 aufzuzeichnen.
  • -f pulse -i default: Zeichnet Audio vom Standard-PulseAudio-Gerät auf.
  • -c:v libx264 -preset veryfast: Verwendet den H.264-Codec mit einer auf Performance optimierten Voreinstellung.
  • -crf 23: Steuert die Videoqualität (niedrigere Werte = höhere Qualität).
  • -c:a aac -b:a 128k: Kodiert die Audiospur mit AAC bei 128 kbit/s.

Aufnahme ohne Audio

code
ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 \
  -c:v libx264 -preset veryfast -crf 23 output.mp4

Option 2: SimpleScreenRecorder (GUI)

SimpleScreenRecorder (SSR) ist eine der stabilsten GUI-Optionen, die auch auf schwächerer Hardware gut funktioniert. Wenn SSR nicht in den Paketquellen Ihrer Armbian-Version verfügbar ist, muss es aus dem Quellcode kompiliert werden.

Kompilierung aus dem Quellcode

  1. Abhängigkeiten installieren:

    code
    sudo apt update
    sudo apt install -y build-essential cmake pkg-config qtbase5-dev \
      libgl1-mesa-dev libx11-dev libxfixes-dev libxext-dev \
      libxrender-dev libpulse-dev libasound2-dev
    
  2. Quellcode klonen und kompilieren:

    code
    git clone https://github.com/MaartenBaert/ssr.git
    cd ssr
    mkdir build && cd build
    cmake ..
    make -j$(nproc)
    sudo make install
    

    Der make-Befehl nutzt alle verfügbaren CPU-Kerne (-j$(nproc)) zur Beschleunigung.


Fehlerbehebung und Performance-Tipps

  • Keine Audioaufnahme mit ffmpeg: Überprüfen Sie, ob PulseAudio korrekt läuft. Alternativ können Sie ALSA direkt verwenden (z.B. -f alsa -i hw:0,0).
  • Falsche Farben im Video: Testen Sie einen anderen Pixel-Format-Parameter in ffmpeg, z.B. -pix_fmt yuv420p.
  • Schlechte Performance: Reduzieren Sie die Framerate (-framerate 24) oder die Aufnahmeauflösung (-video_size 1280x720), um die CPU-Last zu senken.

Fazit

Für zuverlässige Bildschirmaufnahmen auf leistungsschwachen Armbian-Systemen ist ffmpeg die robusteste Lösung. Es bietet maximale Kontrolle und Effizienz. Wenn eine grafische Oberfläche zwingend erforderlich ist, ist SimpleScreenRecorder die beste Wahl, auch wenn dies eine manuelle Kompilierung erfordern kann.