Estoy usando cosas así:
avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm
Dónde:
-f x11grab
- impone captura de pantalla "formato" de entrada.
-s 1024x768
es la resolución del archivo de entrada (también conocido como área de captura). Por ejemplo, es igual a la resolución de escritorio. Si es más pequeño que eso, el área de grabación estaría a la izquierda y arriba. Usé un área de grabación de 1024x768 en este ejemplo.
-r 24
- cuadros por segundo. Básicamente, 23 a 30 FPS utilizados por películas reales para proporcionar una imagen de grabación uniforme. Sin embargo, para screencast, podría estar bien reducir esto para obtener una mejor imagen a velocidades de bits más bajas. Solía 24 para hacer capturas de pantalla del juego.
-i 0:0
es una pista para usar display 0: 0 como fuente (el dispositivo está en notación xorg). Si solo tiene 1 monitor y la configuración predeterminada de Xorg, 0: 0 estará bien la mayoría de las veces.
-deadline realtime
- Es una pista para libvpx. Queremos captura en vivo. Queremos un rendimiento en tiempo real. Entonces libvpx hará lo mejor para codificar VP8 en TIEMPO REAL. Para hacerlo, de alguna manera cambia la calidad por la velocidad. Con una calidad de velocidad de bits determinada, será un poco peor de lo que sería en tiempo no real. Pero la velocidad de codificación se dispararía. Entonces, en mi hardware puede aplastar 1024x768 @ 24FPS, escenas intensas, sin perder ningún marco (aunque se recomienda una CPU potente). En este ejemplo, quería una captura en vivo de calidad decente a buen FPS y un área de captura bastante grande. Por lo tanto, el uso de CPU por códec podría ser un problema. Es por eso que esta pista realmente es necesaria para obtener buenos resultados.
-b 5000000
- bitrate objetivo en bits / segundo. Utilicé 5Mbits para obtener una imagen más o menos buena de escenas bastante intensas. El códec intentará mantener la velocidad de bits promedio del video cerca de este valor. Cuanto menor sea este valor, peor será la calidad y menor será el archivo. Puede experimentar un poco para tener una idea de qué tasa de bits es buena para usos particulares. Los servicios para compartir videos convertirían el video en forma descendente si se sobrepasa. Si está a punto de usar su propio servidor, depende de usted ocuparse del tráfico. Si subestima, la calidad de la imagen será mala. Siéntase libre de cambiar el valor para tener una idea de lo que es mejor para usted. Los 5Mbits estaban destinados a la captura en vivo de escenas intensas más o menos agradables a la vista en juegos en los que no se puede ver fácilmente que la imagen se sobrecomprime. Para capturar aplicaciones fijas, básicamente necesitará mucho menos que eso.
-minrate
200000: es una tasa de bits mínima permitida para el códec. Dependiendo de la naturaleza de las cosas que desea capturar, a veces es posible que desee forzar una tasa de bits mínima para mantener una imagen razonable sin importar lo que pase. A veces, el códec heurístico puede reducir la tasa de bits muy por debajo de los valores que puede desear, dando una mala imagen en algunas escenas. Esta opción permite forzar el códec para mantener la tasa de bits mínima, incluso si el códec piensa que la escena es simple y la tasa de bits podría caerse. El alto valor de este parámetro puede aumentar el tamaño del archivo al evitar que el códec use velocidades de bits más bajas.
-maxrate 40000000
- Este valor controla la tasa de bits de ráfaga máxima en escenas intensas. Utilicé un valor realmente alto para permitir que el códec fuera mucho más alto que el promedio deseado si considera que una velocidad más alta es obligatoria para mantener una calidad decente en alguna escena. Para obtener una imagen atractiva en todas las condiciones, es conveniente establecer esta altura suficiente (40Mbits es una velocidad similar a BlueRay y hará el truco). Por otro lado, si está a punto de transmitirlo utilizando su propio servidor, debe reducir este valor al costo de cierta calidad de imagen en escenas intensas. De lo contrario, el servidor podría no hacer frente a la tasa de bits de ráfaga deseada, al no poder entregarla en tiempo real a los usuarios. Entonces el jugador se enfrentaría a una falta de amortiguación (lo cual es molesto). Los servicios para compartir videos se encargarán solos y, por lo general, convertirán el video a parámetros más bajos a costa de la calidad de la imagen.
recording-filename-000.webm
- es un nombre de archivo de salida. Si usa la extensión .webm, ffmpeg / avconv son lo suficientemente inteligentes como para comprender que desea WEBM. Es así de simple: avconv adivina el formato deseado del nombre de archivo. Entonces, los archivos .WEBM son WEBM adentro.
Eso es todo: este comando realiza la grabación directa de pantalla en el archivo webm. No se necesitan conversiones adicionales ylibvpx
se sugiere que sea lo más rápido posible. No hay sonido ya que no hay especificación para la entrada de sonido. Puede o no ser lo que quieres. Para el sonido, también debe especificar la fuente de entrada para el flujo de sonido.
PD: esto puede parecer un poco complicado, pero al final del día puedes darte cuenta de que una talla no puede adaptarse a todos. Por lo tanto, para obtener una imagen atractiva en todas las situaciones, es posible que desee tener algunos controladores para el códec utilizado y desee ajustarlos. Ffmpeg te ofrece todos los mangos que puedas necesitar y mucho más que eso. Es un armamento pesado de conversión de video y codificación. Entonces, este ejemplo es un buen punto de partida para aquellos que desean hacer codificaciones más o menos avanzadas y está listo para experimentar un poco para obtener resultados realmente decentes.