simple and efficient screen recording utility for Windows

Related tags

Utilities wcap
Overview

wcap

Simple and efficient screen recording utility for Windows.

Get latest binary here: wcap.exe

  • press Ctrl + PrintScreen to start recording monitor (where mouse cursor currently is positioned)
  • press Ctrl + Win + PrintScreen to start recording currently active window
  • press any of previous combinations to stop recording
  • right click on tray icon to change settings

Info

wcap uses Windows.Graphics.Capture API available since Windows 10 version 1903, May 2019 Update (19H1) to capture contents of window or whole monitor. Captured texture is submitted to Media Foundation to encode video to mp4 file with hardware accelerated H264 codec. Using capture from compositor and hardware accelerated encoder allows it to consume very little CPU and memory.

You can choose in settings to capture only client area or full size of window - client area will not include title bar and borders for standard windows style. Recorded video size is determined by initial window size.

Video is encoded with H264 codec using Media Foundation API. By default hardware encoder is preferred, but you can disable it in settings - then video will be encoded using Microsoft Media Foundation H264 software encoder. It will be automatically used in case GPU/driver does not provide hardware accelerated encoder. You might want to explicitly use software encoder on older GPU's as their hardware encoder quality is not so great.

Recorded mp4 file can be set to use fragmented mp4 format in settings. Fragmented mp4 file does not require "finalizing" it. Which means that in case application, or GPU drvier crashes or you run out of disk space, the partial mp4 file will be valid for playback. The disadvantage of fragmented mp4 file is that it is a bit larger than normal mp4 format, and seeking is slower.

You can use settings dialog to restrict max resolution of video - captured image from monitor or window will be scaled down to keep aspect ratio if you set any of max width/height settings to non-zero value. Similarly framerate of capture can be reduced to limit maximum amount of frames per second. Setting it to zero will use compositor framerate which is typically monitor refresh rate. Lower video framerate will give higher quality video for same bitrate and reduced GPU usage. If you notice too many dropped frames during recording, try reducing video resolution and framerate.

Capture of mouse cursor in video can be disabled when using Windows 10 version 2004, May 2020 Update (20H1) or newer.

Building

To build the binary from source code, have Visual Studio 2019 installed, and simply run build.cmd.

Future plans

  • Capture video from fixed position rectangle on screen
  • Allow to set max file size or duration of recording
  • Use WASAPI loopback recording to capture audio and encode using AAC
  • Maybe allow to choose HEVC codec? Could be useful for recording in HDR 10-bit format

License

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

Issues
  • Latest version records a green screen

    Latest version records a green screen

    Latest version records an empty green video, and a second after I press the shortcut to stop recording, the program exits. I don't know if this was introduced in this particular version, cause I've missed a couple of updates.

    This is on a Thinkpad with Windows 11, Intel GPU HD4600, Core i5 4300M

    I tried both the provided binary, and also built it myself.

    opened by immortalx74 10
  • Incorrect detection of Windows version

    Incorrect detection of Windows version

    I was trying to run this, and got this error: image

    My Windows version: image

    I am definitely meeting the requirement stated. I altered Capture_IsSupported to simply return TRUE and that prevents the error but the program still doesn't appear to run; I've just hidden the error.

    I don't know enough about C++ to be able to print out dwMajorVersion and dwBuildNumber to the command line. Apparently, adding #include <stdio.h> at the top of the file isn't enough to make printf work.

    opened by naikrovek 5
  • Audio via Microphone capture

    Audio via Microphone capture

    Hi,

    Is audio capture via microphone a planned feature? wcap does not appear to record from my attached microphone, but it does capture system audio.

    Thanks

    opened by JesseRMeyer 1
  • Fixed build script when trying to compile after invoking VsDevCmd.bat…

    Fixed build script when trying to compile after invoking VsDevCmd.bat…

    … instead of vcvarsall.bat.

    Calling “VsDevCmd.bat -arch=x64 -host_arch=x64” does not set the environment variable %Platform% unlike “vcvarsall.bat x64”. %VSCMD_ARG_TGT_ARCH% is defined when invoking both batch files.

    opened by VincentHebert 0
  • Capturing active window results in empty files

    Capturing active window results in empty files

    Hi there, first let me thank you for this amazing tool :)

    While the modes capturing the monitor and rectangle work, I've noticed the "active window" mode creates 0-byte files on my system.

    If there's anything I can do to help debug this issue, let me know!

    Microsoft Windows [Version 10.0.19043.1415]
    

    Cheers

    opened by jtconsol 4
  • WCap does not record what my monitor renders.

    WCap does not record what my monitor renders.

    In particular, when recording both window & monitor via Neverwinter Nights Enhanced Edition, I cannot see my cursor while recording. While the recorded video shows it, it does not actually capture what is on my screen.

    Link to issue here.

    opened by MarleVVLL 3
Owner
Mārtiņš Možeiko
Mārtiņš Možeiko
ByteCopy , or BCP, intends to copy files accurately (down to the bytes) in a simple , safe and efficient manner.

ByteCopy v3.6 About ByteCopy , or BCP, intends to copy files accurately (down to the bytes) in a simple , safe and efficient manner. It's functionalit

A.P. Jo. 16 Jun 22, 2022
libmorse - C library (and utility) for generating Morse code.

libmorse - C library (and utility) for generating Morse code. Library to generate and play morse code. Needs ALSA for audio playout. The intent here i

Kalopa Robotics 5 Nov 2, 2021
C language utility library

versatile and easy to use C language utility library with functions and macros commonly used in various applications

Tilen Majerle 36 May 30, 2022
A small utility to set the clock on a Hayes Stack Chronograph over its serial port.

chronosync A small utility to set the clock on a Hayes Stack Chronograph over its serial port. Synopsis chronosync [-d] [-s serial speed] <serial devi

joshua stein 1 Oct 1, 2021
A little utility to look for updates on Gentoo written in C++

A little utility to look for updates on Gentoo written in C++

BrayanMS 1 Oct 26, 2021
C implementation of C++ Utility functions Integer Comparison Macros

C implementation of C++ Utility functions Integer Comparison Macros

Robert C. Seacord 15 May 27, 2022
A simple Windows kernel rootkit.

Venom RootKit A simple windows rootkit that I have wrote, In order to explore a bit about the world of rootkits and windows kernel in general. The Ven

Amit Schendel 49 Jun 20, 2022
the checkra1n set of tools targeting bare metal, Linux and Windows

Universal toolchain Low-effort cross-compiling for the masses. What's Universal toolchain? It's a collection of sysroots and shell scripts in such a w

null 62 May 27, 2022
This project aims to facilitate debugging a kernel driver in windows by adding support for a code change on the fly without reboot/unload, and more!

BSOD Survivor Tired of always telling yourself when you got a BSOD that what if I could just return to the caller function which caused the BSOD, and

Ido Westler 142 Jun 20, 2022
Orbit, the Open Runtime Binary Instrumentation Tool, is a standalone C/C++ profiler for Windows and Linux

Orbit, the Open Runtime Binary Instrumentation Tool, is a standalone C/C++ profiler for Windows and Linux. Its main purpose is to help developers visualize the execution flow of a complex application.

Google 2.6k Jun 30, 2022
WinMerge is an Open Source differencing and merging tool for Windows.

WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.

null 3k Jun 26, 2022
An asynchronous directory file change watcher module for Windows, macOS and Linux wrapped for V

A V module for asynchronously watching for file changes in a directory. The module is essentially a wrapper for septag/dmon. It works for Windows, macOS and Linux.

null 15 Jun 23, 2022
Find patterns of vulnerabilities on Windows in order to find 0-day and write exploits of 1-days. We use Microsoft security updates in order to find the patterns.

Back 2 the Future Find patterns of vulnerabilities on Windows in order to find 0-day and write exploits of 1-days. We use Microsoft security updates i

SafeBreach Labs 90 Jun 14, 2022
Windows kernel hacking framework, driver template, hypervisor and API written on C++

Windows kernel hacking framework, driver template, hypervisor and API written on C++

Александр 1.2k Jun 29, 2022
Play Doh Windows ACL Tools

PDAcl 是一个支持Windows活动目录扩展权限设置、Windows活动目录常规权限设置、Windows服务权限设置的命令工具。

倾旋 58 Jun 25, 2022
Exploit for the RpcEptMapper registry key permissions vulnerability (Windows 7 / 2088R2 / 8 / 2012)

Perfusion On Windows 7, Windows Server 2008R2, Windows 8, and Windows Server 2012, the registry key of the RpcEptMapper and DnsCache (7/2008R2 only) s

Clément Labro 387 Jun 20, 2022
CVE-­2021­-1732 Microsoft Windows 10 本地提权漏 研究及Poc/Exploit开发

CVE-2021-1732 CVE-2021-1732 Microsoft Windows 10 本地提权漏 研究及Poc/Exploit开发 受影响系统及应用版本 Windows Server, version 20H2 (Server Core Installation) Windows 10

null 74 Jun 13, 2022
Windows user-land hooks manipulation tool.

MineSweeper Windows user-land hooks manipulation tool. Highlights Supports any x64/x86 Windows DLL (actually, any x64/x86 Windows PE for that matter)

Arsenii Pustovit 126 Jun 15, 2022
Windows x64 rootkit

P4tch3r Windows x64 rootkit (tested on Windows 7) It's PoC of patching NtTerminateProcess function by just overwriting instructions catching arguments

null 8 Nov 23, 2021