Seit letztem Jahr habe ich einen Jetson Nano 2GB und ich habe viel Spaß damit. Dieser kleine Linux Computer mit seiner CUDA kompatiblen 128 Kern GPU ist schon echt ein kleines Wunderwerk der Technik. Vor allem wenn man bedenkt, dass der Rechner nur 59$ kostet.
Da ich von Zeit zu Zeit auch mal den Bildschirminhalt des Jetson Nano aufzuzeichnen möchte habe ich mir OBS installiert.
Die Open Broadcaster Software unterstützt den Nutzer bei der Übertragung von Bildschirminhalten in Echtzeit über eine Netzwerkverbindung ins Internet. Die übertragenen Inhalte können mittels verschiedener Szenen und Fenster vor der Übertragung angepasst und ergänzt werden.
Wikipedia: https://de.wikipedia.org/wiki/Open_Broadcaster_Software
Die Datenübertragung erfolgt mittels des Real Time Messaging Protocols. Die Daten können von RTMP unterstützenden Zielen (z. B. YouTube oder Twitch) empfangen und verarbeitet werden.[6] Zur Authentifizierung und Zuordnung der Daten werden sogenannte „Streamschlüssel“ verwendet. Diese in OBS hinterlegten Zeichenfolgen werden mit den Daten an den Streaming-Dienst übertragen, mithilfe dessen der Datenstrom dem Benutzerkonto zugeordnet werden kann.
Ebenso bietet die Software die Möglichkeit, die Bildschirminhalte auf der lokalen Festplatte abzuspeichern. Für die Video-Kodierung kann OBS die Encoder x264, Intel Quick Sync Video und Nvidia NVENC nutzen, um Videos im H.264-Format zu kodieren. Audiodaten werden entweder im MP3– oder AAC-Codec gespeichert.
Wie so oft auf dem Jetson Nano ist die Installation mit etwas Googlen und Geduld verbunden. Nachdem ich es nun aber hinbekommen habe möchte ich mein Installationsskript hier veröffentlichen um anderen Interessierten den Aufwand zu ersparen.
#!/bin/sh sudo apt install \ build-essential \ checkinstall \ cmake \ git \ libmbedtls-dev \ libasound2-dev \ libavcodec-dev \ libavdevice-dev \ libavfilter-dev \ libavformat-dev \ libavutil-dev \ libcurl4-openssl-dev \ libfdk-aac-dev \ libfontconfig-dev \ libfreetype6-dev \ libgl1-mesa-dev \ libjack-jackd2-dev \ libjansson-dev \ libluajit-5.1-dev \ libpulse-dev \ libqt5x11extras5-dev \ libspeexdsp-dev \ libswresample-dev \ libswscale-dev \ libudev-dev \ libv4l-dev \ libvlc-dev \ libx11-dev \ libx264-dev \ libxcb-shm0-dev \ libxcb-xinerama0-dev \ libxcomposite-dev \ libxinerama-dev \ pkg-config \ python3-dev \ qtbase5-dev \ libqt5svg5-dev \ swig \ libxcb-randr0-dev \ libxcb-xfixes0-dev \ libx11-xcb-dev \ libxcb1-dev \ qtdeclarative5-dev \ qtbase5-private-dev git clone --recursive https://github.com/obsproject/obs-studio.git cd obs-studio mkdir build && cd build cmake -DBUILD_BROWSER=OFF -DENABLE_PIPEWIRE=OFF -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr .. make -j4 sudo make install export DISPLAY=:0 sxport LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libGL.so obs
Die Basis für das Skript habe ich von https://obsproject.com/forum/threads/nvidia-jetson-devices.130740/ allerdings musste ich noch ein paar kleinere Änderungen machen, bevor es wirklich ohne Probleme durchläuft und obs startet.
Das Ergebnis kann sich allerdings sehen lassen.
Fazit
Ich bin positiv überrascht von der geringen Latenz vom OBS Studio auf dem Jetson Nano. Wieder mal ein Beweis dafür, dass gute Software kein Geld kosten muss.
Ergänzung:
Auf Grund einer Leserfrage ergänze ich hier noch das Image das auf meinem Jetson Nano vorinstalliert war.