Capturer de la vidéo sous Debian?

Tags: #<Tag:0x00007f509f2d0a18>

Bonjour,
savez-vous comment capturer de la vidéo de l’écran sous Debian ?

Idéalement je souhaiterais capturer uniquement une fenêtre donnée…

Je suis sous Debian 10

Ce que j’ai déjà testé :

  1. La combinaison Ctrl+Alt+Maj+R
    Ceci fonctionne et créé des fichiers webm mais je ne peux pas choisir la fenêtre à capturer

  2. La doc Ubuntu liste plusieurs solutions
    https://doc.ubuntu-fr.org/capture

  3. J’ai choisi la première proposition (ffmpeg)
    J’ai la version 4.1.6 de ffmpeg installée

Sur la doc officielle y’a une page dédiée à ce que je souhaite faire : https://trac.ffmpeg.org/wiki/Capture/Desktop

La commande qui est indiquée fonctionne (pour peu qu’on adapte le DISPLAY comme indiqué ici : https://www.linuxquestions.org/questions/linux-desktop-74/ffmpeg-fails-cannot-open-display-0-0-error-1-a-4175613512/)

$ ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 output.mp4

Néanmoins, bien qu’on puisse régler la zone de l’écran (c’est un mieux), impossible de capturer une fenêtre précise…

Une solution ici : https://stackoverflow.com/questions/25396784/how-to-record-a-specific-window-using-ffmpeg

J’identifie ma fenêtre avec :

wmctrl -l
0x02a0000b  0 donut FS-UAE · Amiga 500

Mais ensuite ça bloque !

$ ffmpeg -f gdigrab -framerate 30 -i title='FS-UAE · Amiga 500' -b:v 3M toto.mkv
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
Unknown input format: 'gdigrab'

$ ffmpeg -f x11grab -framerate 30 -i title='FS-UAE · Amiga 500' -b:v 3M toto.mkv
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
[x11grab @ 0x55939c6088c0] Cannot open display title=FS-UAE · Amiga 500, error 5.
title=FS-UAE · Amiga 500: Input/output error

Avez-vous des idées ? Des suggestions ?

Ici je passe par ffmpeg, je suis parti de la même documentation que toi.

Après avoir un peu expérimenté sur les options d’encodage, je me suis fixé sur cette commande pour une capture audio/vidéo complète de mon activité :

ffmpeg -video_size 1280x1024 -framerate 30 -f x11grab -i "$DISPLAY" -f pulse -i 0 -c:v libx264 -crf 22 -preset veryfast -c:a libopus -ac 2 output.mkv

(1280×1024 étant la résolution native de mon écran)


Pour la question de la capture d’une fenêtre spécifique, je ne saurais pas aider.

Bonjour

On pourrait récupérer la résolution de l’écran connecté dans une variable :

resol=$(xrandr|awk '/ connected/{split($4,t,"+");print t[1]}')
1 J'aime

Hello,
super merci pour vos messages ! je vais creuser ça !

Bonne soirée :slight_smile:

Donut.

Ici la commande xrandr|awk … proposée par @MicP fonctionne sur ma Debian Buster, mais pas sur la Debian Sid.

En général j’utilise cette version alternative, qui a comme inconvénient de ne pas fonctionner de manière fiable si on a plusieurs écrans de connectés :

 xrandr | awk '/\*/ {print $1}'
1 J'aime

Effectivement, la ligne de commande awk est beaucoup plus courte formulée de cette façon. :+1:

ou simplement VLC, simpleScreenRecorder

Pour enregistrer son terminal j’ai testé une paire de fois ça : https://asciinema.org/

1 J'aime

Bonjour
J’utilise vokoscreen qui marche bien, simple et efficace

1 J'aime

Très pratique et très performant. Utilise les librairies de ffmpeg mais interface très simple et efficace. Dispo dans le dépot officiel pour X11 et openGL

1 J'aime