Gravando apenas uma janela no gravador de desktop padrão do Gnomes 3

9

O Gnome 3 tem um grande recurso sob Ctrl - Alt - Shift - R atalho 1 . Eu acho que isso é Istambul . Parece que não é istanbul ... Ainda não consigo encontrar nenhuma informação sobre este programa.

Onde posso encontrar a página man? Como posso executá-lo a partir do console?
E o mais importante: como gravar apenas uma janela (semelhante a Alt + Imprimir tela )?

    
por seler 14.05.2012 / 08:48

3 respostas

13

De acordo com o documento da API do GNOME, a classe gnome-shell ( shell-recorder ) gravador de tela é basicamente pipeline toda saída de tela para um pipeline que é então codificado pelo GStreamer.

Você pode usar seu aplicativo dconf-editor e navegar para org.gnome.shell.recorder , neste esquema você encontrará 3 opções:

  • file-extension - padrão na minha caixa para webm
  • framerate - defauly na minha caixa para 30
  • pipeline - cujo padrão é pipeline para o GStreamer vp8enc para codificar o fluxo. %código%

Então, como poderíamos replicar o pipeline de gravação na linha de comando? Poderíamos fazê-lo com o comando gst-launch da ferramenta gstreamer. Em primeiro lugar, você precisa instalar gst-tools em sua caixa e você pode começar a jogar com o gstreamer !. Aqui estão alguns exemplos:

Gravar para 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

Pressione Ctrl + C para interromper a gravação.

Grave para 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

Pressione Ctrl + C para interromper a gravação.

Os pipelines são executados por gst-launch. Veja o que eles fazem:

  • Agarre a imagem de vídeo X (a área de trabalho)
  • Converta automaticamente o vídeo para um formato aceitável
  • Gerar um thread de segundo plano [t1] para continuar o processamento de vídeo
  • [t1] Codifica o vídeo (para vp8 ou theora)
  • [t1] Prepare-se para mesclar o vídeo no shell de vídeo (webm ou ogg)
  • Agarre a entrada de áudio como raw (o microfone)
  • Gerar um thread de segundo plano [t2] para continuar o processamento de áudio
  • [t2] Converte automaticamente o áudio para um formato aceitável
  • [t2] Codifica o áudio para vorbis
  • [t2] Prepare-se para mesclar o áudio no shell de vídeo (webm ou ogg)
  • Grave áudio e vídeo codificados no arquivo de vídeo

Agora, você não precisa mais ter medo de pipelines gstreamer! \ o /

    
por 28.10.2012 / 14:01
8

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

Se você puder obter o XID da janela, poderá passá-lo para ximagesrc. Por exemplo, se você sabe qual é o título exclusivo da janela, use o xwininfo e um pouco de mágica para conseguir isso. No bash:

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

Agora você pode passar o XID para o ximagesrc e, é claro, terminar o pipeline:

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

E FYI, estou mostrando isso usando a versão 1.0 do gstreamer. Não há mais ffmpegcolorspace, você usa o videoconvert (as versões mais recentes do FFmpeg tiveram uma mudança de nome para 'libav', então ele foi renomeado).

    
por 15.03.2013 / 23:46
0

A gravação do Gnome 3 usa o plug-in GStreamer FFmpeg para produzir um .webm na página inicial do usuário.

Plug-in do GStreamer FFmpeg

link

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

Pode ampliar a janela para o ecrã inteiro?

    
por 14.05.2012 / 14:12