Wie konvertiere ich eine Terminalaufzeichnung in ein GIF?

Wie konvertiere ich eine Terminalaufzeichnung in ein GIF?

Ich habe mit dem Tool einen Terminaldatensatz erstellt script.

mediainfo video 
General
Complete name                            : video
File size                                : 1.29 KiB

Ich kann es mit abspielen scriptreplay. Ist es möglich, es beispielsweise mit ffmpegoder einem anderen Programm in ein GIF umzuwandeln?

Um das klarzustellen, ich meinescriptaus dem bsdutilsPaket, kein Programmskript. Ich dachte, die gespeicherte Datei sei eine Art Video, sodass ich einige Frames/Bilder greppen und daraus ein GIF erstellen kann.

Ich hoffe, es ist jetzt klarer.

Antwort1

Eine gute Möglichkeit ist die Verwendungttyrecanstatt scriptIhre Terminalaktivität aufzuzeichnen und sie dann in ein GIF umzuwandeln mitttygif.

  1. Installieren Sie die ttyrecPakete ttygif:

    sudo apt install ttyrec ttygif
    
  2. Öffnen Sie ein Terminal und beginnen Sie ttyrecmit der Aufzeichnung Ihres Terminals:

    ttyrec
    

    ttyrecWenn Sie die Aufzeichnung ohne Argument ausführen, wird sie in einer Datei mit dem Namen ttyrecordin Ihrem aktuellen Ordner gespeichert. Sie können einen Dateinamen als Argument angeben, um die Datei unter diesem Namen zu speichern.

  3. Verwenden Sie Ihr Terminal.

  4. Drücken Sie Ctrl+ D, um die Aufnahme zu stoppen.

  5. Um die Aufnahme in ein GIF umzuwandeln, führen Sie Folgendes aus:

    ttygif ttyrecord
    

    Wenn Sie die Aufnahme unter einem anderen Dateinamen gespeichert haben, ändern Sie diesen ttyrecordin den von Ihnen verwendeten Dateinamen.

    Dieser Befehl speichert die Aufnahme als GIF mit dem Namen tty.gif.


Hier ist ein GIF, das ich mit dem obigen Verfahren erstellt habe und das das obige Verfahren enthält:

GIF mit dem obigen Verfahren


Anmerkungen

  • Wenn beim Ausführen dieser Fehler auftritt ttygif:

    Error: WINDOWID environment variable was empty
    

    Sie müssen vor dem Ausführen den folgenden Befehl ausführen ttygif:

    export WINDOWID=$(xdotool getwindowfocus)
    

    Der obige Befehl benötigt xdotool. Sie können es mit folgendem Befehl installieren:

    sudo apt install xdotool
    

    Referenz:https://github.com/icholy/ttygif#additional-notes

  • ttygiffunktioniert aus irgendeinem Grund nicht mit qterminal. Verwenden Sie stattdessen ein anderes Terminal für die Konvertierung.

    Ich habe bestätigt, dass es mit Kitty einwandfrei funktioniert, mit dem GNOME-Terminal langsam und mit XTerm extrem schnell ist.

  • Der ttygifBefehl kann große Verzeichnisse in erzeugen /tmp. Ich empfehle, diese nach der Konvertierung manuell zu entfernen:

    rm -r /tmp/ttygif.*
    

verwandte Informationen