7 votos

¿Cómo se hace una captura de pantalla de vídeo por línea de comandos en OS X con libav?

En linux puedo hacer algo así:

avconv -f alsa -i pulse -f x11grab -r 25 -s 1400x1050 \
  -i :0.0+0,0 -vcodec libx264 -threads 4 \
  -acodec libmp3lame video.mkv

pero, por supuesto, el controlador alsa y x11 debe ser diferente en OS X. ¿Cómo funcionaría esto para hacer la captura de pantalla de vídeo de línea de comandos?

8voto

FoxyLad Puntos 191

Nota: Esta respuesta no utiliza libav pero esta pregunta aparece en primer lugar cuando se busca "mac screen record command line" en Google.


A partir de MacOS Catalina, ahora se puede grabar la pantalla desde la línea de comandos utilizando la función screencapture herramienta con -v bandera.

Consulte la página de ayuda ( screencapture --help ) para una descripción de todas las opciones. Las opciones enumeradas en el man página puede ser incorrecta.

Mientras tanto, he aquí algunos ejemplos:

  • Graba tu pantalla principal hasta que pulses Ctrl+C en la Terminal. No hay ningún botón de parada en la barra de menú.

    screencapture -v out.mov
  • Utilice -D 2 para utilizar una pantalla secundaria.

    screencapture -D 2 -v out.mov
  • Utilice -g para grabar también el audio utilizando la entrada por defecto. (La página de manual permanece -A pero no funcionó).

    screencapture -v -g out.mov

Algunas notas generales:

  • Si el archivo ya existe, la grabación fallará después de la grabación de la pantalla se ha completado. Por favor, tenga cuidado.

  • Hay un poco de retraso después de que la grabación ha comenzado antes de que realmente grabe su pantalla.

  • -i (modo interactivo) no funciona con -v .

  • -iU (modo de barra de herramientas interactiva) funciona con -v pero no utilizará el nombre de archivo especificado en la línea de comandos.

7voto

He encontrado una solución que funciona muy bien. Puedes grabar con ffmpeg utilizando un dispositivo de entrada llamado avfoundation .

Este es un ejemplo de línea de comandos:

ffmpeg -f avfoundation -pix_fmt yuyv422 -i "1:1" -t 10 -vf crop=1280:720:1:65 -r 30 output.mkv
  • Puede que le pidan o no que especifique -pix_fmt cuando no se incluye esta opción; podría valer la pena probar otros formatos para ver si se obtiene un mejor rendimiento.

  • Como se explica en el enlace de detalles, -i selecciona tanto la entrada de vídeo como la de audio. Si quieres capturar el audio que se reproduce en tu ordenador, necesitarás algo como Captura de audio iShowU .

    Para que eso funcione, tendrás que pulsar Option + F11 , seleccione iShowU Audio Capture como dispositivo de entrada y como dispositivo de salida. Notarás que una vez que lo selecciones como dispositivo de salida ya no podrás escuchar el audio tú mismo a través de tus altavoces o auriculares.

    Una solución rápida es abrir la Configuración de Audio MIDI, crear un Dispositivo de Salida Múltiple y añadir iShowU Audio Capture y su dispositivo de salida normal. Seleccione este nuevo dispositivo de salida múltiple en sus salidas de sonido y ya está, ahora puede escuchar el audio y tenerlo capturado.

    Desgraciadamente ahora no se pueden controlar los niveles de audio... si alguien conoce una solución a esto por favor hágamelo saber.

  • -t es el tiempo en segundos para grabar.

  • -vf es muy útil para recortar y compensar. La configuración actual es un recorte de 1280 de ancho y 720 de alto, con un desplazamiento de 1 píxel a la izquierda y 65 píxeles desde la parte superior. Tendrás que utilizar una herramienta de terceros para obtener las medidas exactas de píxeles de tu pantalla.

  • -r es la velocidad de fotogramas.

3voto

Para tomar la pantalla disparos (no películas) hay screencapture :

pse@Mithos:~$ screencapture -h
screencapture: illegal option -- h
usage: screencapture [-icMPmwsWxSCUtoa] [files]
  -c         force screen capture to go to the clipboard
  -C         capture the cursor as well as the screen. only in non-interactive modes
  -d         display errors to the user graphically
  -i         capture screen interactively, by selection or window
               control key - causes screen shot to go to clipboard
               space key   - toggle between mouse selection and
                             window selection modes
               escape key  - cancels interactive screen shot
  -m         only capture the main monitor, undefined if -i is set
  -M         screen capture output will go to a new Mail message
  -o         in window capture mode, do not capture the shadow of the window
  -P         screen capture output will open in Preview
  -s         only allow mouse selection mode
  -S         in window capture mode, capture the screen not the window
  -t<format> image format to create, default is png (other options include pdf, jpg, tiff and other formats)
  -T<seconds> Take the picture after a delay of <seconds>, default is 5
  -w         only allow window selection mode
  -W         start interaction in window selection mode
  -x         do not play sounds
  -a         do not include windows attached to selected windows
  -r         do not add dpi meta data to image
  -l<windowid> capture this windowsid
  -R<x,y,w,h> capture screen rect
  -B<bundleid> screen capture output will open in app with bundleidBS
  files   where to save the screen capture, 1 file per screen

Para capturar vídeo, la forma más sencilla es utilizar la opción de captura de pantalla en Quicktime Player. Incluso debería ser posible iniciar esto desde la Terminal con algún Applescript (que está más allá de mis habilidades).

-1voto

dimitrieh Puntos 99

No puedo conseguir ffcast instalado en mac (como no puede encontrar libx11, aunque he instalado xquartz), de lo contrario sería perfecto

https://github.com/lolilolicon/FFcast

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X