Estoy tratando de crear un script para grabar juegos con ventanas con ffmpeg.

Esto es lo que tengo hasta ahora:

#!/bin/sh 

INFO=$(xwininfo -frame)

WIN_GEO=$(echo $INFO | grep -oEe 'geometry [0-9]+x[0-9]+' | grep -oEe '[0-9]+x[0-9]+')
WIN_XY=$(echo $INFO | grep -oEe 'Corners:\s+\+[0-9]+\+[0-9]+' | grep -oEe '[0-9]+\+[0-9]+' | sed -e 's/+/,/' )

ffmpeg -f x11grab -y -r 60 -s $WIN_GEO -i :0.0+$WIN_XY -f alsa -i pulse -crf 18 -preset ultrafast -threads 8 -async 5000 $1.mkv

Me permite hacer clic en una ventana y grabarla; funciona, pero tiene algunos problemas:

  • Tengo que redirigir manualmente el audio del juego con pavucontrol para poder grabarlo
  • El audio se desincroniza, probé muchas opciones sin suerte
  • No puedo encontrar una manera de grabar el audio del juego y el audio del micrófono

Entonces,

  • ¿Se podría mejorar el script de alguna manera para obtener una mejor calidad / rendimiento?
  • ¿Cómo puedo evitar que el audio se desincronice?
  • ¿Cómo puedo grabar video del juego, audio del juego y audio del micrófono al mismo tiempo?
Vittorio Romeo
fuente