SPx Screen Recording for Linux

SPx Screen Recorder provides a software-based screen capture and record capability for Linux. The software runs as a background server application and captures the screen at a programmable rate. The captured data is compressed and stored without loss to a local or remote file. The capture rate is programmable and can be set to balance CPU demands with other applications. Capturing the video has no effect on the operation of other graphics applications, nor do those applications have to co-operate with the capture process. SPx Screen Recorder runs as an X client application, with no direct interaction with other applications running on the machine. The available performance in terms of frames per second depends on screen resolution, number of display heads and available CPU/graphics resources that can be allocated to the task. Example figures are provided in the datasheet.

Why Software Screen Recording?

Software-based screen recorders offer a number of system benefits over hardware-based units. Although some expensive hardware units may offer higher capture rates, the per-screen recording cost is considerably higher and the systems engineering associated with the additional cabling, buffering and interconnection adds complexity and cost to the system installation. The software solution has a much lower total cost of ownership, and provides the option of system upgrades and performance enhancement simply through the replacement of standard processing modules. The SPx Screen Recorder is high performance and designed for command and control applications where the screen might contain a combination of graphics, radar and video data. The compression algorithms are designed to work with this mixed mode data.

Advanced Graphics Processor Implementation

SPx Screen Recorder takes full advantage of the power of modern graphics processor units (GPUs). The preferred GPUs are from nVidia, which offer the capabilities and driver support under Linux that SPx Screen Recorder can exploit. Excellent performance is obtained with 7600, 7900, 8600 and 9600 cards, for example.

Compression

A 1600 x 1200 screen image at 32 bits per pixel consumes 7.7Mbytes per frame. SPx Screen Recorder employs compression algorithms to reduce the output data rate, whilst preserving lossless captured data. Many hardware units use lossy compression schemes such as JPEG or MPEG. Although the quality of the replay can be very good with these schemes, the potential for loss of significant data, especially when displaying critical sensor data, means that a guaranteed loss-less approach is preferable. Furthermore hardware-based compression that captures the DVI or analogue video output are considerably more expensive in terms of equipment costs, cabling and maintenance. The software solution is low-cost, easy to deploy and maintenance free.

The exact compression achieved is data dependent, but is typically in the region of 2:1 to 5:1 for a multi-function console display comprising video, radar and graphics. The compression scheme is adaptive and only records changes to the screen area. For workstation displays with no real-time data, compression ratios of 50:1 are achieved.

Existing customers using the Screen Recorder have achieved 24 frames per second of compression at 1280 x 1024 with low impact on system performance.

Replay

The recorded video may be replayed on the same machine used for recording, or else on a different machine. The recorded data is accurately time-stamped allowing the replay software to skip to a specific point in the file. The replay software can optionally overlay the recorded data with a time stamp and message string, allowing easy identification of the replay point and data file.