[[Inhaltsverzeichnis(2)]] [[Bild(./screencasts2_logo.png, 64, align=left)]] 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. {{{#!vorlage Tabelle Übersicht verschiedener Screencast-Programme +++ Programm Formate Vollbild Ausschnitt Fenster Audio Anmerkungen +++ [#FFmpeg FFmpeg] quasi alle Ja Ja Nein Ja Kommandozeilenanwendung +++ [#GNOME-Shell GNOME Shell] WebM Ja Nein Nein Nein interne Funktion der GNOME Shell +++ [#Kazam Kazam] WebM/MKV Ja Ja Ja Ja kann PulseAudio, funktioniert auch mit Unity und der GNOME Shell +++ [#recordMyDesktop recordMyDesktop] OGV Ja Ja Ja Ja Resultat falsch kodiert, Soundaufnahme mit JACK funktioniert nicht +++ [#SimpleScreenRecorder SimpleScreenRecorder] diverse Ja Ja Ja Ja Qt-basiert, sehr umfangreich, wird aktiv entwickelt +++ [#VLC VLC Media Player] FLV und andere Ja Nein Nein Nein funktioniert nicht mit Unity +++ [#vokoscreen vokoscreen] MPEG4 und libx264 (mkv und avi) Ja Ja Ja Ja funktioniert mit PulseAudio und ALSA }}} = Programme = [[Bild(Wiki/Icons/Tango/media-record.png, 48, align=right)]] == GNOME Shell == Ab GNOME 3 ist eine Screencast-Lösung integriert. Mit der Tastenkombination [[Vorlage(Tasten, strg+alt+shift+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 [:GNOME_Konfiguration/dconf: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`. [[Bild(./green-recorder_logo.png, 48, align=right)]] == Green Recorder == Auch der [github:green-project/green-recorder:Green Recorder] {en} ist ein nützliches Werkzeug. Unterstützt wird neben dem XServer zusätzlich [wikipedia:Wayland_(Display-Server-Protokoll):Wayland]. Die Installation erfolgt unter [:Xenial:Ubuntu 16.04] über ein "Personal Packages Archiv" (PPA) [1]. [[Vorlage(PPA, mhsabbagh/greenproject)]] Nach dem Aktualisieren der Paketquellen kann folgendes Paket installiert werden [2]: {{{#!vorlage Paketinstallation green-recorder, ppa, nur [:16.04:] }}} [[Bild(./kazam_logo.png, 48, align=right)]] ## [[Bild(./kazam.png, 180, align=right)]] == 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 [wikipedia:Theora:] enthalten, werden die bei Kazam verwendeten Kodierungen auch auf anderen Plattformen sowie im kommerziellen Umfeld unterstützt. [[Bild(./gtk-recordMyDesktop.png, 300, align=right)]] == 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. [[Bild(./ssr_logo.png, 64, align=right)]] ==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. [[Bild(VLC/vlc-logo.png/, 48, align=right)]] == VLC == Auch der [:VLC: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]: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 [[Vorlage(Tasten, strg+c)]] beendet. [[Bild(./vokoscreen_logo.png, 48, align=right)]] == vokoscreen == [http://linuxecke.volkoh.de/vokoscreen/vokoscreen.html vokoscreen] {en} ist eine einfach zu Bedienende Screencast-Software. Das Programm hat nur wenige Paketabhängigkeiten. Es ist in den offiziellen Paketquellen enthalten: {{{#!vorlage Paketinstallation vokoscreen-ng, universe }}} == OBS Studio == [https://obsproject.com OBS Studio] {en} ist eine freie, umfangreiche Lösung, um Bildschirminhalte aufzunehmen oder zu streamen. Weitere Informatioonen findet man im Artikel [:OBS_MultiPlatform:]. = Terminal = [[Bild(Wiki/Icons/terminal.png, 48, align=right)]] 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. {{{#!vorlage Befehl ffmpeg -f x11grab -r 25 -s 1920x1080 -i :0.0 screencast.mp4 }}} Die Aufnahme wird mit der Tastenkombination [[Vorlage(Tasten, strg+c)]] oder besser [[Vorlage(Tasten, 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`. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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: {{{#!vorlage Befehl ffmpeg -i screencast.flv screencast%05d.png }}} Folgender Befehl erstellt einen verlustfreien Screencast mit dem [wikipedia: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. {{{#!vorlage Befehl 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`): {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl ffmpeg -ss 15 -i output.mkv -c copy output_cut.mkv }}} Die Aufnahme wird mit der Tastenkombination [[Vorlage(Tasten, strg+c)]] beendet. Besser ist allerdings, die Taste [[Vorlage(Tasten, Q)]] zum Beenden zu nutzen, die zu einem geordneten Programmstopp führt. = Links = * [youtube:T6v0E150DT8:Markus Oppitz OpenOffice Impress Screencast] {at} {de} - Screencast mit eingezoomten Bildschirmbereichen, 2010 * [:Medien/Videos:] * [:Multimedia:] {Übersicht} Übersichtsartikel # tag: Multimedia, Screencast, Übersicht