Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
For a high-frame-rate Linux capture, match the tool to your display session: use FFmpeg’s x11grab on X11, or OBS’s PipeWire screen-capture source on Wayland. Set the capture rate at the input, keep the resolution and encoding workload within your system’s capacity, and check for dropped frames. A 120-fps extraction cannot recover frames the capture never recorded.
First decide what “high-FPS screenshots” means
A screenshot is a still image; FPS describes how often a capture system records frames. If you need a sequence of desktop images—such as for motion analysis, testing, or later frame-by-frame review—record a video stream at the intended rate, then extract stills. If you only need one image, take a normal screenshot; a high-FPS recording setup is unnecessary.
Keep three rates distinct: the display refresh rate, the rate at which the capture backend actually obtains frames, and the rate used when exporting images. A display running at 120 Hz does not guarantee that an application records 120 distinct frames each second. Likewise, asking an extractor for 120 images per second does not create frames absent from the recording.
Free tools Windows power users keep installed
One-click scans. No signup required.
Choose the Linux capture backend
| Session or route | Recommended starting point | Scope and trade-off |
|---|---|---|
| X11 | FFmpeg x11grab or OBS Screen Capture (XSHM) |
x11grab is directly scriptable and supports display-region capture. OBS offers a graphical recording workflow. |
| Wayland | OBS Screen Capture (PipeWire) | OBS lists this Linux source as requiring Wayland. It uses the permission-aware desktop capture route. |
| Wayland or other setups with a suitable KMS path | FFmpeg kmsgrab, only when you understand the display stack |
A lower-level DRM/KMS route that can require permissions, connector selection, and hardware-aware mapping. It is not the default desktop workflow. |
FFmpeg describes x11grab as a device that “allows one to capture a region of an X11 display.” Its documented options include frame rate, video size, offsets, mouse handling, and window capture. It is an X11 capture device, not a general-purpose Wayland desktop grabber: Wayland controls cross-client capture, so use a Wayland-compatible route such as OBS PipeWire instead.
#1 Best Overall
- Powerful Linux Laptop: This IdeaPad Slim 3 Laptop comes pre-installed with Ubuntu Linux, offering fast performance, robust security, and a clean, user-friendly experience. Enjoy full customization, seamless hardware compatibility, and access to thousands of open-source apps. Whether you're working, creating, or coding, it's built to keep up with everything you do.
- A Multitasking Master: The latest AMD Ryzen 7 5825U processor (up to 4.5 GHz) delivers powerful performance with 8 cores and 16 threads for smooth multitasking. Integrated AMD Radeon Graphics provide crisp visuals for streaming, browsing, photo editing, and casual gaming. With smart machine intelligence, it adapts to your needs for a fast, responsive experience.
- 15.6" Full HD Display: The IdeaPad Slim 3 boasts an 88% screen-to-body ratio for a floating, edge-to-edge visual experience. TÜV Low Blue Light certification reduces eye strain, making it perfect for long work or study sessions.
- Military-Grade Durability: The smart IdeaPad Slim 3 combines portability and durability, letting you work, study, and play on the go. With a profile 10% slimmer than the previous generation, it's lightweight yet military-grade rugged, ready for anything, anywhere.
- Versatile Connectivity: Enjoy the security of a built-in webcam with a privacy shutter. Connect effortlessly with multiple ports: 2x USB A, 1x USB C, 1x HDMI, 1x SD Card Reader, 1x Headphone/Microphone combo. Bundle comes with Stylus Pen, 256GB Portable SSD and 5-in-1 Docking Station.
Check your session and prepare the capture
- Check the session type in a terminal:
echo "$XDG_SESSION_TYPE". The result is commonlyx11orwayland. - Choose the matching backend. For X11, use the FFmpeg command below or OBS XSHM. For Wayland, configure OBS with its PipeWire display or window source and grant any desktop permission prompt.
- Decide whether you need the whole display, a region, or a window. A smaller capture area reduces the amount of image data the system must capture and encode.
- Choose a target rate the compositor, capture path, and machine can sustain. Start at 60 fps; try a higher rate only if monitoring shows the capture is keeping up.
- For recording, choose a format and workflow that preserve timestamps if frame timing matters. Before a long run, make a short test recording and inspect the capture application’s statistics.
Capture an X11 display or region with FFmpeg
Install FFmpeg using your distribution’s package manager if it is not already available. This command records a 1920×1080 area from the active X11 display at a requested 60 fps:
ffmpeg -f x11grab -framerate 60 -video_size 1920x1080 -i "$DISPLAY" -c:v libx264 -preset veryfast capture.mkv
Run it from the X11 session whose display you want to record. $DISPLAY identifies that X display; the documented example uses :0.0. The size must match the area you intend to capture. If your display or target region is a different size, replace 1920x1080 with the actual dimensions.
Capture an offset region
For a region starting at coordinate x,y, append +x,y to the display input. For example, the input form "$DISPLAY+100,50" starts the capture 100 pixels from the left and 50 pixels from the top. Ensure the requested region fits within the display; an incorrect size or offset can produce an input error or capture the wrong area.
Rank #2
- Intel Core i5-10210U (up to 4.2GHz) - 1TB PCIe NVMe + 1TB HDD - 32GB DDR4 SDRAM
- 17.3" HD+ (1600x900) Display, Intel UHD Graphics 620
- Built in HD 720p Webcam with Microphone - Bluetooth Version4.2
- I/O Ports: 2x USB 3.1 (Data Only), 1x USB 2.0, 1x HDMI, 1x Headphone/Microphone Combo Jack
- Linux Mint Cinnamon 64-Bit - 6-Row Keyboard w/ Full Numberpad
Capture a window
FFmpeg’s X11 device has a -window_id option for targeting a window. Obtain the target window ID using an X11-aware window inspection method, then supply the ID with the option as specified by your installed FFmpeg build’s help output. Window IDs and window-selection workflows are specific to X11; do not assume this option provides Wayland window capture.
Adjust rate and encoding load
The input option -framerate sets the requested capture rate and belongs before -i. The sample uses 60; use a higher value only if capture and encoding can sustain it. If FFmpeg reports dropped frames or the recording falls behind, reduce the capture area or frame rate, or use a faster encoding configuration that your system can handle. -preset veryfast is the sample’s x264 speed/encoding trade-off; it is not a guarantee of a particular throughput or image quality on every machine.
Capture Wayland with OBS PipeWire
- Open OBS and add a screen-capture source. On a Wayland session, choose the PipeWire screen-capture source and select the display or window offered by the desktop portal.
- Set the intended frame rate in OBS’s video settings. The available and sustainable rate depends on the compositor, hardware, resolution, and recording workload.
- Choose a recording format that retains frame timestamps if timing matters to your later analysis.
- Record a brief sample, then inspect OBS’s statistics for rendering or encoding lag and dropped frames before relying on a longer capture.
OBS also lists Screen Capture (XSHM) and window-capture sources for Linux. Those are appropriate starting points for X11, not substitutes for PipeWire on Wayland. A compositor and hardware may impose limits; high monitor refresh alone does not establish that the capture route can deliver the same FPS.
Rank #3
- Intel Core i5-1335U Processor (12M Cache, 12 Threads, up to 4.6 GHz) - 256GB Solid State Drive - 16GB DDR4 SDRAM
- 15.6" FHD (1920x1080) Non-Touch Anti-Glare Display - Intel UHD 620 Integrated Graphics - Stereo Speakers
- 720p HD Webcam with Privacy Shutter. Integrated Microphone - Intel Dual Band Wireless-AC (2x2) 8265, Bluetooth Version 4.2
- I/O Ports: 2x USB 3.0, 1x USB 3.1 Type-C 3.1, Headphone/Mic Combo Port, 4-in-1 Card Reader, HDMI, Kensington Mini-Lock Slot
- Linux Mint (Cinnamon) 64-Bit - Keyboard with Full NumberPad - Fast Charging
Extract still images from a recording
To export images at 60 frames per second from capture.mkv, create the destination directory first, then run:
mkdir -p frames
ffmpeg -i capture.mkv -vf "fps=60" -vsync 0 frames/frame_%06d.png
This writes numbered PNG files. Set the filter’s fps value to the extraction rate you need, but remember that the output cannot contain more unique captured moments than the input recording provides. If individual images are the goal, PNG is a lossless choice; if frame timing matters, keep the original recording and its timestamps as well as the extracted files.
Performance, reliability, and file-size trade-offs
- Resolution and rate multiply the workload. More pixels and more frames per second mean more capture, memory transfer, and encoding work. Reduce the region or rate when the system cannot keep pace.
- Encoder choice affects the bottleneck. The example uses CPU-based
libx264. A faster preset can reduce encoding pressure, while alternative encoders depend on what FFmpeg and your hardware support. No specific sustained FPS is guaranteed. - Check the recorder, not just the monitor. Watch FFmpeg’s frame and drop reporting or OBS statistics during the actual workload. A short successful test does not prove a long recording will sustain the same rate.
- Preserve timing when timing is evidence. Keep the source video when downstream work relies on frame timestamps; a folder of extracted images alone may not retain the recording’s timing context.
- Expect larger output at higher detail and rates. Lossless stills can consume substantial disk space. Estimate storage with a representative short test, then scale by recording duration rather than assuming a fixed file size.
- Capture behavior depends on the session. X11 display capture and Wayland portal capture have different permission and selection paths. A command working under one session does not establish that it will work under the other.
Troubleshooting common failures
FFmpeg says it cannot open the display
Check echo "$XDG_SESSION_TYPE" and echo "$DISPLAY". x11grab requires an accessible X11 display. If you are on Wayland, use OBS PipeWire rather than treating x11grab as a universal screen recorder.
Rank #4
The capture starts but shows the wrong area or fails on size
Confirm the region dimensions and any +x,y offset against the actual display. A region larger than the available area or a mistaken coordinate can select the wrong portion or fail. Try the full display dimensions first, then refine the region.
The output has fewer distinct frames than expected
Separate capture FPS from extraction FPS. Check FFmpeg’s reported frames and drops or OBS statistics. Lower the requested rate or resolution if the capture or encoder is falling behind; changing only the extraction filter cannot restore missing frames.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteOBS does not offer the expected source or display
Verify the desktop session. PipeWire screen capture is OBS’s Wayland route; XSHM and window capture are listed for Linux X11. On Wayland, complete the desktop portal selection and permission flow.
Best Value
- 12th Intel Alder Lake N95 Processor – The GMKtec G3 S Mini PC is powered by the 12th Gen Intel N95 processor with 4 cores, 4 threads, 6MB cache and a burst frequency up to 3.4GHz. Compared with N100/N5105/N5100/N5095, the N95 delivers up to 36% overall performance improvement. Perfect for routine tasks, office work, and home entertainment, this compact mini desktop is more convenient than traditional bulky PCs.
- 8GB RAM & 256GB SSD Storage – Pre-installed with 8GB DDR4 memory and a fast 256GB M.2 2242 SSD, the G3 S mini desktop offers quicker startup, smoother multitasking, and faster file transfers. Enjoy seamless performance whether you’re working on multiple applications, browsing, or streaming content.
- Rich Interfaces & Connectivity – The G3 S mini computer comes equipped with USB 3.2 (up to 10Gbps), dual HDMI 2.0 (4K@60Hz), and a 3.5mm audio jack. With support for WiFi 5, Bluetooth 5.0, and Gigabit Ethernet (RJ45 1000MbE), it connects easily with monitors, projectors, printers, office equipment, and other peripherals, making it versatile for both home and business use.
- Dual 4K Display Support – Featuring upgraded Intel UHD Graphics (up to 1000MHz), the G3 S supports 4K video playback and AV1 decoding for a smooth viewing experience. With dual HDMI outputs, you can connect two 4K@60Hz displays simultaneously, enabling efficient multitasking for work and entertainment.
- GMKtec WARRANTY - GMKtec offers a 1-year limited GMKtec's warranty for each mini PC, starting from the date of the purchase. All defects due to design and workmanship are covered. With a professional after sales team always ready to attend to your needs, you can simply relax and enjoy your mini PC.
KMS capture requires configuration or produces an unusable result
kmsgrab operates at the DRM/KMS level, so permissions, connector choice, and hardware-specific pixel mapping may matter. If you do not already understand those details for your system, switch to OBS PipeWire on Wayland or x11grab on X11.
Or skip the browser setup
If what you need is a screenshot of a webpage rather than a sequence of your Linux desktop, ScreenshotNeo is a website screenshot API and MCP server. One GET request can return an image or PDF; the following cURL example saves a WebP image:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for parameters and setup. ScreenshotNeo accepts cookie or consent banners before capture and removes 60+ known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, with response headers indicating the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents and MCP clients. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Frequently Asked Questions
Can I get 120 distinct screenshots per second by setting the export filter to 120 fps?
No. The export filter can only sample or duplicate from the frames in the recorded stream; it cannot reconstruct frames the capture did not obtain.
Does a 120 Hz monitor guarantee a 120-fps Linux recording?
No. Display refresh rate and sustained capture rate are separate; the compositor, capture route, resolution, and encoding workload also matter.
Is FFmpeg x11grab suitable for any Linux desktop session?
No. It captures an X11 display. For a typical Wayland desktop workflow, use OBS’s PipeWire screen-capture source.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

