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 /
man istanbul
?