J'essaie d'save mon bureau (y compris audio) dans Gnome 3.10 sur Arch Linux avec l'enregistreur d'écran embedded ( Ctrl + Alt + Maj + R ). Selon ce post (et d'autres solutions similaires qui peuvent être trouvées sur Internet), j'ai essayé d'appliquer les parameters gconf
gsettings set org.gnome.shell.recorder pipeline "queue ! videorate ! vp8enc quality=10 speed=2 ! mux. pulsesrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. webmmux name=mux"
mais j'obtiens l'erreur suivante:
No such schema 'org.gnome.shell.recorder'
En naviguant avec dconf-editor
je vois que org.gnome.shell.recorder
n'est pas présent et je n'ai rien trouvé de similaire … Comment puis-je save mon bureau dans gnome shell 3.10 avec audio interne (pas de micro)?
EDIT: Aussi, je voudrais ne pas inclure le slider de la souris pendant l'logging.
Cette key / schéma a été supprimé dans gnome-shell ≥ 3.10
donc les solutions que vous avez trouvées sur internet ne fonctionnent plus.
Ray Strode, gnome dev 1 :
J'ai demandé à quelques personnes s'il y avait un moyen de le faire dans gnome-shell 3.10 et plus tard et je n'ai pas eu de bonne réponse. C'est compliqué par le fait que gsd gère maintenant les choses de départ et que le schéma org.gnome.shell.recorder est parti.
La suggestion de Ray là-bas (assigner un raccourci à cette command de gjs
) est assez cool mais son seul gjs
manque des trucs js
. J'ai dû replace le %T
dans threads=%T
par un nombre (par exemple 2
) pour le faire fonctionner. En outre, notez que le nom de file .webm
résultant n'a pas d'horodatage, de sorte que les exécutions suivantes écraseront l'existant si vous ne le renommez pas. Enfin, assurez-vous que votre XDG_VIDEOS_DIR
est défini dans ~/.config/user-dirs.dirs
sinon la command ne fonctionnera pas (les erreurs avec cannot open output file
).
Quoi qu'il en soit, revenez à votre question, les parameters de la projection d'écran sont maintenant codés en dur dans gnome-shell ( shell-recorder.c
) par exemple:
#define DEFAULT_PIPELINE "vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux"
ou
shell_recorder_init (ShellRecorder *recorder) { .... recorder->draw_cursor = TRUE;
et pour autant que je sache, la seule façon de les modifier serait via une extension comme
EasyScreenCast
(code source ici ) qui vous permet de personnaliser tous les parameters (y compris draw-cursor
). Il fonctionne bien, je n'ai eu qu'à append ma version gnome-shell
par exemple 3.16.1
– à metadata.json
et ce pipeline gstreamer
personnalisé:
vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux
via Tweak-tool> Extensions> Easyscreencast> Options de screencast :
Cela mis à part, une façon sortingviale de screencast + audio interne est via la command line. Tout ce dont vous avez besoin est de spécifier la source d'input pour l'logging sonore – avec pacmd
(cli) ou avec pavucontrol
(gui) et utilisez gst-launch
pour save. Donc, d'abord get le nom de la source d'input se terminant par .monitor
(que l'on peut save de l'audio de votre carte son):
pacmd list-sources | sed -n 's/name: <\(.*\.monitor\)>/\1/p' alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
et ensuite exécuter:
pacmd set-default-source "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" gst-launch-1.0 ximagesrc ! videoconvert ! queue ! videorate ! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux ! filesink location=screencast.webm
Pour arrêter l'logging, revenez au terminal et appuyez sur Ctrl + C.
1: source
Basé sur la réponse de don_crissti, j'ai créé un script bash pour automatiser cette tâche.
Voici le script:
#!/bin/bash if [ -z $1 ]; then echo "usage: screencast <outfile>" exit 1 fi fname=$1 audio=$(pacmd list-sources | sed -n 's/\s*name: <\(.*\.monitor\)>/\1/p') pacmd set-default-source "$audio" echo "Screencast started, to stop it come back to terminal and hit ctrl+c..." gst-launch-1.0 ximagesrc \ ! videoconvert \ ! queue \ ! videorate \ ! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 \ ! queue \ ! mux. pulsesrc \ ! queue \ ! audioconvert \ ! vorbisenc \ ! queue \ ! mux. webmmux name=mux \ ! filesink location=$fname > /dev/null echo echo "Screencast saved as $fname"
Usage:
$ ./screencast out_file_name.webm
Tous les crédits vont à don_crissti. Votez s'il vous plaît!