X11 Window System : Screen Recorder using X264 Video Codec with H264 Video File Format


NameScreen Recorder
Compilergcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3)gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
Window System versionxorg-x11-server 1.20.3-5.el8xorg-x11-server 1.17.4-17.el6.centos
Operating systemCentOS Linux release 8.0.1905 (Core)CentOS release 6.10 (Final)
Kernel release4.18.0-80.el8.x86_642.6.32-754.el6.x86_64
Kernel version#1 SMP Tue Jun 4 09:19:46 UTC 2019#1 SMP Tue Jun 19 21:26:04 UTC 2018
GNOME version3.
Web browserMozilla Firefox Quantum 60.5.1 ESR (64-bit)Mozilla Firefox version: 52.8.0 (64-bit)
Integrated Development EnvironmentLazarus IDE 2.0.4 x86_64-linux-gtk2
ProcessorHyper Threads 8x Intel Xeon W3565 3.20 GHz
MemoryECC DDR3 1066 MHz 20 GB
Graphics Processor 1PixelView NVidia GeForce GT 440 2 GB
Graphics Processor 2Leadtek NVidia Quadro 2000 1 GB
Display Devices2x DELL U3011
Storage DeviceMirror RAID-1 Array 2x Seagate Baracuda 4 TB

Description :

This program uses x264 to capture screen from X11 window system.
x264 developed by VideoLAN for encoding video streams into the H.264/MPEG-4 AVC compression format.
The screen will be recorded as H.264 file format and split every 1 minute.

Program :

For best results this program requires a minimum of CPU with 4 cores.
For best results this program requires Nvidia graphics driver.
The smaller value of the better and smoother results of video.

X11 Window Server configuration :

Number of bits that each scanline must be padded ( Bitmap Pad )32
Size of a bitmap's scanline ( Bitmap Unit )32 bits
Format for the imageZPixmap
Bits per pixel of the image32
Depth of the image24
Byte order for images for each scanlineLSB First
Bit order for a pixmapLSB First
Red mask00FF0000
Green mask0000FF00
Blue mask000000FF

International Telecommunication Union, Radiocommunication Sector, Broadcasting Service ( Television ) :

ITU-R BT.601-7Standard-Definition ( SD )Studio encoding parameters of digital television for standard 4:3 and wide-screen 16:9 aspect ratios.Geneva, 2017
ITU-R BT.709-6High-Definition ( HD )Parameter values for the HDTV standards for production and international programme exchange.Geneva, 2015
ITU-R BT.2020-2Ultra-High-Definition ( UHD )Parameter values for ultra-high definition television systems for production and international programme exchange.Geneva, 2015

H264 Preset :

UltraFastVery high speed encodingRequires much higher bit-rates to maintain quality. This means you can expect much larger file sizes. Ultrafast is a full 100 times faster than placebo.
PlaceboExtremely slow encodingProvides the best Quality and/or filesize for a given source.

H264 Tune :

filmUse for high quality movie content. Lowers deblocking. Real life footage. Films etc may benefit
animationUses higher deblocking and more reference frames. Good for cartoons. Used for hand-drawn animated content.
grainTypically used for very grainy or old content. Preserves the grain structure in old. Grainy film material
stillimageCan be used and good for Slideshows, Presentations etc where there is very little moving content.
psnrUsing Peak Signal to Noise Ratio ( PSNR ) for cost function. A algorithm for matching a macroblock with another block is based on a cost function.
ssimThe structural similarity ( SSIM ) index is a method for predicting the perceived quality of digital television and cinematic pictures, as well as other kinds of digital images and videos.
fastdecodeOptimise for faster decoding. Useful for low power devices that struggle to decode the video. Allows faster decoding by disabling certain filters.
zerolatencyGood for fast encoding and low-latency streaming.

H264 Prifile

baselineBaseline encodes are the most basic form of encoding. While decoding is much easier, it may also require much higher bit-rates to maintain the same level of quality. Primarily for low-cost applications that require additional data loss robustness, this profile is most typically used in videoconferencing and mobile applications.
mainThe middle ground. Most modern / current devices will support this profile. This profile is used for standard-definition digital TV broadcasts that use the MPEG-4 format as defined in the DVB standard.
highFor best quality and filesize at the expense of CPU time in both decode and encode. The primary profile for broadcast and disc storage applications, particularly for high-definition television applications ( for example, this is the profile adopted by the Blu-ray Disc storageformat and the DVB HDTV broadcast service ).
high10Going beyond typical mainstream consumer product capabilities, this profile builds on top of the High Profile, adding support for up to 10 bits per sample of decoded picture precision.
high422Primarily targeting professional applications that use interlaced video, this profile builds on top of the High 10 Profile, adding support for the 4:2:2 chroma sampling format while using up to 10 bits per sample of decoded picture precision.
high444This profile builds on top of the High 4:2:2 Profile, supporting up to 4:4:4 chroma sampling, up to 14 bits per sample, and additionally supporting efficient lossless region coding and the coding of eachpicture as three separate color planes.

Requires dependencies :

ld-linux-x86-64.so.2 ( GLIBC_2.3 )ld-linux-x86-64.so.2 ( GLIBC_2.3 )
libc.so.6 ( GLIBC_2.17 )libc.so.6 ( GLIBC_2.7 )
libdl.so.2 ( GLIBC_2.2.5 )libdl.so.2 ( (GLIBC_2.2.5 )
libm.so.6 ( GLIBC_2.27 )libm.so.6 ( GLIBC_2.2.5 )
libpthread.so.0 ( GLIBC_2.3.2 )libpthread.so.0 ( GLIBC_2.3.2 )
librt.so.1 ( GLIBC_2.3.3 )librt.so.1 ( GLIBC_2.3.3 )
Nvidia graphics driver

Example :

Menu window :

Wait ... Loading