Welcome to our project page, ScapLIB is an all inclusive Screen Capture Library for C# .net applications. A native C library is in the works as well, check back for updates.


  • Full and partial screen recording
    • Set exact capture area
  • Multiple Image and Video Outputs
  • Frames Per Second Control
  • Fully Multi-threaded design allowing for changes in the number of threads and their respective work-loads
    • The framework will control all threading meaning if you set the thread number too high only the needed threads will ever execute or take up memory.
  • Mic Recording capability.
    • Output recording capability is up coming.
    • Device selection is also up coming.
  • Lightweight three class design.
    • Two of which are completely static.
    • One main data container class.
  • Uses LZ4 compression and pointer based file I/O to allow for the fastest and longest capture times possible.
    • Tiered structure that captures the screen then compresses and then writes to disk to save on memory and allow for a much longer run-time
  • Can be run in as little as Six lines of code.
    • All that's necessary is to setup a capture and then feed it into the framework and you are set and ready to capture.

Sample Program

Basic Setup in a WinForms application.




Scaplib has been designed from the ground up for high-speed video capture. The library has three main classes two of which are fully static classes, used for the framework and user controls. The third class is used to instantiate a capture. The framework is meant to be used with multi-threading in mind, which allows the user to capture the highest quality images at the frame rate that they choose. The library comes with multiple video encoders and can output and save the individual frames in a multitude of image formats. The audio capture currently is limited to Mic recording only and as of right now limited to the default device. This is however top on the list of things to change so expect the ability to choose the device in the coming days.

A basic overview of the use of ScapLib is simple. Firstly you are going to want to instantiate a new ScapCapture. As a side note, Multiple desktop capture is being worked on right now and should be implemented soon. Once the capture has been created and setup to your needs run the ScapBackendSetup method with your new ScapCapture, which is in the ScapBackendConfig class. Thats it you now have a fully multithreaded screen capture waiting to be started, which you can do through the ScapCore class.

Now that you have basic gist take a look around and the documentation for detailed explanations of all methods and the usage of this library. Also take a look at our FAQ for some of the top questions asked.

ScapCapture Class

The First Class is ScapCapture and this is the class where all of the data for the capture is set. The main constructor currently has 9 overloads which allow precise control over the capture and its contents. Things like capture area and output formats are set here.

ScapBackendConfig Class

The Second Class is the Framework Configuration Class, which is entirely static and has only two usable functions. This class has a constructor that takes one argument which is an ScapCapture and a Dispose method to reset the framework. The rest is handled behind the scenes in terms of Setup and underlying control.

ScapCore Class

The Last class is the Core of ScapLib, and is completely static as well. This class controls the capture, containing the functions to pause/resume and start/stop the captures. As well as others like, get the current actual frame rate and capture number.

Last edited Nov 27, 2012 at 9:24 PM by supernomad, version 7