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?