1 votos

Resolución de video al capturar una grabación de pantalla completa a través de ffmpeg en Mac OS X

Yo tengo una de 15 pulgadas de 2017 MacBook Pro corriendo Mac OS X 10.13 (High Sierra): enter image description here La pantalla por defecto soporta resoluciones de pantalla de hasta 2880x1800, a pesar de la resolución máxima seleccionable a través de la interfaz de usuario estándar se limita a 1920x1200 (ver esta pregunta): enter image description here

Ahora, estoy tratando de capturar una pantalla completa de la grabación a través de ffmpeg, el uso de la avfoundation dispositivo, en resolución completa (i. e. w/o cualquier sub-muestreo):

ffmpeg -y -v error -hide_banner -f avfoundation -i 1:none -threads 0 -f mp4 -vcodec mpeg4 -r 25/1 -qscale:v 1 output.mp4

Extrañamente, cuando la resolución de la pantalla varía entre 1024x640 y 1920x1200 (i. e. se puede seleccionar a través de la "escala de la lista" en el Mac OS X de preferencias), el tamaño del vídeo resultante de la trama es siempre una cuádruple de la resolución de la pantalla:

  • 1024x6402048x1280
  • ...
  • 1920x12003840x2400

enter image description here

Si, por otro lado, debo configurar la resolución de pantalla al máximo de 2880x1800 el uso de la screenresolution de utilidad, el tamaño de ffmpeg de salida será idéntica a la resolución de la pantalla.

En ambos casos, el -video_size opción será ignorada por ffmpeg.

Lo anterior sólo es verdad para la pantalla incorporada: si cualquiera de las pantallas externas, la resolución de pantalla y captura de video de resolución son siempre los mismos, independientemente del nivel de la escala.

Preguntas:

  1. ¿Por qué ffmpeg (o, más bien, el avfoundation dispositivo de entrada) presentan este tipo de incoherencias?
  2. ¿Cómo puedo forzar ffmpeg utilizar siempre la resolución de pantalla actual cuando la captura de la pantalla? Prefiero no permitir sub-muestreo (-vf scale=...) que afectan a la resultante en mapa de bits de tamaño.

0voto

Bass Puntos 201

Esto parece ser un problema conocido de ffmpeg : debe conservar los metadatos de densidad de píxeles de las grabaciones de la pantalla HiDPI / Retina .

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: