Screenshots automatisch alle x Sekunden schießen

import erzeugt auch Screenshots
import erzeugt auch Screenshots
04.12.2012 11:34

Für Linux existiert ein ganzer Haufen netter Screenshot-Programme. Diese schießen jedoch durchweg immer nur ein Foto, ihre schicke Benutzeroberfläche erfordert zudem den Eingriff des Benutzers. Das ist jedoch alles andere als komfortabel, wenn man automatisch eine Bilderserie aufnehmen möchte – beispielsweise weil man alle 3 Sekunden einen Screenshot von einem laufenden Spiel aufzeichnen möchte. Im besten Fall reicht ein Tastendruck, um ein Bild zu erzeugen. Wer denkt aber schon mitten im Gefecht daran, eine Taste zu drücken?

Importeur

Glücklicherweise gibt es die Bash und das kleine Programm import aus ImageMagick. Das letztgenannte Helferlein schießt netterweise auch Screenshots. Damit kann man sich etwa das folgende kleine Skript basteln, das alle 3 Sekunden einen Screenshot erstellt und im Verzeichnis Bilder ablegt:

#!/bin/sh
ANZAHL="100" # Anzahl der Screenshots
SEKUNDEN="3" # Schieße Screenshot alle … Sekunden
VERZEICHNIS="/home/tim/Bilder" # Speicherort
DATEINAME="screenshot" # Dateiname der Bilder

for i in `seq 1 $ANZAHL`
do
 import -window root $VERZEICHNIS/$DATEINAME$i.png
 sleep $SEKUNDEN
done

exit 

Zu Beginn legt das Skript ein paar Variablen mit den Eckdaten fest: ANZAHL bestimmt, wie viele Screenshots das Skript schießen soll. Zwischen zwei Screenshots vergehen die hinter SEKUNDEN festgelegten Sekunden. Die geschossenen Screenshots landen im angegebenen VERZEICHNIS unter dem DATEINAMEN.

Es folgt schließlich eine Schleife, die i von 1 bis ANZAHL hochzählt. import schießt dann vom gesamten Bildschirm (-window root) einen Screenshot und legt ihn im vorgegebenen Verzeichnis im PNG-Format ab. Wer ein anderes Dateiformat bevorzugt, muss nur die Endung (.png) entsprechend austauschen. Jeder Screenshot trägt zudem im Dateinamen eine fortlaufende Nummer. Dazu hängt das Skript einfach den Wert von i an den Dateinamen an. Abschließend legt sleep das Skript für die eingestellten 3 Sekunden schlafen.

import schießt brav einen Screenshot nach dem anderen.

Schneiderei

Wenn man nur einen Ausschnitt vom kompletten Bildschirm haben möchte, hängt man import noch den Parameter -crop mit der Auflösung an. Der folgende Befehl fotografiert etwa nur ein 1024 mal 768 Pixel großes Rechteck in der linken oberen Bildschirmecke:

import -window root -crop 1024x768-0+0 $VERZEICHNIS/$DATEINAME$i.png

Das Skript hat allerdings einen kleinen Nachteil: Sobald image einen Screenshot schießt, friert der Bildschirm für kurze Zeit ein. Das führt gerade in schnellen Spielen gerne schon einmal dazu, dass man mit der Figur am Ziel vorbei springt oder danebenschießt.

Abschließend noch ein Warnhinweis: Das obige Skript ist einfach gestrickt. Beispielsweise überschreibt es ohne Rückfrage bereits vorhandene Dateien mit dem gleichen Dateinamen. Bevor man also das Skript anwirft, sollte man sicherstellen, dass das Verzeichnis leer ist – oder eine entsprechende Abfrage in das Skript einbauen.

Eine alternative Lösung zu import wären übrigens Screenrecoder, also Programme, die gleich den ganzen Desktop abfilmen. Diese brauchen allerdings während der Ausführung eine relativ hohe Rechenleistung und erzeugen in der Regel ziemlich große Dateien. Im Gegenzug kann man sich die benötigten Bilder mit einem Videoschnittprogramm nachträglich frei auswählen und speichern.


Kommentare
schön - aber wozu das Script?
tuxator (unangemeldet), Mittwoch, 05. Dezember 2012 13:09:46
Ein/Ausklappen

Ein simples

import -window root -snaps 5 -pause 3 snapshot.jpg

würde reichen. Erstellt 5 Screenshots mit je 3 Sekunden Pause im aktuellen Verzeichnis.


Bewertung: 153 Punkte bei 121 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: schön - aber wozu das Script?
Tim Schürmann, Mittwoch, 05. Dezember 2012 16:18:23
Ein/Ausklappen

Weil man das Skript noch an die eigenen Bedürfnisse anpassen und ausbauen kann? :)

Darüber hinaus sind snaps und pause erst in neueren ImageMagick-Versionen vorhanden, die Seite zu import auf imagemagick.org führt die beiden Parameter (noch) gar nicht:

http://www.imagemagick.org/script/import.php

Aber stimmt schon - in seiner jetzigen Form könnte man es auch einfach durch den einzelnen Befehl ersetzen.

Ergänzung: Wer noch weitere Methoden kennt, automatisiert (im Hintergrund) einen Screenshot zu erstellen, dann immer her damit. :)


Bewertung: 133 Punkte bei 118 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: schön - aber wozu das Script?
crs (unangemeldet), Dienstag, 01. Oktober 2013 00:36:22
Ein/Ausklappen

Der Skript funktioniert für mich wuderbar,
Habe noch die einfachen Zeilen

convert -scale 50% $VERZEICHNIS/$DATEINAME$i.png $VERZEICHNIS/$DATEINAME$i.jpg
convert -quality 10 $VERZEICHNIS/$DATEINAME$i.png $VERZEICHNIS/$DATEINAME$i.jpeg
rm $VERZEICHNIS/$DATEINAME$i.png
rm $VERZEICHNIS/$DATEINAME$i.jpg

hinzugefügt.

Die -crop 300x500+980+1400 kommt auch hilfreich daher.

Danke für den Tip


Bewertung: 248 Punkte bei 51 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Ubuntu Nachrichtensammlung, Band 129, Eintrag 4
Hans, 08.12.2016 13:30
Hallo Scharam, einmal Tante Guurgel und da habe ich Pooka Email Client gefunden. Gruß Jörg Am 8. Dezem...
[EasyLinux-Ubuntu] Ein Mailprogramm in Java
Schahram Sanawi Garrousi, 07.12.2016 23:02
Hallo Liste Gibt es ein Mailprogramm in Java? Gruß Schahram -- 4.4.0-53-generic x86_64 * Kubuntu 16.04...
Re: [EasyLinux-Ubuntu] WLAN Adressenbereich
"Michael R. Moschner", 02.12.2016 17:54
Am Samstag, 26. November 2016, 00:54:07 schrieb Richard Kraut: Hallo Richard und alle anderen Danke für die...
Re: [EasyLinux-Ubuntu] [erledigt?] xubuntu 16.04: unvollständige_Aktualisierung
Hartmut Haase, 30.11.2016 18:16
Hallo Liste, > 0% [Verbindung mit security.ubuntu.com (2001:67c:1560:8001::11)] wenn man das Ganze lang...
Re: [EasyLinux-Ubuntu] xubuntu_16.04:_unvollständige_Aktualisierung
Hartmut Haase, 30.11.2016 16:28
Hallo Frank, > Habe ich auch gerade? > Root hat noch 3GB frei. ich habe noch knapp 10GB frei. Dara...