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: 149 Punkte bei 76 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: 131 Punkte bei 74 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: 212 Punkte bei 38 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Leap 42.1 und LibreOffice
Heinz Kolbe, 09.02.2016 21:54, 0 Antworten
Moin moin, auf meinem Notebook habe ich Leap 42.1 und Win 10 installiert. Alles läuft rund nur...
Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Vom Bildschirm aufzeichnen
Frank von Thun, 10.02.2016 19:39
Am 10.02.2016 um 17:22 schrieb Alexander McLean: > > Das funktioniert nicht. Ich glaube, DEFAULT als...
Re: [EasyLinux-Ubuntu] OT:_Wo_speichert_Evolution_Passwörter?
Dennis, 10.02.2016 18:58
>> Weiß jemand, wo die gespeichert sind und ich alle (also sowohl für >> Senden und auch Empfange...
Re: [EasyLinux-Ubuntu] Vom Bildschirm aufzeichnen
Rainer, 10.02.2016 17:58
Hallo Alexander, Am Wed, 10 Feb 2016 17:22:02 +0100 schrieb Alexander McLean : > > > > Ide...
Re: [EasyLinux-Ubuntu] OT:_Wo_speichert_Evolution_Passwörter?
Alexander McLean, 10.02.2016 17:39
Am Mittwoch, den 10.02.2016, 09:42 +0100 schrieb Michael: Hallo Michael > Weiß jemand, wo die gespeicher...
Re: [EasyLinux-Ubuntu] Vom Bildschirm aufzeichnen
Alexander McLean, 10.02.2016 17:23
Am Freitag, den 05.02.2016, 13:46 +0100 schrieb Heiko Ißleib: Hallo Heiko > Simple Screen Recorder Gib...