Capt2PDF: Bildschirmkopien als durchsuchbare PDF-Dateien erstellen

  Urs Pfister   Lesezeit: 7 Minuten  🗪 6 Kommentare Auf Mastodon ansehen

Mit Capt2PDF können automatisiert in Zeitintervallen (z.B. alle fünf Sekunden) Bildschirmkopieren erstellt werden. Diese werden im Hintergrund in durchsuchbare PDF-Dateien umgewandelt.

capt2pdf: bildschirmkopien als durchsuchbare pdf-dateien erstellen

Allumfassend und überall scheint es aktuell um künstliche Intelligenz (KI) zu gehen. Einige Bekanntheit erlangt aktuell Microsoft mit dem neu für Windows 11 angekündigten Dienst Recall, der sozusagen das Gedächtnis der Nutzer/innen auf ihrem Computer werden soll. Dabei werden alle x-Sekunden Bildschirmfotos erstellt. Diese Daten werden im Hintergrund KI “gerecht” aufbereitet, sodass spätere Recherchen möglich sind. Mit Capt2PDF gibt es neu ein Tool für Linux. Im Unterschied zu Microsoft Recall arbeitet Capt2PDF auf dem lokalen Desktop, die Kontrolle der Daten verbleibt bei den Nutzer/innen.

Um Bildschirminhalte aufzuzeichnen, gibt es zwei grundsätzliche Ansätze. Meistens wird aktuell OBS (Open Broadcasting System) verwendet. Dabei werden Filmdateien (inkl. Ton) der Bildschirmaktivität erstellt. Mittels Text- und Spracherkennung können daraus durchsuchbare PDF-Dateien erstellt werden.

Mit OBS erstelle Filmdateien benötigen viel Platz, werden doch pro Sekunde ca. 30 Bilder aufgezeichnet. Der Platzbedarf pro Minute bewegt sich im Bereich von mehreren Dutzend MByte. Die spätere Text- und Spracherkennung erfordern viel Leistung, ein Tool, dass diesen Job automatisch erledigt, gibt es aktuell nicht.

Als Alternative bietet sich der klassische Ansatz an. Wohl auf jedem Linux-Desktop können mit ‘PrintScreen’ (Taste ganz oben, dritte von rechts) Bildschirmkopien erstellt werden. Geht es darum, einige nachfolgende Abläufe (z.B. im Support) zu dokumentieren, wird das Unterfangen bald arbeitsintensiv. Die einzelnen Bilddateien müssen zu einer Datei umgewandelt werden. Meistens wird dabei eine PDF-Datei erstellt. Damit der Inhalt durchsuchbar ist, muss eine Texterkennung gestartet werden etc. etc.

Microsoft Recall bzw. KI als “Vorbild”?

An sich nimmt Microsoft Recall genau dieses Anliegen auf. Das automatische Aufzeichnen von Inhalten ist aber nicht in Ansätzen neu. Neu ist einfach, dass das Erstellen der Bildschirmkopien quasi in Echtzeit automatisiert so gemacht wird, dass sich die Daten durchsuchen lassen.

Dass dazu in irgendeiner Art und Weise die Cloud zum Einsatz kommen soll/muss, bleibt ein Rätsel. Ganz offensichtlich geht es wohl eher darum, dass die Hersteller möglichst viele Daten „abkupfern“ wollen. Dass es auch anders geht, zeigt Capt2PDF. Mit Capt2PDF werden in Zeitintervallen (z.B. 5 Sekunden) Bildschirmkopien erstellt. Im Hintergrund werden diese zu einer durchsuchbaren PDF-Datei zusammengetragen. Damit lässt sich einfach nach aufgezeichneten Bildschirmkopien suchen.

Unter https://archivista.ch/cms/wp-content/uploads/2024/06/capt2pdf.zip kann der Quellcode als Zip-Datei bezogen werden. Diese Datei entpacken. Anschliessend kann das Programm in einem Terminal mit perl capt2pdf 5 (Aufzeichnung mit Intervall von 5 Sekunden) gestartet werden. Mit perl capt2pdf 0 wird die Aufzeichnung gestoppt. Diese beiden Befehle werden sinnvollerweise auf eine Tastenkombination gelegt.

Auf dem AVMultimedia-Desktop (siehe https://archivista.ch/cms/de/support/avmultimedia) steht dafür die Tastenkombination Ctrl+PrintScreen zum Starten der Aufzeichnung bzw. Shift+Ctrl+PrintScreen zum Beenden der Aufzeichnung zur Verfügung. Dazwischen wird der Bildschirm in Abständen von 5 Sekunden aufgezeichnet. Nach Beenden des Programms wird nach einigen wenigen Sekunden die fertig durchsuchbare PDF-Datei auf dem Desktop dargestellt. Einfach, oder?

Braucht Capt2PDF eine KI oder eine Cloud?

Nicht in Ansätzen. Capt2PDF arbeitet 100% lokal, eine jede halbwegs moderne CPU ist in der Lage, diesen Job zu erledigen. Capt2PDF umfasst aktuell ca. 260 Zeilen.

Das Programm wurde für AVMultimedia bzw. die ArchivistaBox entwickelt. Es sollte aber auch auf den meisten anderen Linux-Desktops laufen. Unter X11 kommt das Programm scrot für die Bildschirmkopien zur Anwendung, bei Wayland ist es spectacle oder gnome-screenshot.

Erwähnt an dieser Stelle sei, dass neben dem Capture-Tool minimal die Programme compare, convert, tesseract und pdftk vorhanden sein müssen. Capt2PDF startet einen Einzeiler in der Bash, welcher so lange Bildschirmkopien erstellt, bis Capt2PDF beendet werden soll. Nach dem Erstellen einer Bildschirmkopie wird jeweils Capt2PDF unter Angabe des aktuellen Abbilds gestartet und von dort aus im Hintergrund die Texterkennung (OCR) tesseract.

Beim ImageMagick-Hilfsprogramm compare geht es darum, herauszufinden, ob sich die aktuelle Bildschirmkopie von der letzten unterscheidet. Nur dann ergibt es Sinn, daraus eine durchsuchbare PDF-Datei zu erstellen. Aktuell müssen sich 1% der Pixel auf dem Bildschirm ändern, ansonsten wird die Kopie verworfen. Damit werden bei reinen Mausbewegungen oder bei aktualisierten Statusanzeigen keine neuen Screens bzw. PDF-Seiten erstellt.

Liegen mehr als 1 % geänderte Pixel vor, wird tesseract aufgerufen. Bevor die Texterkennung gestartet wird, wird mit convert die gewünschte Auflösung (dpi) in der Bilddatei hinterlegt. 300dpi ergeben bei der Texterkennung (OCR) allseits gute Resultate. Bei einem 4K-Bildschirm mit 3860×2160 Pixel liegt plus/minus in etwa eine A4-Seite im Querformat mit 300dpi vor (3508×2480 Punkte bei A4).

Das jeweilige Erstellen der Seiten erfolgt direkt beim Aufzeichnen der Seiten. Damit bei langsamen CPUs (Prozessoren) keine "Überlastung" resultiert, prüft Capt2PDF die Anzahl der CPU-Kerne. Sofern mehr als die Hälfte der CPUs für tesseract im Einsatz stehen, erfolgt so lange keine Texterkennung mehr, bis wieder genügend Ressourcen zur Verfügung stehen. Capt2PDF wird hier "etwas" vergesslich. Angemerkt sei aber, dass dies nur bei sehr alten Prozessoren auftritt, in aller Regel benötigt tesseract ca. 2 Sekunden für eine Seite.

Die entsprechenden PDF-Dateien werden im Home-Verzeichnis (z.B. /home/arcihvista) unter screens quasi als einzelne Seiten abgelegt. Wenn Capt2PDF beendet wird, kommt pdftk zum Zuge, um die PDF-Gesamtdatei zu erstellen. Dieser Vorgang dauert auch für Hunderte von Seiten kaum mehr als fünf bis zehn Sekunden. Zum Abschluss wird die durchsuchbare PDF-Datei mit dem Viewer qpdfview dargestellt.

Kleiner Werbespot an dieser Stelle: Wer eine weitergehende Auswertung bzw. integrale Durchsuchbarkeit mehrerer PDF-Dateien benötigt, findet in der ArchivistaBox ein gutes Arbeitstier. Wer kein vollwertiges Dokumentenmanagement System (DMS) einsetzen mag, kann natürlich auch mehrere so erstellte durchsuchbare PDF-Dateien zu einer Datei zusammenfügen. Der entsprechende Aufruf ist einfach:

pdftk file1.pdf file2.pdf output allfiles.pdf

Capt2PDF ist selbstverständlich Open Source (GPLv2). Es wurde für die Linux-Distribution AVMultimedia (und damit auch für die ArchivistaBox) entwickelt und steht dort ab Version 2024/VI zur Verfügung. Mit einer Grösse von aktuell ca. 260 Zeilen Code ist es ein handliches Tool, um z.B. bei einer Recherche im Internet Inhalte bequem und einfach erfassen zu können.

Kurz und gut, ein zweckmässiges Programm, um Bildschirminhalte so aufzuzeichnen, dass die Büchse der Pandora nicht geöffnet werden muss. Will heissen, ganz ohne KI und Cloud, dafür einfach, transparent (100 % Open Source) und lokal und in Echtzeit auf dem eigenen Linux-Desktop.

Quellen:
https://archivista.ch/cms/de/aktuell-blog/capt2pdf-mit-2024-vi/

Tags

Bildschirmkopien, Recall, PDF, Capt2PDF

Christopher
Geschrieben von Christopher am 17. Juni 2024 um 13:01

Nettes Tool und danke für die Vorstellung. Nun frage ich mich aber, wirklich nur mich selber, wofür ich das benötige. Ich habe dem MS Ansatz schon nicht verstanden. Wozu soll ich also alle 5 sek. ein durchsuchbaren Screenshot erstellen? Muss ich mich an irgend etwas erinnern? Helft mir mal bitte wozu das gut sein soll. Ich sehe es nicht. Dafür fehlt mir die Phantasie😁

Urs Pfister
Geschrieben von Urs Pfister am 17. Juni 2024 um 21:03

Für mich sind es folgende Anwendungfälle:

  1. Ich mache eine Recherche im Internet und möchte aufzeichnen, wonach ich gesucht habe. Ja, ich weiss, es gibt den Browser-Verlauf. Bei nicht statischen Seiten (heute die Mehrzahl) hilft mir ein erneuter Aufruf der Seite aber oft nicht weiter, weil die Seiten bereits nach kurzer Zeit anders aussehen bzw. über den Cache nicht mehr aufrufbar sind.

  2. Im Support muss ich oft gewisse Abläufe dokumentieren oder Kunden müssen wir Informationen zusenden, damit ich sehe, ob und wie etwas läuft. Filme werden zu gross und einzelne Screenshots sind aufwändig. Lässt sich mit capt2pdf (allfällige Notzien danach mit xournal++) sehr gut bewerkstelligen.

  3. Wer im Internet Bestellungen vornimmt, kann mit capt2pdf den Betellvorgang sehr einfach aufzeichnen. Ich hatte mal das Beispiel, wo ich beim grössten Ferienwohnungs-Anbieter in Europa buchen wollte. Das 3-Zimmer-Appartment stellte sich (erst beim letzten Klick) als 2-Zimmer-Wohnung heraus. Ich hatte bereits die Kreditkartennummer eingegeben, aber noch nicht den Bestellknopf getätigt. Der Anbieter sendete mir ein Mail 'Vielen Dank für die Bestellung'. Mit den damals (manuell) aufgezeichneten Screens konnte ich belegen, dass er mir ein 2-Zimmer-Appartment für eine 3-Zimmer-Wohnung unterjubeln wollte und dass ich daher eben nicht bestellt habe. Capt2PDF nimmt mir hier Arbeit ab. Bestellseiten sind derart dynamisch, dass es wenig Sinn ergibt, HTML-Seiten (Super-Tool wäre dazu SingleFile-Addon) helfen bei extrem dynamischen Seiten nicht, Screenshots sind da deutlich genauer.

fleixi
Geschrieben von fleixi am 17. Juni 2024 um 13:17

Ohne das ich recall in irgendeiner Art gut finde aber irgendwie bringst du da einiges durcheinander. Recall in Windows benötigt laut Microsoft auch keine Cloud und Microsoft macht sagt sogar ausdrücklich das die Daten komplett lokal verarbeitet werden. Der Kritikpunkt ist hauptsächlich das die Daten zuerst komplett unverschlüsselt auf der platte liegen und das die Leute Microsoft zutrauen das die Daten irgendwann/irgendwie doch einen Weg in die Cloud finden.

AI wird auch nicht dazu gebraucht um die Bilder durchsuchbar zu machen sondern um Anfragen wie "welches Hotel war das nochmal wo ich eine Palme direkt neben dem Pool gesehen habe" zu antworten zu können. Dieser Anwendungsfall ist mit deiner Vorgehensweise nicht beantwortbar.

Also wie gesagt ich finde auch das es Recall nicht braucht aber die Marke Eigenbau die du uns hier zeigt ist in keinster Weise besser. Es fehlt momentan noch mindestens die Verschlüsselung der Daten und eine Datenbank um Suchanfrage in akzeptabeler Geschwindigkeit beantworten zu können (wobei das ja vielleicht in weiteren Artikeln noch kommt)

Urs Pfister
Geschrieben von Urs Pfister am 17. Juni 2024 um 20:50

Da Recall bzw. Windows nicht Open Source ist, ist es schwierig zu sagen, was wie läuft. Einige Quellen (z.B. administrator.de) sprechen davon, dass Recall nur auf den neuen ARM-Chips (mit KI-Prozessor) laufe, andere Quellen (z.B. heise.de) stellen fest, dass Recall auch auf einem 1.5 Jahre alten Mini-Rechner lief. Und wenn bei einer Abfrage die KI in der Cloud "angeworfen" wird, dann läuft es letztlich auf genau das hinaus, was (m.A.) zu Recht kritisiert wird.

Der Unterschied zu capt2pdf ist aber doch der, dass das Tool Open Source ist (für mich ist das schon viel besser) und dass keine Meta-Informationen angelegt werden. Ich kann versichern, dass ich für unsere Produkte auch schon lokal Open Source Bild-KI getestet habe. Beim ersten Bild meiner Tochter (Wanderung Via Stockalper hoch, im Herbst) meinte die lokale KI: 1. Alpen, 2. Dieb. Solange dem so ist, wandert sowas nicht in unsere Produkte. Ich habe nirgends geschrieben, dass capt2pdf eine KI beinhaltet. Im Gegenteil, ich finde, für die Durchsuchbarkeit braucht es keine KI.

Aber, ich habe geschrieben (inkl. Verweis auf kleinen Werbespot), dass für die Auswertung der PDF-Dateien ein Dokumenten Managment System (DMS) empfohlen werden kann und dass sich dafür die ArchivistaBox eigne. Die Daten liegen dann in einer webbasierten Anwendung, wo sehr genau festgelegt werden kann, wer was wann und wie ansehen bzw. bearbeiten kann. Aber klar, wenn das root-Passwort des Servers und ein Zugriff auf diesen vorhanden ist, dann können die Daten "gelesen" werden. Wie unsere Produkte funktionieren, darüber gibt das Handbuch Auskunft. Unsere Produkte sind (Ausnahme 2D-Barcodes) Open Source. Warum dem so ist, auch darüber gibt unsere Homepage Auskunft. In diesem Sinne, ein weiter Artikel zu diesem Thema ist folglich nicht geplant. Warum ich capt2pdf nützlich finde, siehe dazu die Antwort bei anderen Kommentaren.

Robert
Geschrieben von Robert am 17. Juni 2024 um 17:58

Also ist Capt2PDF zwar schon irgendwie ziemlich "Recall-Ähnlich" durchsuchbar, kommt dabei jedoch komplett ohne KI-Funktionen aus !? Sollte / Müsste sich so ein Dienst nicht auch dem Benutzer gegenüber zu erkennen geben? Welche realen Anwendungsfälle - ausser Kontrolle, Spionage oder (Mitarbeiter-)Überwachung - existieren für so einen Service eigentlich? Wo braucht man so etwas? Wer nutzt das? Wozu?

Mal als kleinen Vergleich: Viele Anwendungsprogramme merken sich die letzten getätigten Aktionen und bieten eine Undo-Funktion. Sogar die allermeisten Eingabe-Shells haben ebenso seit vielen Jahrzehnten eine HISTORY-Funktion, um sich an Kommandos erinnern zu können oder wiederholbar zu machen. Bisher kam aber noch niemand auf die Idee daraus einen Film zu produzieren, der auch nach dem Ausschalten verfügbar bleibt.

Das man derzeit (noch) Bilddateien statt Filmdateien benutzt, liegt wohl tatsächlich nur am Speicherplatz. Zukünftig sehr viel effektiver ist es den Bildschirm-Stream gleich direkt in die Cloud zu laden... am besten parallel und zusammen mit den aktuellen Videostream-Aufnahmen der Kamera - plus örtlicher Lokalisierung. Bei Microsoft nennt man das dann: "Das beste Nutzungserlebnis garantieren!" :-C

Urs Pfister
Geschrieben von Urs Pfister am 17. Juni 2024 um 21:20

Capt2PDF gibt sich bei jedem Start mit einer Notiz zu erkennen, dass es gestartet wurde und bei jedem Beenden, dass jetzt keine Aufzeichnung mehr erfolgt.

Die Anwendungsfälle habe ich an anderer Stelle erwähnt, hier nur soviel: 1. Recherche im Internet, 2. Support (Doku erstellen) und 3. Buchungen im Internet (mein Mitschnitt, was vereinbart wurde) bei dynamischen Seiten.

Jeder Zugriff auf einen Rechner kann dazu führen, dass spioniert wird. Keylogger in JavaScript oder z.B. keylogger als Programm (github-Projekt). Bildschirmkopien können im Hintergrund erstellt werden. Einzig gnome-screenshot wackelt artig, hier müsstest Du es bemerken. Jedoch nervt dies dann auch bei der Nutzung.

Ich erlaube mir hier noch anzuführen, dass nach meiner Ansicht nach die beste Vorsorge ist, wenn a) ein Open Source Linux zum Einsatz kommt und dass ich sehr dafür eintrete, dass das Betriebssystem nicht statisch ab Festplatte läuft. Daher habe ich AVMultimedia ja so entwickelt, dass es im Hauptspeicher (RAM) läuft. Sämtliche Browser-Verläufe, alles was irgendein Programm "im Hintergrund" speichert, gehen bei jedem Neustart verloren. Möchte ich Programme hinzufügen, können diese so auf der Festplatte abgelegt werden, dass sie beim Hochfahren ab lokaler Platte aktiviert werden. Beim Hoch- oder Runterfahren des Rechners stehen Skripte zur Verfügung, um das zu behalten bzw. vorzuhalten, was ich benötige. Damit steht das Betriebssystem nach jedem Neustart genau so zur Verfügung, als wäre es neu aufgesetzt worden. Natürlich kann ich nicht zu 100% ausschliessen, dass bei AVMultimedia kein Spy-Tool durch ein aufgespieltes Paket existiert, aber da es Open Source ist, liesse sich dies später dann doch recht gut lokalisieren. Wenn das jemand nicht gut findet, es muss ja niemand mit AVMultimedia arbeiten. Aber, ehe ich zum eBaning greife, mach ich dann und wann schon einen Neustart (dauert jeweils ca. 15 bis 20 Sekunden), dies ist es mir wert...