FFMPEG is a great software for desktop recording or screen casting. It supports a lot of codecs, MPEG 1 is a great for desktop recording.
Most people like to use the h264 for encoding, but we do not use it, because it is not a free software. MPEG 1 enter public domain in the early years of this century, because all of its patents are expired according to a mailing list discussion in 2008. Therefore, we can use MPEG 1 for free (as in freedom).
Many people like to use webm vp8 or vp9 for publishing their video on the Internet. vp8/vp9 is free software, but we cannot use it, because its encoding speed is too low. For example, if you play a 3D video game with a 30 FPS, you can only get 5 or even less in your webm video. In this situation, your video game is almost not playable, and your video quality is low. MPEG 1 is compression video codec, but it is very light weight and does not require a high computer cpu capability. MPEG 1 is also a very common codec for embed device such as digital camera.
In GNU/Linux, casting your desktop is very easy. All the thing we need to do is just copy and paste the following command to your terminal emulator:
ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -f pulse -ac 2 -i default -c:v mpeg1video -q:v 1 -c:a pcm_s16le output.mkv
We will explain every part of this command for you.
-f x11grab
means we are going to capture the x11 data. Most GNU/Linux uses X11 as their graphics service.
-r 30
means we use 30 fps for this video. 30 FPS is not very easy to feel in video game.
-s
is self-explained. It is the video size... In our example, we use 1920x1080, because it is also the resolution of our computer screen.
-i :0.0
means we record screen for the top-left corner of the entire screen.
-f pulse -ac 2 -i default
means that we record sound from pulse server.
-c:v mpeg1video
is the most important part, it means that we are going to use MPEG 1 format/codec.
-b:v 40M
means that we record our video in a best quality, which is almost a Blue-Ray quality.
-q:v 1
means that we record our video in a best quality, which is almost a Blue-Ray quality.
-c:a pcms16le
means that we use pcms16le and do not compress our audio.
output.mkv
is our output file name. The mkv is a free format and container for the combination of many different video codecs and audio codecs.
This is it.
Have fun, be free.