Captura de pantalla - línea de comando?


12

¿Existe una herramienta de línea de comando que pueda grabar la pantalla de su computadora y el dispositivo de audio y luego guardarlo en un archivo?


¿Alguna razón por la que esto debe ser una herramienta CLI? Obtiene captura de pantalla gratis con QuickTime.
igorw

Me gustaría llamarlo en un script de shell y hacerlo sin supervisión.

Hola Keith, bienvenido a StackOverlow. Esto no parece relacionado con la programación de un vistazo, aunque en realidad podría serlo si planeas escribirlo en un archivo por lotes o algo así. Es posible que desee volver a redactarlo para que no se cierre fuera de control.
Brian MacKay

Respuestas:


9

Mac OS X ofrece la capacidad de capturar capturas de pantalla estáticas desde la línea de comandos utilizando una utilidad llamada inimaginable screencapture. Puede encontrar más información ejecutando man screencapture.

p.ej. screencapture ~/Desktop/picture.png


En cuanto a la grabación de movimiento y audio de la computadora, puede hacerlo a través de AppleScript utilizando QuickTime Player X si está utilizando Mac OS X 10.6 o posterior. (Sin embargo, definitivamente no es "silencioso" y solo se ejecutará cuando alguien haya iniciado sesión)

(Grabando la pantalla durante 5 segundos, solo un posible punto 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

screencapture solo permite hacer imágenes fijas, no grabaciones de video o sonido.
MacLemon

@ MacLemon: se agregó alguna aclaración.
Chealion

2
Para su información, solo haciendo referencia a una publicación de blog que ha mejorado la versión del Quicktime Applescript anterior: netjunki.org/blog/…
David

1
El blog que mencionó @David todavía está disponible en la memoria caché de Google, y señala: "Parece que cuando intentas llamar a guardar en 10.7 quicktime simplemente ignora la llamada. O algo así. El script se quedará allí para siempre y luego se agotará". Esto es cierto para mí en 10.8 ...
ptim

2

Estoy usando SOX y VLC para la captura, crontab para la programación, XLD para crear m4a y MP4Box para la multiplexación. Es bastante flexible, pero requiere conocimiento de las secuencias de comandos Bash (quizás también la secuencia de comandos de Apple). Encontré mi inspiración en la secuencia de comandos mkmp4 de Diego Massanti.

procesos centrales para lanzar:

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

Programación de grabación:

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

puede hacerse una idea de lo que está haciendo el guión: grabar 3 horas de captura, sonido mono, todos los días hábiles a las 8 a.m.


No encontré ni compilé SOX habilitado para transmisiones de audio MPEG, por lo tanto, uso FLAC para ahorrar espacio; Estoy usando XLD para convertirlo a AAC-HE 16kbps, que es suficiente para la voz.

Siguiente paso: multiplex audio y video para crear mp4. Si no le importa usar GUI, entonces MPEG StreamClip (o QuickTime) también funciona bien.

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

Lo uso a diario para crear un archivo de GoToWebinar, pero cuando la próxima versión de FFmpeg admita el códec G2M4, ya no me molestaré. Sí, también hay OSAscript para iniciar el seminario web que también requirió deshacerse del indicador com.apple.quarantine para desactivar la advertencia (¿Está seguro de que desea abrirlo?).

Enlaces:

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


Esto también puede estar relacionado con VLC, hay un pequeño comentario sobre cómo usarlo en esta publicación de blog: netjunki.org/blog/…
David

1

Puede usar el software ffmpeg. Para instalarlo en una Mac, siga las instrucciones aquí . Luego usa el 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

1
Dudo que funcione en OSX, alsa y x11grab probablemente solo estén disponibles en las compilaciones de Linux de ffmpeg.
Adam MW

0

Para capturar la pantalla, hay varias herramientas de código abierto. Debe buscar "captura de pantalla" utilizando un administrador de paquetes en Linux. scrotSe pueden llamar herramientas como en un script. Si planea hacerlo programáticamente, hay los puntos de entrada necesarios en Imlib2.

Capturar sonido es realmente grabar para un dispositivo de sonido de micrófono. En realidad no es una instantánea y debes controlar cuánto tiempo se debe hacer la grabación. Cualquier grabadora de sonido funcionará.

También hay herramientas que hacen un video de su escritorio.


0

Volcar el contenido del dispositivo framebuffer de Linux en un archivo puede ser algo similar a lo que está buscando. A continuación, he citado la parte relevante del Tutorial de programación de dispositivos con framebuffer de Linux 2.2 , eche un vistazo. Deberá configurar su sistema para habilitar el dispositivo framebuffer (verifique si tiene / dev / fb0 en su sistema), no lo tengo en mi Ubuntu 9.04.

Cuando tenga modos de texto de alta resolución, puede comenzar a experimentar. Tendrá un dispositivo / dev / fb0 que puede ver como cualquier archivo normal. Para tomar una captura de pantalla, todo lo que tienes que hacer es

cat / dev / fb0> ~ / sshot

Y tendrá un archivo bastante grande con el contenido de la memoria de su tarjeta gráfica dentro. Ahora, si borra la pantalla y escribe

cat ~ / sshot> / dev / fb0

Debe tener una pantalla que se vea exactamente igual que antes. Por supuesto, la segunda vez que comienza a escribir la pantalla vuelve a la normalidad.


0

Puede usar la importación desde ImageMagick, pero es solo Linux. Entonces podrías ir a una terminal y ejecutar:

import screenshot.png

0

También estoy ejecutando Snow Leopard en un macbook antiguo y, dado que estoy tratando de aprender el Objetivo C, dedico algo de tiempo a crear una herramienta que pueda capturar ventanas específicas.

https://github.com/vorgos/QuickGrab

Es una herramienta de línea de comando que capturará la ventana más activa superior o cualquier ventana que especifique.

Espero que haya ayudado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.