Screen Casting using ffmpeg (too fast)

Solution 1:

Try using a lossless encoder to capture the screen, and then re-encode the output when you are finished to create a smaller file if desired. The advantage of this method is often a less intensive capturing process which can result in a "faster" capture frame rate. Of course results can vary.

ffmpeg -f x11grab -s 1280x800 -i :0.0 -c:v libx264 -preset ultrafast -crf 0 out.mkv

It is possible that your CPU simply does not have the capability to encode at your declared frame rate at a particular screen capture size. In that case you can try a smaller -s value. It might be worth experimenting with other lossless encoders such huffyuv, ffv1, or utvideo but I personally haven't tried these for screencasts.

More info:

  • HOWTO: Proper Screencasting on Linux
  • Capturing audio with FFmpeg and ALSA (as an alternative to pulse)