Um einen statischen Screenshot eines ausgewählten Teils meines Bildschirms aufzunehmen, verwende ich häufig scrot
mit -s shot.png
. Dies eignet sich hervorragend zum Hinzufügen von Illustrationen zu StackExchange-Posts. Ich habe sogar festgestellt, dass dieses Skript einen solchen Screenshot automatisch auf Imgur.com hochlädt und einen Link in meine X-Zwischenablage legt!
Drehen wir dies auf zwölf : Wie erstelle ich auf ähnliche Weise einen GIF-Screencast?
Es gibt Programme wie recordmydesktop
, byzanz
& co wie besprochen auf Ubuntu Fragen , die darauf abzielen „benutzerfreundlich“ zu sein, aber in meiner Erfahrung sind fehlerhaft, ineffizient, vor allem unscriptable und nicht geeignet für kleine einmalige Dinge wie diese.
Ich möchte nur einen Bereich auswählen und ein GIF aufzeichnen, mit einem Konsolenbefehl, den ich verstehen kann, und nicht mit einer geheimen, nicht beschreibbaren GUI-Monstrosität.
Wie kann ich das machen?
quelle
Antworten:
OK dann
Ich begann
ffcast
, hatvim
, zu beendenffcast
, dannconvert
ed.avi
→.gif
.Ich habe die Aufnahmebefehle in einem anderen Terminal ausgeführt. Poliertes Skript für Sie
$PATH
am Ende dieser Antwort.Was ist passiert?
Erfassen
ffcast
ist das glorreiche Produkt von Hacking in der Arch Linux-Community (hauptsächlich Lolilolicon ). Sie können es finden auf Github (oder in der AUR für Arch ers). Die Abhängigkeitsliste ist einfachbash
undffmpeg
, obwohl Sie möchtenxrectsel
( AUR-Link ) für die interaktive Rechteckauswahl.Sie können
ffmpeg
Flags auch direkt nach dem Befehl anhängen . Ich habe die-r 15
Aufnahme auf 15 Bilder pro Sekunde und-codec:v huffyuv
für verlustfreie Aufnahmen eingestellt. (Spielen Sie mit diesen, um den Kompromiss zwischen Größe und Qualität zu optimieren.)GIFfing
ImageMagick kann
.avi
Videos lesen und hat einige GIF-Optimierungs-Tricks, die die Dateigröße drastisch reduzieren und gleichzeitig die Qualität erhalten: Das,-layers Optimize
umconvert
den Universal-Optimierer aufzurufen. Das ImageMagick-Handbuch enthält auch eine Seite mit erweiterten Optimierungen .Letztes Drehbuch
Das habe ich in meinem
$PATH
. Es zeichnet vor der Konvertierung in eine temporäre Datei auf.Vielen Dank an BenC für die Detektivarbeit bei der Ermittlung der korrekten Flags nach dem letzten
ffcast
Update.Wenn Sie die Abhängigkeiten auf einer Debian-basierten Distribution installieren möchten, hat Louis hilfreiche Installationshinweise geschrieben .
quelle
ffcast
sich geändert zu haben: github.com/lolilolicon/FFcast/issues/8ffcast -s rec [filename]
, obwohl dies nicht die genauen Einstellungen angibt, die Sie in Ihrem Beispiel verwenden. Um genaue Einstellungen vornehmen zu können, müssen Sie jetzt leider den gesamtenffmpeg
Befehl eingeben. Ihr Anruf über den besten Weg, um diese Antwort zu aktualisieren :)ffcast -s % ffmpeg -f x11grab -show_region 1 -framerate 20 -video_size %s -i %D+%c -codec:v huffyuv -vf crop="iw-mod(iw\\,2):ih-mod(ih\\,2)" $TMP_AVI
scheint dies der Trick zu sein.Für mich war die Antwort
ffcast
mitffmpeg
so zu verwenden:Ich habe dann
ffmpeg
die Konvertierung von avi nach gif gemacht - es ist sehr schnell und die Framerate bleibt erhalten:Schließlich habe ich convert in der gleichen Weise wie @anko ‚s Antwort der gif zu optimieren, aber ich ein Limit auf die Ressourcennutzung zu stoppen
convert
mit einer austretendenkilled
Nachricht, und ich entfernt , um die Verzögerung , wieffmpeg
bereits das behandelt:quelle
Dieses Repository hilft Ihnen dabei, Ihr GIF aus dem Auswahlbereich zu erstellen und es für Sie zu optimieren
https://github.com/devlifeX/record-screen-gif
quelle
Für mein Setup (Ubuntu 16.04) funktioniert ffcast nicht gut, da es für eine Weile nicht mehr auf Github aktualisiert wurde.
Also habe ich ein Skript mit slop ( https://github.com/naelstrof/slop ) und ffmpeg erstellt.
ein Beispiel:
quelle
Aus diesem Grund habe ich ein interaktives Wrapper-Skript für Unix-Desktops geschrieben, und nach einem Jahr der Nutzung teile ich es gerne dort!
Hergestellt mit
byzanz
,gifsicle
,xdotool
, und das Skript geschriebenphp
.Beispielausgabe:
[1020px, nicht verkleinerte GIF-Breite 1020px, 70 Sekunden, 50 Farben, 65 KB ]
Es bietet gute komprimierte Gifs und ist ein gutes Schaufenster für diese Frage.
Dies ist eine ziemlich einfache Basis, die bereit ist, von Ihnen gehackt zu werden.
Funktionen : GIF-Aufzeichnung an Mauspositionen oder im Vollbildmodus, Größenänderung, Komprimierung, Farbkomprimierung, Umkehren / Zusammenführen, giphy.com-Curl-Upload.
So starten Sie einen 10-Sekunden-GIF-Datensatz:
gif 10
So zeichnen Sie mehrere Male mit denselben Parametern auf:
gif !
So starten Sie einen 5-Sekunden-GIF-Datensatz im Vollbildmodus:
gif 5 --fullscreen
Skript läuft und zeichnet sich angenehm auf:
[ 45 Sekunden, Breite 645px, Vollfarben, 976 KB ]
Vollständiges 5-KB-Skript:
Reverse / Merge-Fähigkeit, um künstlerische Inhalte zu erstellen.
Original (435 KB)
Umgekehrt, zusammengeführt: (826kb)
So installieren Sie mit phi :
Vollbild:
[1920 * 1080px, GIF 400px, 50 Sekunden , 100 Farben, 2 MB ]
Quelle mit weiteren Erläuterungen und möglichen Updates: https://github.com/webdev23/gif
quelle