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: 114 Punkte bei 5 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: 111 Punkte bei 5 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: 80 Punkte bei 4 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Einzelne Bilder vom Film speichern
Frank, 29.07.2014 19:34
> Hallo Johanna, > > Kann ich einzelne Sequenzen als Foto speichern , wie und mit welchen > >...
Re: [EasyLinux-Ubuntu] Einzelne Bilder vom Film speichern
Karl-Heinz, 29.07.2014 19:24
Am Tue, 29 Jul 2014 19:07:07 +0200 schrieb Frank : Hallo Johanna, > Kann ich einzelne Sequenzen als Fo...
Re: [EasyLinux-Ubuntu] Einzelne Bilder vom Film speichern
Frank, 29.07.2014 19:22
N'abend Hartmut, > Hallo Frank, > mit vlc müßte es gehen Mit VLC wird nur ein festes Bild mit dem O...
Re: [EasyLinux-Ubuntu] Firefox: Schnellwahl
Karl-Heinz, 29.07.2014 19:21
Am Tue, 29 Jul 2014 18:48:26 +0200 schrieb Hartmut Haase : Hallo Hartmut > ich bekomme eine leere Seit...
Re: [EasyLinux-Ubuntu] Firefox: Schnellwahl
Willi Zelinka, 29.07.2014 19:20
Hallo Hartmut, Am Dienstag, 29. Juli 2014, 18:48:26 schrieb Hartmut Haase: > Hallo Willi, > >...