Forum Linux.gui capture vidéo d'une fenêtre

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
2
6
mai
2018

Bonsoir.

Je cherche à capturer le contenu d'une fenêtre X11 (de préférence sans les décorations du windows manager) dans un fichier vidéo avec ffmpeg.

Pour sélectionner la fenêtre, j'ai d'abord essayé xwininfo pour le choix de cette fenêtre, hélas les informations qu'il renvoie ne sont pas très utilisables : par exemple sur un xterm, il retourne les dimensions en cellule de caractère et pas en pixels…

Deuxième tentative avec xdotool, qui semble peut être mieux, mais là non plus ça ne marche pas vraiment. Je récupère des valeurs qui sont un peu incohérentes, et ffmpeg ne capture pas ce que je veux.

#!/bin/bash

OUT=x11grab.mkv
rm $OUT
sleep 5

WID=$(xdotool selectwindow)
LOCATION=$(xdotool getwindowgeometry $WID | awk '/Position:/ {print $2}')
SIZE=$(xdotool getwindowgeometry $WID | awk '/Geometry:/ {print $2}')

ffmpeg  -video_size ${SIZE}                                           \
                -framerate 30 -f x11grab                              \
                -i ${DISPLAY}+${LOCATION}                             \
                -c:v libx264 -crf 0                                   \
                -preset ultrafast                                     \
                ${OUT}

Les trois lignes avec xdotool me permettent d'abord d'avoir l'ID de la fenêtre, puis de trouver position et dimensions, valeurs que je passe à ffmpeg pour la suite, mais…

la nimage réglementaire

À gauche, la fenêtre que j'ai capturée, et à droite la vidéo qui a été enregistrée. Il y a clairement quelque chose qui cloche, et je me sens un peu bloqué…

Si donc vous avez une idée sur comment arriver à ce que je cherche, je suis prêt à vous payer un bonne pinte au THSF

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.