Magazine Focus Emploi

Enregistrer le terminal en vidéo avec asciinema

Publié le 11 septembre 2024 par Abouchard

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 asciinema

Capturer le terminal

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

$ asciinema rec destination.cast

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.cast

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.cast

À 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.mp4
  • 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.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Abouchard 392 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte