{"id":183399,"date":"2026-09-18T04:53:38","date_gmt":"2026-09-18T02:53:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/news\/vypusk-esp-kvm-0-51-0-otkrytoj-proshivki-ip-kvm-s-zapisyu-ekrana-na-microsd"},"modified":"2026-09-18T04:53:42","modified_gmt":"2026-09-18T02:53:42","slug":"esp-kvm-0-51-0-released-with-open-source-ip-kvm-firmware-and-microsd-screen-recording","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/esp-kvm-0-51-0-released-with-open-source-ip-kvm-firmware-and-microsd-screen-recording","title":{"rendered":"Release of ESP-KVM 0.51.0, the open firmware for IP-KVM, with screen recording to microSD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The release of ESP-KVM 0.51.2 has been published, an open firmware that turns the ESP32-P4 microcontroller board into an IP-KVM, providing access to the screen, keyboard, and mouse of a remote computer through a browser, without the need to install an agent on the managed machine. The code is written in C and distributed under the Apache 2.0 license. The main change in this release is the ability to record the target screen activity to a microSD card on the device itself.     <\/p>\n<p>Recording is activated by a button in the web interface and saved in the VIDEO directory as .ts files with H.264 video. The device records the same stream it delivers to viewers, so re-encoding is unnecessary: on the Espressif ESP32-P4 Function EV board, when playing video on the target machine, the frame rate during recording remained at 21-22 frames per second without loss. The .ts file can be played in VLC and mpv, and if interrupted by removing the card or power loss, it opens up to the moment of the interruption. Long recordings are split into 10-minute files and stop after an hour; both values are adjustable. A separate button allows saving a screenshot in JPEG format in the SCREENSHOTS folder, including when using the H.264 codec: a dormant hardware JPEG encoder is utilized for the screenshot.    <\/p>\n<p>Keystrokes and mouse clicks can be recorded into a .srt subtitle file next to the video \u2014 formatted as lines like \u2018Typed: root\u2019, \u2018Ctrl+Alt+Delete\u2019, \u2018Left click (812, 440)\u2019. By default, the typed text is replaced with dots, but it can be fully preserved if needed. The layout is taken from the target keyboard settings.      <\/p>\n<p>A DVR mode has been added, functioning similarly to a car dashcam: the device continually retains the last minutes of the screen and saves them along with the subsequent seconds when something happens \u2014 the screen turns monochrome (typical for an emergency stop screen), a trackable phrase appears, the ATX power indicator dims, or the operator presses a button. The resulting clip is converted into MP4 with chapters for each event, and if notifications are enabled, it is sent to Telegram as a playable video in the chat.     <\/p>\n<p>Past events can be stored in two ways: in PSRAM, where it occupies no space on the card until the event occurs, or on the card itself in short fragments with outdated ones being removed \u2014 the second method also works on boards with chip revisions up to 3.0, where about 3 MB of free PSRAM remains after launching the H.264 encoder, compared to 11 MB on newer revisions.    <\/p>\n<p>A timelapse mode has been introduced: one frame is saved every specified number of seconds, replaying at a speed of 25 frames per second, so an hour of work with a 10-second interval fits into 14 seconds of video. Recordings and snapshots are gathered in a separate panel of the interface, from which they can be downloaded, deleted, and played back without initially loading the entire file: MP4 opens in the browser's default player, while .ts is parsed into frames in the console itself and decoded by the same H.264 decoder used for the live image, with rewind and subtitle display. For rewinding on the device side, HTTP range support has been implemented.      <\/p>\n<p>Text search on the screen has been implemented. During recording, the device reads the screen as a set of characters every three seconds and saves the retrieved data to a file next to the video; the recording panel allows searching for phrases to show when they were on the screen and plays the recording from that moment. Only screens rendered by the character generator are read \u2014 BIOS, boot menus, installation programs, console.    <\/p>\n<p>You can start recording, time-lapse capture, and screenshots from device scripts (\"record 300\", \"timelapse 60\", \"screenshot\") and from Home Assistant, which has a switch and buttons for these actions. The device's clock is now synchronized via NTP, and the time zone is selected from a list of cities in the settings \u2014 previously, it was stored in a section that the interface did not display.      <\/p>\n<p>Other changes in releases that came after 0.45.0:  <\/p>\n<ul>\n<li class=\"l\"> 0.46. Builds have been added for VIEWE ESP32-P4-Pi and Waveshare ESP32-P4-NANO-WIFI6-DB boards. The firmware is now being compiled with optimization -O2, minor memory allocations have been moved to PSRAM, and a hanging task now leads to a reboot while saving the dump.\n<li class=\"l\"> 0.47. Scripts (runbooks) have been introduced \u2014 macros that can wait for the appearance or disappearance of a phrase on the text screen and are executed on the device itself with the browser closed; scripts in DuckyScript format are accepted. A scheduler with cron syntax has been added, along with notifications in Telegram (with a screenshot) or through webhook.\n<li class=\"l\"> 0.48. The microSD card and WiFi module now work simultaneously \u2014 earlier, both used the same SDMMC slot.\n<li class=\"l\">0.49. The microSD card on the Function EV and Waveshare ESP32-P4-ETH boards now operates at a bus frequency of 40 MHz instead of 4 (reading about 9 MB\/s, writing about 4 MB\/s): power to the slot lines from the built-in regulator was not enabled. The image upload via the web interface has been accelerated by about 50 times, up to 3.5 MB\/s over Ethernet. A keyboard mode for old BIOS has been added \u2014 the target machine sees a single device at USB 1.1 speed, without a mouse and storage. The device reports if the HDMI mode exceeds the bandwidth of the two MIPI CSI lines.\n<li class=\"l\">0.49.1. Reading from the virtual storage by the target machine has been sped up from 5.6 to 9 MB\/s due to block reading from the card in 256 KB chunks. Changing the image is now visible to the target machine without having to reconnect USB.\n<li class=\"l\">0.50. The microSD card can be swapped while the device is running, even if removed in the middle of copying: the slot is checked every five seconds. The MJPEG delay has been fixed, which previously caused the browser to display a frame preceding the last key press on a static screen.  <\/ul>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=66301\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a ESP-KVM 0.51.2, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 ESP32-P4 \u0432 IP-KVM \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u044d\u043a\u0440\u0430\u043d\u0443, \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435 \u0438 \u043c\u044b\u0448\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache 2.0. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 &#8212; \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0446\u0435\u043b\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 microSD \u0441\u0430\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-183399","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a ESP-KVM 0.51.2, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 ESP32-P4 \u0432 IP-KVM \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u044d\u043a\u0440\u0430\u043d\u0443, \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435 \u0438 \u043c\u044b\u0448\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Alexander Kovalev\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/esp-kvm-0-51-0-released-with-open-source-ip-kvm-firmware-and-microsd-screen-recording\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a ESP-KVM 0.51.0, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 IP-KVM , \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430 microSD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a ESP-KVM 0.51.2, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 ESP32-P4 \u0432 IP-KVM \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u044d\u043a\u0440\u0430\u043d\u0443, \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435 \u0438 \u043c\u044b\u0448\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/esp-kvm-0-51-0-released-with-open-source-ip-kvm-firmware-and-microsd-screen-recording\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-18T02:53:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-18T02:53:42+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Release of ESP-KVM 0.51.0, open firmware IP-KVM, with screen recording on microSD | ProHoster","description":"The release of ESP-KVM 0.51.2 has been published, an open firmware that turns the microcontroller board ESP32-P4 into an IP-KVM with access to the screen, keyboard, and mouse of a remote computer via a browser, without the need to install an agent.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/esp-kvm-0-51-0-released-with-open-source-ip-kvm-firmware-and-microsd-screen-recording","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a ESP-KVM 0.51.0, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 IP-KVM , \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0430 microSD | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a ESP-KVM 0.51.2, \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 ESP32-P4 \u0432 IP-KVM \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u044d\u043a\u0440\u0430\u043d\u0443, \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435 \u0438 \u043c\u044b\u0448\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/esp-kvm-0-51-0-released-with-open-source-ip-kvm-firmware-and-microsd-screen-recording","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-09-18T02:53:38+00:00","article:modified_time":"2026-09-18T02:53:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"183399","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-09-22 16:20:59","updated":"2026-09-22 16:20:59","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/183399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=183399"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/183399\/revisions"}],"predecessor-version":[{"id":183400,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/183399\/revisions\/183400"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=183399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=183399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=183399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}