Captura de tela - linha de comando?

12

Existe uma ferramenta de linha de comando disponível para gravar a tela do computador e o dispositivo de áudio e salvá-la em um arquivo?

Chealion
fonte
Alguma razão para isso precisar ser uma ferramenta CLI? Você obtém captura de tela gratuitamente com o QuickTime.
Igorw 17/07/10
Gostaria de chamá-lo em um script shell e fazê-lo sem supervisão.
Olá Keith, bem-vindo ao StackOverlow. Isso não parece à primeira vista relacionado à programação, embora possa realmente ser se você estiver planejando criar um script em um arquivo em lotes ou algo assim. Você pode reformulá-lo para que não fique fechado de imediato.
precisa

Respostas:

9

O Mac OS X oferece a capacidade de capturar capturas de tela estáticas da linha de comando usando um utilitário chamado sem imaginação screencapture. Você pode encontrar mais informações executando man screencapture.

por exemplo. screencapture ~/Desktop/picture.png


Quanto à gravação de movimento e áudio do computador, você pode fazer isso via AppleScript usando o QuickTime Player X se estiver usando o Mac OS X 10.6 ou mais recente. (No entanto, definitivamente não é "silencioso" e só será executado quando alguém estiver conectado)

(Gravando a tela por 5 segundos, apenas um possível ponto de partida)

tell application "QuickTime Player"
    --activate
    new screen recording
    start document 1
    delay 5
    stop document 1
    save document 1 in file "/tmp/test.mov"
    quit
end tell
Chealion
fonte
O screencapture permite apenas imagens estáticas, sem gravação de vídeo ou som.
MacLemon 19/07
@ MacLemon: Adicionados alguns esclarecimentos.
Chealion
2
FYI, apenas referência a um post que tem versão melhorada do Quicktime Applescript acima: netjunki.org/blog/...
David
1
O blog que @David mencionado ainda está disponível no cache do Google, e observa: "Parece que quando você tenta salvar em 10.7 o quicktime simplesmente ignora a chamada. Ou algo assim. O script fica lá para sempre e depois expira". Isso é verdade para mim em 10,8…
ptim 16/10
2

Estou usando SOX e VLC para captura, crontab para agendamento, XLD para criar m4a e MP4Box para multiplexação. É bastante flexível, mas requer conhecimento de script Bash (talvez também script da Apple). Encontrei minha inspiração no script mkmp4 de Diego Massanti.

processos principais a serem lançados:

rec -q -c $C -r 48000 -b 16 $AFILE trim 0 $HH:$MM:00 &

VLC -I dummy screen:// --screen-fps=25 --quiet --sout "#transcode{vcodec=h264,vb=3072}:standard{access=file,mux=mp4,dst=$FILE}" --run-time $TIME vlc://quit

Agendando gravação:

crontab -l
0       8       *       *       1-5     ~/capture.sh 3 0 recording-name 1

você pode ter uma idéia do que o script está fazendo: gravar 3h de captura, som mono, todos os dias úteis às 8h


Não encontrei nem compilei o SOX ativado para fluxos de áudio MPEG, portanto, usei o FLAC para economizar espaço; Estou usando o XLD para convertê-lo em AAC-HE 16kbps, o que é suficiente para voz.

Próximo passo: áudio e vídeo multiplexados para criar mp4. Se você não se importa em usar a GUI, o MPEG StreamClip (ou QuickTime) também serve bem.

MP4Box -add $1.m4a -sbr -add $1.m4v -fps $2.0 -inter 500 $1.mp4

Estou usando isso diariamente para criar um arquivo do GoToWebinar, mas quando a próxima versão do FFmpeg suportar o codec G2M4, não vou mais me incomodar. Sim, também existe o OSAscript para iniciar o webinar, que também exigiu a remoção do sinalizador com.apple.quarantine para desativar o aviso (Tem certeza de que deseja abri-lo?).

links:

http://blog.massanti.com/2008/09/26/mkmp4-automated-h264-aacplus-encoder-script-mac-linux/

rhoracio
fonte
Isso pode estar relacionado, bem como para VLC, há uma pequena piada sobre como usá-lo neste blog: netjunki.org/blog/...
David
1

Você pode usar o software ffmpeg. Para instalá-lo em um Mac, siga as instruções aqui . Em seguida, use o comando:

$ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y output.mkv
Nehal J Wani
fonte
1
Duvido que funcione no OSX, alsa e x11grab provavelmente só estão disponíveis em compilações linux do ffmpeg.
Adam MW
0

Para captura de tela, existem várias ferramentas de código aberto. Você deve procurar "captura de tela" usando um gerenciador de pacotes no Linux. Ferramentas como scrotpodem ser chamadas em um script. Se você planeja fazer isso programaticamente, há os pontos de entrada necessários no Imlib2.

Capturar som é realmente uma gravação para o dispositivo de som do microfone. Não é realmente um instantâneo e você deve gerenciar quanto tempo a gravação deve ser feita. Qualquer gravador de som fará.

Também há ferramentas que fazem um vídeo da sua área de trabalho.

kriss
fonte
0

Despejar o conteúdo do dispositivo framebuffer Linux em um arquivo pode ser algo semelhante ao que você está procurando. Abaixo, citei a parte relevante do Tutorial de programação de dispositivos do Linux 2.2 Framebuffer , dê uma olhada. Você precisará configurar seu sistema para ativar o dispositivo framebuffer (verifique se você possui / dev / fb0 no seu sistema), não o tenho no meu Ubuntu 9.04.

Quando você tiver modos de texto de alta resolução, poderá começar a experimentar. Você terá um dispositivo / dev / fb0 que pode ser parecido com qualquer arquivo normal. Para tirar uma captura de tela, tudo o que você precisa fazer é

cat / dev / fb0> ~ / sshot

E você terá um arquivo muito grande com o conteúdo da memória da sua placa gráfica. Agora, se você limpar a tela e digite

cat ~ / sshot> / dev / fb0

Você deve ter uma tela exatamente igual a antes. Obviamente, o segundo capítulo em que você começa a digitar o visor volta ao normal.

sauparna
fonte
0

Você pode usar a importação do ImageMagick, mas é apenas o Linux. Então você pode ir para um terminal e executar:

import screenshot.png
karlphillip
fonte
0

Também estou executando o Snow Leopard em um macbook antigo e, como estou tentando aprender o Objetivo C, passo algum tempo desenvolvendo uma ferramenta que pode capturar janelas específicas.

https://github.com/vorgos/QuickGrab

É uma ferramenta de linha de comando que captura a janela superior mais ativa ou qualquer janela que você especificar.

Espero que tenha ajudado.

Cara chamado Ben
fonte