Screencasts
Screencasts sind digitale Filme, die die Anwendung von Programmen auf dem Desktop eines Computers zeigen. Häufig werden auch zusätzliche Audio-Aufnahmen erstellt, so dass man Erklärungen zum Vorgehen auf dem Desktop abgeben kann. So lassen sich z.B. sehr gut Anleitungen realisieren oder ein beeindruckender 3D-Desktop aufnehmen.
Übersicht¶
Die Auswahl an Programmen, um einen Screencast zu erstellen, ist recht groß. Um die Auswahl etwas einfacher zu gestalten, folgt eine alphabetische Übersicht der verfügbaren Programme.
Übersicht verschiedener Screencast-Programme | ||||||
Programm | Formate | Vollbild | Ausschnitt | Fenster | Audio | Anmerkungen |
FFmpeg | quasi alle | Ja | Ja | Nein | Ja | Kommandozeilenanwendung |
GNOME Shell | WebM | Ja | Nein | Nein | Nein | interne Funktion der GNOME Shell |
Kazam | WebM/MKV | Ja | Ja | Ja | Ja | kann PulseAudio, funktioniert auch mit Unity und der GNOME Shell |
recordMyDesktop | OGV | Ja | Ja | Ja | Ja | Resultat falsch kodiert, Soundaufnahme mit JACK funktioniert nicht |
SimpleScreenRecorder | diverse | Ja | Ja | Ja | Ja | Qt-basiert, sehr umfangreich, wird aktiv entwickelt |
VLC Media Player | FLV und andere | Ja | Nein | Nein | Nein | funktioniert nicht mit Unity |
vokoscreen | MPEG4 und libx264 (mkv und avi) | Ja | Ja | Ja | Ja | funktioniert mit PulseAudio und ALSA |
Programme¶
GNOME Shell¶
Ab GNOME 3 ist eine Screencast-Lösung integriert. Mit der Tastenkombination
Strg +
Alt +
⇧ +
R startet bzw. beendet man eine Aufnahme. Die laufende Aufzeichnung wird durch einen roten Kreis rechts unten auf dem Desktop angezeigt. Die Framerate ist standardmäßig auf 15 Bilder festgelegt. Die Aufnahme im VP8/WebM-Format wird im Homeverzeichnis unter ~/Videos/ gespeichert. Sowohl die Framerate als auch der Codec können via dconf-editor über den Schlüssel org.gnome.shell.recorder
angepasst werden.
Um die Begrenzung auf 30 Sekunden aufzuheben, ändert man den Wert für max-screencast-length
im Schlüssel org.gnome.settings-daemon.plugins.media-keys
.
Green Recorder¶
Auch der Green Recorder 🇬🇧 ist ein nützliches Werkzeug. Unterstützt wird neben dem XServer zusätzlich Wayland. Die Installation erfolgt unter Ubuntu 16.04 über ein "Personal Packages Archiv" (PPA) [1].
Adresszeile zum Hinzufügen des PPAs:
ppa:mhsabbagh/greenproject
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams mhsabbagh zu entnehmen.
Nach dem Aktualisieren der Paketquellen kann folgendes Paket installiert werden [2]:
green-recorder (ppa, nur 16.04)
Befehl zum Installieren der Pakete:
sudo apt-get install green-recorder
Oder mit apturl installieren, Link: apt://green-recorder
Kazam¶
Kazam ist eine moderne Screencast-Software, die auch unter Unity und der GNOME Shell funktioniert. Es nutzt für die Kodierung das Multimedia-Framework GStreamer. Der Ton wird beim Erstellen eines Screencasts über PulseAudio aufgenommen. Im Vergleich zu anderen Programmen, die nur offene Kodierungen wie bspw. den Video-Codec Theora enthalten, werden die bei Kazam verwendeten Kodierungen auch auf anderen Plattformen sowie im kommerziellen Umfeld unterstützt.
recordMyDesktop¶
recordMyDesktop möchte die Aufnahme des Desktops möglichst einfach machen. Das Programm besteht aus zwei Teilen: einem Programm ohne Oberfläche für die Aufnahme, das direkt aus einem Terminalfenster heraus gestartet werden kann, und einer grafischen Oberfläche, basierend auf Python und GTK. recordMyDesktop kann sowohl das Bild als auch den Ton aus einer beliebigen Quelle heraus aufnehmen.
SimpleScreenRecorder¶
Eine Neuentwicklung – im Vergleich mit den anderen hier vorgestellten Programmen – ist SimpleScreenRecorder. Ein integrierter Assistent führt in fünf einfachen Schritten zum eigenen Video. Es bietet entgegen dem, was der Name vermuten lässt, sehr viele Konfigurationsmöglichkeiten, die man nutzen kann, aber nicht muss.
VLC¶
Auch der VLC Media Player ist in der Lage, Screencasts zu erstellen. Folgender Programmaufruf startet den VLC-Player mit einer Desktop-Aufnahme (Ausgabe als screencast.flv mit 25 FPS). Zum Beenden der Aufnahme einfach "Stopp" im VLC-Player-Fenster anklicken.
Der Start erfolgt im Terminal mit dem Befehl [4]:
vlc screen:// --screen-fps 25 --nooverlay --sout "#transcode{vcodec=h264,vb=2048,scale=0.5,acodec=mp3,ab=128,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=screencast.flv}}"
Durch Verwendung der Kommandozeilenversion cvlc kann man verhindern, dass sich ein eigenes Fenster öffnet:
cvlc screen:// --screen-fps 25 --nooverlay --sout "#transcode{vcodec=h264,vb=2048,scale=0.5,acodec=mp3,ab=128,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=screencast.flv}}"
Die Aufnahme wird mit der Tastenkombination Strg + C beendet.
vokoscreen¶
vokoscreen 🇬🇧 ist eine einfach zu Bedienende Screencast-Software. Das Programm hat nur wenige Paketabhängigkeiten. Es ist in den offiziellen Paketquellen enthalten:
vokoscreen-ng (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install vokoscreen-ng
Oder mit apturl installieren, Link: apt://vokoscreen-ng
OBS Studio¶
OBS Studio 🇬🇧 ist eine freie, umfangreiche Lösung, um Bildschirminhalte aufzunehmen oder zu streamen. Weitere Informatioonen findet man im Artikel OBS MultiPlatform.
Terminal¶
Auch über ein Terminalfenster kann eine Aufnahme erfolgen.
FFmpeg¶
FFmpeg ist ein Kommandozeilenprogramm zur Erstellung und Umwandlung von Videos. Folgender Befehl erstellt ein MPEG4-Video screencast.mp4 mit einer Auflösung von 1920x1080 (ggf. für die eignen Bildschirmgröße anpassen!) sowie 25 Bildern in der Sekunde.
ffmpeg -f x11grab -r 25 -s 1920x1080 -i :0.0 screencast.mp4
Die Aufnahme wird mit der Tastenkombination Strg + C oder besser Q beendet.
Da hier automatisch der anspruchsvolle hochkomprimierende libx264
-Encoder verwendet wird, kann es auf langsamen Rechnern zu schlechter Qualität und/oder Ruckeln kommen. Man sollte dann besser z.B. den MPEG2-Encoder oder gar ein RAW-Format verwenden, und dann erst in einem 2. Schritt in MPEG4 transkodieren. Der libx264
-Encoder kann auch mit zusätzlichen Parametern in seiner Performance verbessert werden. Mit -crf 0
erhält man eine schnellere verlustlose Kodierung, die mit -preset ultrafast
nochmals wesentlich beschleunigt wird, wobei die Bitrate allerdings erheblich größer wird. Am schnellsten haben sich CRF-Werte von 10..15 erwiesen (Standard = 23). So sollte auch auf langsamen Rechnern eine ruckelfreie Aufnahme gelingen. Ob Bilder verschluckt, also ausgelassen wurden, erkennt man in der Ausgabe von ffmpeg
an dem Wert drop
.
ffmpeg -f x11grab -r 24 -s 1280x720 -i :0.0+2+50 -crf 0 -preset ultrafast screencast.mp4
Hier wurde auch nur ein Ausschnitt des Bildschirms ab x=2 und y=50 aufgenommen um den Kodier-Aufwand zusätzlich zu verringern. Um ein möglichst scharfes Bild zu haben, und es dem Codec leichter zu machen, sollte man die Größe des Fensters, in dem der Film abgespielt wird, möglichst genau an dessen Original-Auflösung anpassen. Anschließend sollte nochmals mit Standardeinstellung transkodiert werden, um die Größe des Videos zu verkleinern.
FFMpeg unterstützt auch den für Bildschirmmitschnitte besonders geeigneten Video-Codec "Flash Screen Video". Die meisten Video-Codecs (Ogg Theora, H264, MPEG-2) sind für Aufnahmen natürlicher Szenen gedacht. Diese Codecs trennen im ersten Schritt Farb- von Helligkeitsinformationen (YUV-Farbraum) und reduzieren die Auflösung der Farbinformation. Sie gehen von glatten Übergängen im Bild und eigentlich keinen scharfen Kanten aus. Wenn man einen solchen Codec für Bildschirmmitschnitte verwendet, bekommt das Bild auch bei höchster Videobitrate Farbschlieren. Im Gegensatz dazu arbeiten z.B. der libx264rgb
-Encoder und auch der "Flash Screen Video" im RGB-Farbraum und erlauben eine verlustfreie Darstellung von Farben und Kanten.
ffmpeg -f x11grab -show_region 1 -r 25 -s 640x480 -i :0.0 -vcodec flashsv screencast.flv
Dieser Befehl benutzt übrigens zusätzlich die Option -show_region 1
, welche einen Rahmen um den aufgezeichneten Ausschnitt zeichnet.
Unglücklicherweise können nicht alle Player das libx264rgb
-Format abspielen, und bei der Anzeige eines FlashSV-Videos sieht man in der Regel doch wieder Farbschlieren. Das liegt aber an den Abspielprogrammen wie VLC, MPlayer oder avplay/ffplay. Tatsächlich enthält das Video die originalen Bilder, was man überprüfen kann, wenn man das Video in seine Einzelbilder zerlegt:
ffmpeg -i screencast.flv screencast%05d.png
Folgender Befehl erstellt einen verlustfreien Screencast mit dem HuffYUV-Codec und einer Auflösung von 1024x768 sowie 25 Bildern in der Sekunde. Der Screencast wird in der Datei screencast.mkv in dem Verzeichnis gespeichert, aus dem man den Befehl heraus ausgeführt hat.
ffmpeg -f x11grab -r 25 -s 1024x768 -i :0.0 -c:v huffyuv screencast.mkv
Darüber hinaus kann auch der Ton mit aufgenommen werden (zB Monitor des Lautsprechers).
Beispiel mit Rechteck verschoben über Geometrie und Audioaufnahme (2 Kanäle (-ac audio channels), Input (-i): default
):
ffmpeg -video_size 1600x736 -framerate 25 -f x11grab -i :0.0+110,252 -f pulse -ac 2 -i default output.mkv
Die Audioquellen können ermittelt werden mit:
pacmd list-sources|awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}'
Abschließend kann einfach das Video gekürzt werden (die ersten 15 Sekunden rausschneiden, wo vielleicht das Terminal mit dem Befehl noch sichtbar war), wobei -c copy
bewirkt, dass nicht nochmal de- und wieder encodiert wird:
ffmpeg -ss 15 -i output.mkv -c copy output_cut.mkv
Die Aufnahme wird mit der Tastenkombination Strg + C beendet. Besser ist allerdings, die Taste Q zum Beenden zu nutzen, die zu einem geordneten Programmstopp führt.
Links¶
Markus Oppitz OpenOffice Impress Screencast 🇦🇹 🇩🇪 - Screencast mit eingezoomten Bildschirmbereichen, 2010
Multimedia Übersichtsartikel