Aufnehmen eines einzigen Fensters in Gnomes 3 Standard-Desktop-Recorder

10144
seler

Gnome 3 hat eine großartige Funktion unter Ctrl- Alt- Shift- RTastenkürzel 1 .Ich denke, das ist Istanbul . Es scheint, dass es nicht Istanbul ist ... Dennoch kann ich keine Informationen über dieses Programm finden.

Wo finde ich die Manpage? Wie kann ich es von der Konsole aus ausführen?
Und vor allem: Wie kann ich nur ein Fenster aufnehmen (ähnlich wie Alt+ Print Screen)?

9
Ich nehme an, Sie haben bereits [`man istanbul`] (http://manpages.ubuntu.com/manpages/precise/de/man1/istanbul.1.html) probiert. grawity vor 11 Jahren 0
@ grawity: Ich habe versucht, `` man istanbul`` auszuführen, aber es gab keine Seiten für Istanbul. Es gibt auch keinen `` Istanbul`` Befehl. Vielleicht ist der Standardrecorder von Gnome 3 nicht in Istanbul? Was ist es dann? seler vor 11 Jahren 0

3 Antworten auf die Frage

13
Trung Lê

Gemäß dem GNOME-API-Dokument ist der Bildschirmschreiber der gnome-shell ( Shell-Recorder-Klasse ) im Wesentlichen eine Pipeline-Ausgabe aller Screenshots an eine Pipeline, die dann vom GStreamer codiert wird.

Sie können Ihre Dconf-Editor-Anwendung verwenden und zu org.gnome.shell.recorderdiesem navigieren . In diesem Schema finden Sie 3 Optionen:

  • Dateierweiterung - standardmäßig auf meiner Box webm
  • Framerate - defauly auf meiner Box bis 30
  • Pipeline - Standardmäßig wird eine Pipeline an GStreamer vp8enc zum Kodieren des Streams erstellt. vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux

Wie können wir also die Aufzeichnungspipeline in der Befehlszeile replizieren? Wir können dies mit dem gst-launch-Befehl des gstreamer-Tools tun. Zuerst müssen Sie gst-tools auf Ihrer Box installieren und Sie können mit gstreamer! Spielen. Hier einige Beispiele:

Aufnehmen in webm (vp8 video & vorbis audio):

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 

Drücken Sie Strg + C, um die Aufnahme zu stoppen.

Aufnehmen in 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 

Drücken Sie Strg + C, um die Aufnahme zu stoppen.

Die Pipelines werden von gst-launch ausgeführt. Folgendes tun sie:

  • Schnapp dir das X-Videobild (den Desktop)
  • Konvertieren Sie das Video automatisch in ein akzeptables Format
  • Erstellen Sie einen Hintergrund-Thread [t1], um die Videoverarbeitung fortzusetzen
  • [t1] Kodiere das Video (entweder in vp8 oder theora)
  • [t1] Vorbereitung für das Zusammenfügen des Videos in die Video-Shell (webm oder ogg)
  • Ergreifen Sie die Audioeingabe als Raw (das Mikrofon)
  • Erstellen Sie einen Hintergrund-Thread [t2], um die Audioverarbeitung fortzusetzen
  • [t2] Konvertieren Sie das Audio automatisch in ein akzeptables Format
  • [t2] Kodieren Sie das Audio in vorbis
  • [t2] Vorbereitung für das Zusammenführen des Audios in die Video-Shell (webm oder ogg)
  • Schreiben Sie codiertes Audio und Video in die Videodatei

Jetzt müssen Sie keine Angst mehr vor Gstreamer-Pipelines haben! \O/

8
milli

Und am wichtigsten. Wie kann ich nur ein Fenster aufnehmen?

Wenn Sie die XID des Fensters erhalten können, können Sie es an ximagesrc übergeben. Wenn Sie beispielsweise wissen, was der eindeutige Titel des Fensters ist, können Sie xwininfo und ein wenig Magie verwenden, um dies zu erhalten. In Bash:

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

Jetzt können Sie diese XID einfach an ximagesrc übergeben und die Pipeline natürlich beenden:

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

Und zu Ihrer Information, ich zeige Ihnen dies mit der 1.0-Version von gstreamer. Es gibt keinen ffmpegcolorspace mehr, Sie verwenden stattdessen videoconvert (die letzte Version von FFmpeg wurde in 'libav' umbenannt, daher wurde sie umbenannt).

0
Rony

Gnome 3 recording uses GStreamer FFmpeg plug-in to output a .webm under user's home.

GStreamer FFmpeg plug-in

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

And most importantly: How can I record only one window?

May be zoom the window to fullscreen ?

Ich meine, dass mein Video eine Auflösung des Fensters haben soll, das ich aufnehme. Außerdem muss ich anderen nicht meine aktuelle Uhrzeit, Benachrichtigungen, Netzwerkstatus, Lautstärkepegel usw. anzeigen. Bearbeiten: Ähnlich wie Alt+Print Screen seler vor 11 Jahren 0
Die eingebaute Aufnahme von gnome3 ist sehr begrenzt und auch ohne Ton, der mich für den gelegentlichen Gebrauch fühlte. Es gibt [recordMyDesktop] (http://recordmydesktop.sourceforge.net/about.php) und andererseits das ffmpeg-Skript im [Archlinux-Forum] (https://bbs.archlinux.org/). Für mich funktionieren sie alle besser als die von Gnome3. Rony vor 11 Jahren 0