Enregistrer le terminal en vidéo avec asciinema

Il peut arriver qu’on ait besoin de partager une vidéo servant à montrer ce qu’on voit dans son terminal. Personnellement, j’ai eu besoin notamment pour illustrer de la documentation. Plus récemment, avec mon équipe nous avons fait un exercice de programmation dont le but était d’implémenter le jeu de la vie (c’est un algorithme très simple mais intéressant), et je voulais partager une vidéo de mon implémentation.

Il existe des solutions purement vidéo, basées sur la capture d’une zone de l’écran. Cela fonctionne très bien, notamment pour faire des screencasts de logiciels ou de sites web. Mais pour capturer le rendu du terminal, c’est un peu lourd.

Pour cela, il existe le logiciel asciinema, qui sert justement à capturer l’affichage du terminal.

Installer asciinema

L’installation est très simple sur Ubuntu :

$ sudo apt install asciinemaLangage du code : Shell Session (shell)

Capturer le terminal

Pour lancer une capture avec asciinema, il suffit d’exécuter la commande suivante :

$ asciinema rec destination.castLangage du code : Shell Session (shell)

Vous pouvez alors utiliser le terminal comme vous le souhaitez, exécuter des commandes, etc. Tout sera capturé dans le fichier de destination jusqu’à ce que vous tapiez exit ou CTRL-D.

Lire une capture

asciinema permet de jouer le screencast dans le terminal avec la commande :

$ asciinema play destination.castLangage du code : Shell Session (shell)

Intégrer un screencast dans une page web

asciinema permet aussi d’envoyer le fichier vers un serveur (par défaut le serveur asciinema.org).
En tapant la commande suivante, le screencast sera uploadé, et vous récupérerez un lien secret vers une page web dédiée à ce screencast :

$ asciinema upload destination.castLangage du code : Shell Session (shell)

À partir de cette page, vous pourrez récupérer la simple ligne de code qui permet d’embarquer le screencast dans une page web en utilisant un player Javascript.

Convertir un screencast en GIF animé

Le logiciel agg permet de générer un GIF animé à partir d’un screencast. Malheureusement, agg est rarement disponible dans les dépôts des distributions Linux. Il est aussi possible d’utiliser le projet gifcast, qui propose une page dont le code Javascript fait la conversion. Cette page est très simple à utiliser, et génère un fichier GIF fonctionnel.

Voici un exemple de GIF animé correspondant à l’exécution du jeu de la vie dans mon terminal :

Fichier GIF de 2 MO généré à partir d’un screencast de 2,4 MO

Convertir un GIF animé en vidéo MP4

Il se peut que vous ayez besoin d’un fichier vidéo plutôt que d’un GIF animé. Il existe plusieurs outils de conversion. En ligne de commande, vous pouvez utilise FFMPEG :

$ ffmpeg -i destination.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)<em>2:trunc(ih/2)</em>2" destination.mp4Langage du code : Shell Session (shell)
  • Le paramètre movflags sert à optimiser le fichier de manière à ce qu’un navigateur puisse démarrer la lecture au plus vite.
  • Le paramètre pix_fmt est utilisé pour enregistrer les pixels dans un format supporté par un maximum de navigateurs.
  • Le paramètre vf permet de forcer un nombre de pixels compatible avec la norme H.264.

Gardez en tête qu’une conversion en MP4 génère souvent un fichier plus léger que le GIF d’origine. Par exemple, pour le GIF animé de 2 MO présenté plus haut, FFMPEG génère un fichier MP4 de 1 MO.

Si vous n’avez pas FFMPEG, vous pouvez utiliser un site web de conversion comme EzGif.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.