Ich habe einige Male animierte GIF-Bilder von Screencasts (wie die folgende) auf dieser Site gesehen, um die Antworten zu verbessern.
Mit welcher Toolchain werden diese erstellt? Gibt es ein Programm, das dies automatisch ausführt, oder nehmen Leute Screencasts auf, konvertieren sie in eine Reihe statischer Frames und erstellen dann die GIF-Bilder?
screencast
undetwas
quelle
quelle
Antworten:
Spähen
Ist eine neue Anwendung, mit der Sie ganz einfach GIFs von Ihrem Bildschirm aufnehmen können.
Wie auch immer, denken Sie daran, dass GIFs eine sehr begrenzte Farbpalette haben, daher ist es keine gute Idee, sie zu verwenden.
Seit Ubuntu 18.10 können Sie Peek direkt installieren.
Für ältere Versionen von Ubuntu können Sie die neuesten Versionen von Peek von dessen PPA installieren .
Weitere Informationen finden Sie im GitHub-Repo .
quelle
Byzanz
Die beste Software, die ich je für die Aufzeichnung von GIF-Screencasts gefunden habe, ist Byzanz.
Byzanz ist großartig, weil es direkt in GIF aufzeichnet, die Qualität und die FPS beeindruckend sind und gleichzeitig die Größe der Dateien auf ein Minimum beschränkt bleibt.
Installation
Byzanz ist jetzt im Universums-Repository verfügbar:
Verwendungszweck
Wenn es installiert ist, können Sie es in einem Terminal ausführen.
Dies ist ein kleines Beispiel, mit dem ich gerade gearbeitet habe
quelle
xwininfo
Sie die Fenstereigenschaften abrufen.Zuerst installieren Sie dies:
das sind die benötigten Sachen, ImageMagick, MPlayer und Desktop Recorder. Verwenden Sie dann Desktop Recorder , um einen Teil des Bildschirms / der Anwendung zu erfassen, der als Screencast verwendet werden soll. Nachdem der Desktop Recorder die Aufnahme in einem OGV-Video gespeichert hat , wird MPlayer zum Aufnehmen von JPEG-Screenshots verwendet, die im Ausgabeverzeichnis gespeichert werden .
Auf einem Terminal:
Verwenden Sie ImageMagick , um die Screenshots in animierte Gifs zu konvertieren.
Sie können die Screenshots folgendermaßen optimieren:
quelle
gifsicle -O in.gif -o out.gif
Ich habe gerade versucht , die Dateigröße um das 100-fache zu reduzieren.convert
Kombinationsschritte in einem:convert output/* -layers Optimize output.gif
. Für mich hat dies die Verarbeitungszeit verkürzt und die Ausgabedatei verkleinert. Ich sehe keinen Grund, diese Schritte separat durchzuführen. (Ich habe das-fuzz 10%
Argument nicht ausprobiert .)convert
machte es die Aussage mehr als schrecklich. Gemäß den Dokumenten ( imagemagick.org/script/command-line-options.php#layers ) kann sich dieoptimize
Implementierung im Laufe der Zeit ändern. Aber eine leicht überarbeiteteconvert
Aussage mit der-coalesce
Flagge verbesserte die Dinge, aber immer noch nicht dahin, wo es akzeptabel war.-layers optimize-transparency
Am Ende musste ich die Einstellung für die besten Ergebnisse verwenden:convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif
Überblick
Diese Antwort enthält drei Shell-Skripte:
byzanz-record-window
- Zum Auswählen eines Fensters für die Aufnahme.byzanz-record-region
- Um einen Teil des Bildschirms für die Aufnahme auszuwählen.Einführung
Danke Bruno Pereira, dass du mich vorgestellt hast
byzanz
! Es ist sehr nützlich zum Erstellen von GIF-Animationen. In einigen Fällen sind die Farben möglicherweise deaktiviert, die Dateigröße macht dies jedoch wieder wett. Beispiel: 40 Sekunden, 3,7 MB .Verwendungszweck
Speichern Sie eines / alle der folgenden zwei Skripte in einem Ordner in Ihrem
$PATH
. Hier ist ein Beispiel zur Verwendung des ersten Skripts, um einen Screencast eines bestimmten Fensters zu erstellen.byzanz-record-window 30 -c output.gif
$DELAY
), bevor Sie die Aufnahme vorbereiten.beep
Funktion definiert )byzanz
wird gestartet.30
in Schritt 1),byzanz
endet. Es ertönt erneut ein Piepton.Ich habe das
-c
Flagbyzanz-record-window
eingefügt, um zu veranschaulichen, dass alle Argumente zu meinem Shell-Skript an sichbyzanz-record
selbst angehängt werden . Die-c
Flagge sagtbyzanz
, dass der Cursor auch in den Screencast aufgenommen werden soll.Siehe
man byzanz-record
oderbyzanz-record --help
für weitere Details.byzanz-record-window
byzanz-record-region
Abhängigkeit:
xrectsel
von xrectsel . Klonen Sie das Repository und führen Sie es ausmake
, um die ausführbare Datei abzurufen. (Wenn es dagegen protestiert, gibt es kein Makefile, führe aus./bootstrap
und./configure
mache das vorher ausgeführte `make).GUI-Version von
byzanz-record-window
(Kommentar von MHC ): Ich habe mir erlaubt, das Skript mit einem einfachen GUI-Dialog zu ändern
quelle
notify-send
auch gerne, falls mein Sound aus ist.ffmpeg
Eines der besten Werkzeuge, die ich benutze, ist
ffmpeg
. Es kann die meisten Videos von einem Screencast-Tool wie beispielsweise aufnehmenkazam
und in ein anderes Format konvertieren.Installieren Sie dies vom Software-Center - es wird automatisch installiert, wenn Sie das ausgezeichnete
ubuntu-restricted-extras
Paket installieren .Kazam kann in den Videoformaten
mp4
oder ausgebenwebm
. Im Allgemeinen erhalten Sie bessere Ergebnisse bei der Ausgabe immp4
Format.Beispiel für eine GIF-Syntax
Die grundlegende Syntax zum Konvertieren von Video in GIF lautet:
GIFs konvertiert - insbesondere solche mit einer Standard-Bildrate von 25/29 Bildern pro Sekunde können sehr groß sein. Zum Beispiel - ein 15-Sekunden-Video mit 800 KBit / s und 25 fps kann auf 435 MBit / s ausgegeben werden!
Sie können dies durch eine Reihe von Methoden reduzieren:
Framerate
Verwenden Sie die Option
-r [frame-per-second]
zum Beispiel
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Die Größe wurde von 435 MB auf 19 MB reduziert
Dateigrößenbeschränkung
Verwenden Sie die Option
-fs [filesize]
zum Beispiel
ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Hinweis - Dies ist eine ungefähre Größe der Ausgabedatei, daher kann die Größe etwas größer als angegeben sein.
Größe des Ausgabevideos
Verwenden Sie die Option
-s [widthxheight]
zum Beispiel
ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Dadurch wurde die Videogröße des Beispiels 1366 x 768 auf 26 MB reduziert
Schleife für immer
Manchmal möchten Sie vielleicht, dass das GIF für immer wiederholt wird.
Verwenden Sie die Option
-loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
weiter optimieren und schrumpfen
Wenn Sie
imagemagick
convert
einen Unschärfefaktor zwischen 3% und 10% verwenden, können Sie die Bildgröße drastisch reduzierenschließlich
Kombinieren Sie einige dieser Optionen, um sie auf etwas zu reduzieren, das für Ask Ubuntu überschaubar ist.
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
gefolgt von
quelle
demo.mkv
können Sie führen diese Befehle:docker run --rm -v $(pwd):/tmp/video/ jrottenberg/ffmpeg -i /tmp/video/demo.mkv -framerate 1/2 -pix_fmt rgb24 -loop 0 /tmp/video/demo.gif
,sudo chown $USER:$USER demo.gif
-loop_output
...ubuntu-restricted-extras
exzellent halten?-loop
. So würde es sein-loop 0
. Hier ist ein funktionierender Befehl in Ubuntu 16.04.01ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif
.+500,500
ist die X, Y Position um das 100x100 Rechteck zu starten.xgrab
Nimmt den Bildschirm als Eingabe.Silentcast
Silentcast ist ein weiteres großartiges GUI-basiertes Tool zum Erstellen von animierten GIF-Bildern. Seine Eigenschaften umfassen:
4 Aufnahmemodi:
Gesamter Bildschirm
Innenfenster
Fenster mit Dekoration
Benutzerdefinierte Auswahl
3 Ausgabeformate:
.gif
.mp4
.webm
.png
(Frames).mkv
Keine Installation notwendig (portabel)
Benutzerdefiniertes Arbeitsverzeichnis
Benutzerdefinierte FPS
Installation
Wenn Sie eine reguläre Installation wünschen und eine unterstützte Version von Ubuntu ausführen, können Sie Silentcast mit PPA installieren:
Wenn Sie keine unterstützte Version von Ubuntu verwenden (Sie sollten wirklich ein Upgrade durchführen!), Müssen Sie die neueste Version von der GitHub-Seite herunterladen und die Abhängigkeiten manuell erfüllen (Sie können yad und ffmpeg von hier bzw. hier beziehen). Wenn Sie eine etwas aktuellere Version wie 13.10 verwenden, können Sie versuchen, die .deb-Datei direkt herunterzuladen .
Wenn Sie Gnome verwenden, möchten Sie möglicherweise die Topicons-Erweiterung installieren , um das Stoppen von Silentcast zu vereinfachen.
Verwendungszweck
Starten Sie Silentcast über die Benutzeroberfläche Ihres Desktops oder führen Sie den
silentcast
Befehl in einem Terminal aus. Wählen Sie Ihre Einstellungen und befolgen Sie die Anweisungen auf dem Bildschirm. Wenn Sie mit der Aufnahme fertig sind, wird ein Dialogfeld zur Optimierung der endgültigen Ausgabe angezeigt, in dem eine bestimmte Anzahl von Frames entfernt wird.Weitere Informationen zu den Verwendungsrichtlinien finden Sie in der README-Datei, entweder in der Online-Version von GitHub oder in der lokalen Version, die
/usr/share/doc/silentcast
mit zless oder Ihrem bevorzugten Editor gespeichert wurde .Anmerkungen:
Silentcast befindet sich noch in der Entwicklungsphase und obwohl es recht stabil ist, können einige Fehler auftreten. In diesem Fall melden Sie sie bitte im GitHub Issues Tracker des Projekts . Wenn Sie Probleme bei der Installation von der PPA haben und eine unterstützte Version von Ubuntu ausführen, hinterlassen Sie unten einen Kommentar oder wenden Sie sich an den Maintainer (mich) auf Launchpad.
quelle
Es gibt alle möglichen komplizierten und (vermutlich) gut funktionierenden Methoden, um dies zu tun. Ich wollte diesen Prozess jedoch noch nie durchlaufen. Daher verwende ich einfach einen Online-Konverter, der meinen Bedürfnissen nur wenige Male entspricht. Ich habe diese Seite benutzt:
http://ezgif.com/video-to-gif
Es ist nicht meine Seite und ich bin in keiner Weise mit ihnen verbunden. Sie sind nur die in meinen Lesezeichen und es gibt viele mehr.
quelle
Ich habe
record-gif.sh
eine verbesserte Version von Rob W erstelltbyzanz-record-region
:duration
;save_as
Bestimmungsort;$HOME/record.again
).Installieren
Ich habe auch ein Installationsskript erstellt
quelle
sudo apt install autoconf byzanz
bevor Sie dieses Skript ausführen. Es ist nicht standardmäßig in Ubuntuautoconf
undbyzanz
. Könnten Sie es versuchen?imagemagick
mplayer
gtk-recordmydesktop
ogv2gif.sh
von https://github.com/nicolas-raoul/ogv2gif herunter./ogv2gif.sh yourscreencast.ogv
100% inspiriert von der Antwort von maniat1k .
quelle
Wenn Sie noch ausgefeilter werden möchten, können Sie eine ausgefeiltere Methode als animierte Gifs mit HTMl5-Leinwand-Screencasting verwenden. Das x11-canvas-screencast- Projekt erstellt eine animierte HTML5-Leinwand- Bildschirmaufnahme.
Vielleicht haben Sie einige berühmte Beispiele dieser Technologie auf der Sublime Text-Website gesehen.
x11-canvas-screencast
bringt diese Methode durch die Verfolgung des Mauszeigers einen Schritt weiter. Hier ist eine Demo dessen, was x11-canvas-screencast produziertDas Ergebnis ist besser als bei einem animierten GIF, da es nicht auf die Anzahl der Farben beschränkt ist und weniger Bandbreite benötigt.
quelle
Ok, um auch Mausklicks zu erfassen, habe ich nur folgendes gefunden
key-mon
(über die README vonscreenkey
):https://code.google.com/archive/p/key-monhttps://github.com/critiqjo/key-monsudo apt-get install key-mon
Dann ich:
key-mon
xrectsel
diese Option , um die Bildschirmkoordinaten in einenbyzanz
Befehl einzufügenbyzanz
Befehl aus... und es sieht ungefähr so aus:
Beachten Sie, dass
key-mon --visible_click
beim Mausklick ein Kreis um den Mauszeiger gezogen wird - was ich vorziehen würde, aber in Ubuntu 14.04.5 LTS ist dies etwas unterbrochen, da dieser Kreis nicht schnell genug erscheint und verschwindet, um die Klicks korrekt darzustellen (d. H Drücken und Loslassen der Maus).quelle
Ich habe kürzlich eine kombinierte Version von Skripten erstellt, die bereits hier veröffentlicht wurden.
Grundsätzlich können Sie Bildschirmbereiche aufzeichnen, jedoch mit einer einfachen grafischen Benutzeroberfläche.
Vielen Dank für Rob W für die Bereitstellung dieser coolen Skripte
Hier ist der Code (oder das Wesentliche, wenn Sie möchten ):
quelle
Wenn Sie auch sichtbare Aufzeichnungen von Mausklicks oder Tastenanschlägen wünschen, ist screenkey die beste Wahl: https://github.com/wavexx/screenkey
quelle
screenkey
mit Mausklicks umgegangen wird (es scheint nur zur Anzeige auf der Tastatur zu sein). Die README-Datei verweist jedoch darauf,key-mon
was dies tun kann. Siehe meine Antwort unten.Verwenden
gtk-recordmydesktop
undffmpeg
:apt-get install gtk-recordmydesktop ffmpeg
Führen Sie RecordMyDesktop aus und erfassen Sie einen Teil des Bildschirms / der Anwendung, der / die als Screencast verwendet werden soll:
Erstellen Sie
ogv2gif.sh
mit folgenden Inhalten:Benutze es :
Verweise :
quelle
Ich teste alle oben genannten Methoden. Die einfachste ist:
das fps ist original und die gif größe ist kleiner als die ogv datei.
quelle