En primer lugar, no use -sameq
: no significa "misma calidad" y recientemente se ha eliminado de ffmpeg. En cambio, puede codificar sin pérdidas con libx264:
ffmpeg -f x11grab -s $(xdpyinfo | grep 'dimensions:'|awk '{print $2}') -r 25 -i :0.0 -codec:v libx264 -preset ultrafast -qp 0 lossless.mkv
Usar un codificador sin pérdidas es rápido; lo que significa que tiene una mejor oportunidad de capturar realmente a la velocidad de fotogramas declarada. Sin embargo, la salida puede ser un archivo enorme, por lo que una vez que se completa la captura, generalmente se vuelve a codificar a un tamaño más manejable:
ffmpeg -i lossless.mkv -codec:v libx264 -preset medium -crf 23 -pix_fmt yuv420p output.mp4
Si su computadora puede manejarlo, puede omitir el paso intermedio sin pérdida y codificar directamente a video H.264 con pérdida normal.
En cuanto al audio, de acuerdo con HOWTO: Proper Screencasting en Linux :
P: ¿Cómo puedo controlar la entrada de PulseAudio? (por ejemplo, capturar el audio de la aplicación en lugar del micrófono)
A: Instale "pavucontrol". Comience a grabar con ffmpeg. Inicie pavucontrol. Vaya a la pestaña "Grabación" y encontrará ffmpeg en la lista. Cambie la captura de audio de "Audio estéreo analógico interno" a "Monitor de audio estéreo analógico interno". Ahora debería grabar el sistema y el audio de la aplicación en lugar del micrófono.
Su comando ffmpeg puede verse así:
ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1024x768 -i :0.0 -codec:a pcm_s16le -codec:v libx264 -preset ultrafast -qp 0 output.mkv
Consulte también la Guía de codificación FFmpeg y x264 .