ESP-KVM 0.51.0 Debuts: IP-KVM Firmware Adds Recording

Published release of ESP-KVM 0.51.2, an open firmware that turns the ESP32-P4 microcontroller board into an IP-KVM with screen access, keyboard and mouse of a remote computer through a browser, without installing an agent on the managed machine. The code is written in C and is distributed under the Apache 2.0 license. The main change in the release is the recording of what is happening on the target screen to the microSD card of the device itself.

Recording is enabled by a button in the web interface and saved to the VIDEO directory in the form of .ts files with H.264 video. The device writes the same stream that it sends to viewers, so re-encoding is not required: on the Espressif ESP32-P4 Function EV board, when playing video on the target machine, the frame rate during recording remained at 21-22 per second without loss. The .ts file plays in VLC and mpv, and if interrupted by removing the card or turning off the power, it opens until it breaks. A long recording is divided into 10-minute files and stops after an hour; both values ​​are configurable. A separate button saves a screenshot in JPEG format to the SCREENSHOTS folder, including when the H.264 codec is running: the idle hardware JPEG encoder is used for the image.

Keystrokes and mouse clicks can be recorded in the .srt subtitle file next to the video – in the form of the lines “Typed: root”, “Ctrl+Alt+Delete”, “Left click (812, 440)”. By default, the typed text is replaced with dots; if necessary, it is saved in full. The layout is taken from the settings of the target keyboard.

A DVR mode has been added, which works on the same principle as a car one: the device constantly keeps the last minutes of the screen and saves them along with the following seconds, when something happens – the screen becomes monochromatic (typical of an emergency stop screen), a tracked phrase appears, the ATX power indicator goes off or the operator presses a button. The resulting video is converted into MP4 with chapters for each event, and with notifications turned on, it is sent to Telegram as a video played in the chat.

You can store the past in two ways: in PSRAM, where it does not take up anything on the card until

/Reports, release notes, official announcements.