Enregistrement d'une seule fenêtre dans l'enregistreur de bureau par défaut de Gnomes 3

10

Gnome 3 a une grande fonctionnalité sous Ctrl- Alt- Shift- Rraccourci 1 .Je suppose que c'est Istanbul . Il semble que ce ne soit pas Istanbul ... Pourtant je ne trouve aucune information sur ce programme.

Où puis-je trouver la page de manuel? Comment puis-je l'exécuter à partir de la console?
Et surtout: comment puis-je enregistrer une seule fenêtre (similaire à Alt+ Print Screen)?

seler
la source
Je suppose que tu as déjà essayé man istanbul?
user1686
@grawity: J'ai essayé de courir man istanbulmais il n'y avait pas de pages pour istanbul. De plus, aucune istanbulcommande n'est disponible. L'enregistreur par défaut de Gnome 3 n'est peut-être pas Istanbul? Qu'est-ce que c'est alors?
seler

Réponses:

14

Selon la documentation de l'API GNOME, l' enregistreur d' écran gnome-shell ( classe shell-recorder ) consiste essentiellement à canaliser toutes les captures d'écran vers un pipeline qui est ensuite encodé par GStreamer.

Vous pouvez utiliser votre application dconf-editor et naviguer vers org.gnome.shell.recorder, dans ce schéma vous trouverez 3 options:

  • extension de fichier - par défaut sur ma boîte webm
  • fréquence d'images - par défaut sur ma boîte à 30
  • pipeline - qui par défaut est pipeline vers GStreamer vp8enc pour encoder le flux. vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux

Alors, comment pourrions-nous reproduire le pipeline d'enregistrement en ligne de commande? Nous pourrions le faire avec la commande gst-launch de gstreamer-tool. Tout d'abord, vous devez installer gst-tools sur votre box et vous pouvez commencer à jouer avec gstreamer !. Voici quelques exemples:

Enregistrement sur webm (vidéo vp8 et audio vorbis):

gst-launch ximagesrc ! ffmpegcolorspace ! queue ! vp8enc quality=10 speed=2 ! mux. alsasrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. webmmux name=mux ! filesink location=screencast.webm

Appuyez sur Ctrl + C pour arrêter l'enregistrement.

Enregistrement sur OGV (Theora Video & Vorbis Audio):

gst-launch ximagesrc ! ffmpegcolorspace ! queue ! theoraenc ! mux. alsasrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. oggmux name=mux ! filesink location=screencast.ogv

Appuyez sur Ctrl + C pour arrêter l'enregistrement.

Les pipelines sont exécutés par gst-launch. Voici ce qu'ils font:

  • Prenez l'image vidéo X (le bureau)
  • Convertissez automatiquement la vidéo dans un format acceptable
  • Générez un fil d'arrière-plan [t1] pour continuer le traitement vidéo
  • [t1] Encode la vidéo (soit en vp8 ou theora)
  • [t1] Préparation pour la fusion de la vidéo dans le shell vidéo (webm ou ogg)
  • Prenez l'entrée audio comme brute (le microphone)
  • Créez un thread d'arrière-plan [t2] pour continuer le traitement audio
  • [t2] Convertit automatiquement l'audio dans un format acceptable
  • [t2] Encoder l'audio en vorbis
  • [t2] Préparation pour la fusion de l'audio dans le shell vidéo (webm ou ogg)
  • Écrire de l'audio et de la vidéo encodés dans le fichier vidéo

Maintenant, vous n'avez plus à avoir peur des pipelines gstreamer! \ o /

Trung Lê
la source
9

Et, surtout. Comment enregistrer une seule fenêtre?

Si vous pouvez obtenir le XID de la fenêtre, vous pouvez le transmettre à ximagesrc. Par exemple, si vous savez quel est le titre unique de la fenêtre, vous pouvez utiliser xwininfo et un peu de magie pour l'obtenir. En bash:

TITLE="Terminal Six"
WINDOW_XID=$(xwininfo -tree -root -all | egrep $TITLE | sed -e 's/^ *//' | cut -d\  -f1)`

Maintenant, vous pouvez simplement passer ce XID à ximagesrc, et bien sûr, terminer le pipeline:

gst-launch-1.0 ximagesrc xid=$WINDOW_XID ! video/x-raw,framerate=30/1 ! videoconvert ! queue ! ...

Et pour info, je vous le montre en utilisant la version 1.0 de gstreamer. Il n'y a plus d'espace ffmpegcolors, vous utilisez à la place la vidéoconversion (les dernières versions de FFmpeg ont changé de nom en «libav» donc il a été renommé).

milli
la source
0

L'enregistrement Gnome 3 utilise le plug-in GStreamer FFmpeg pour sortir un .webm sous la maison de l'utilisateur.

Plug-in GStreamer FFmpeg

http://gstreamer.freedesktop.org/modules/gst-ffmpeg.html

Et surtout: comment enregistrer une seule fenêtre?

Peut-être zoomer la fenêtre en plein écran?

Rony
la source
Ce que je veux dire, c'est que je veux que ma vidéo ait une résolution de la fenêtre que j'enregistre. En outre, je ne ai pas besoin de montrer aux autres mon heure actuelle, les notifications, l' état du réseau, le niveau de volume , etc. modifier: Similaire à <kbd> Alt </ kbd> + <kbd> Impr écran </ kbd>
seler
L'enregistrement intégré de gnome3 est très limité et même aucun son qui m'a donné l'impression qu'il est destiné à un usage occasionnel. Il y a recordMyDesktop et d'autre part le script ffmpeg dans le forum Archlinux . Pour moi, ils fonctionnent tous mieux que ceux de Gnome3.
Rony