Skip to content

How to increase FPS? FPS is limited to monitor Frame Rate #215

@DavraYoung

Description

@DavraYoung

General information:

  • OS name: Windows 10 Pro
  • OS version: 19043.1889/21H1
  • OS architecture: 64 bits
  • Resolutions:
    • Monitor 1: 3840x2160 60Hz
    • Monitor 2: 1920x1080 60Hz
  • Python version: 3.7.0
  • MSS version: 6.1.0
  • Videocard: Gigabyte 3080ti
  • CPU: AMD Ryzen 7 5800x

Description

I try to use MSS library to capture screen game on my Windows PC, however capture frame rates are not getting higher than 60FPS.
Although game is running on 160 FPS, MSS is limited to only 60.

I tried:

  1. Changing Monitor Framerate to 30 and mss fps also dropped to 30.
  2. Changing Monitor resolution, nothing changed
  3. Changing size of screen capture (Region of Interest), it did not change FPS

So I suspect, the problem is not Hardware related and limitation comes from software.

Code

    width = 512 # roi
    height = 512  # roi
    mon = {
        # "left": int(3840 / 2 - width / 2),
        # "top": int(2160 / 2 - height / 2),
        "left": int(1920 / 2 - width / 2),
        "top": int(1080 / 2 - height / 2),
        "width": width,
        "height": height,
    }

    sct = mss()
    fps = [i for i in range(30)]
    index = 0
    prev_bytes = None
    while True:
        if (
            not disabed_capture
        ):
            start_time = time.time()
            _bytes = sct.grab(mon)
            if prev_bytes is not None and _bytes == prev_bytes:
                print("SAME!")
                continue
            prev_bytes = _bytes
            frame = np.array(_bytes)
            queue.put([time.time(), frame])
            index = (index + 1) % len(fps)
            fps[index] = 1 / (time.time() - start_time)
            if index % 30 == 0:
                print("SCREENSHOT FPS: ", sum(fps) / len(fps))

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions