0 votos

Problemas para grabar la pantalla con ffmpeg

Dado que hago muchas cosas no enfocadas a lo largo del día, quiero averiguar qué cantidad de ellas hago realmente. Por lo tanto, quiero grabar mi pantalla y finalmente o tal vez directamente hacer un lapso de tiempo de la misma. Ese es mi problema X. Mi problema actual Y es que ni siquiera puedo grabar un simple screen cast sin un time lapse en mi MacBook con el reciente MacOS.

ffmpeg -f avfoundation -i 1 -framerate 10 -capture_cursor -capture_mouse_clicks -pixel_format 0rgb -t 60 ~/Desktop/screen.mp4 

Se queja:

ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple clang version 11.0.3 (clang-1103.0.32.59)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2_3 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang 

...Removed irrelevent bits

[AVFoundation input device @ 0x7fd835c15ec0] Configuration of video device failed, falling back to default.
[avfoundation @ 0x7fd83600c400] Selected pixel format (yuv420p) is not supported by the input device.
[avfoundation @ 0x7fd83600c400] Supported pixel formats:
[avfoundation @ 0x7fd83600c400]   uyvy422
[avfoundation @ 0x7fd83600c400]   yuyv422
[avfoundation @ 0x7fd83600c400]   nv12
[avfoundation @ 0x7fd83600c400]   0rgb
[avfoundation @ 0x7fd83600c400]   bgr0
[avfoundation @ 0x7fd83600c400] Overriding selected pixel format to use uyvy422 instead.
[avfoundation @ 0x7fd83600c400] Stream #0: not enough frames to estimate rate; consider increasing probesize
...
[mp4 @ 0x7fd837809200] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x7fd837819a00] MB rate (20340000000) > level limit (16711680)
...
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
More than 1000 frames duplicated
^C^C^C
Received > 3 system signals, hard exiting

A mí me parece que esto es ffmpeg ignora los argumentos en la línea de comandos. ¿Cuál es el problema?

1voto

Douglas Puntos 10417

A mí me parece que esto es ffmpeg ignora los argumentos en la línea de comandos. ¿Cuál es el problema?

Las banderas capture_cursor y capture_mouse_clicks son booleanos y tienen un valor predeterminado de "0"; ajústelos a "1" y póngalos antes de la primera entrada.

El formato que desea utilizar para ffmpeg es así:

% ffmpeg \[input1 flags\] -i input1 \\
  \[input2 flags\] -i input2 \\ 
  ...
  \[inputN flags\] -i inputN \\
  \[output1 flags\] output1 \\
  \[output2 flags\] output2

Así que, en este caso, el -capture_cursor 1 y -capture_mouse_clicks 1 debe vienen antes de la primera entrada ( -i ).

En cuanto a los errores, la tasa de fotogramas es demasiado alta para el muxer que estás utilizando. Sólo tienes que ir con algo simple:

% ffmpeg -capture_cursor 1 -capture_mouse_clicks 1 -f avfoundation -i "1" -r 10 -s 1280x720  -t 20 ~/Desktop/screen.mkv

Lo anterior capturará la pantalla a una resolución de 1280x720 durante 20 segundos y capturará tanto el cursor como los clics del ratón.

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