Bol released ESP-KVM 0.51.2, an open-source firmware that transforms the ESP32-P4 microcontroller board into an IP-KVM enabling access to the screen, 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 primary feature of this release is the recording of the target screen onto the microSD card of the device.
Recording is activated by a button in the web interface and is saved in the VIDEO directory as .ts files with H.264 video. The device captures the same stream it delivers to viewers, eliminating the need for re-encoding: on the Espressif ESP32-P4 Function EV board, the frame rate during recording remained at 21-22 per second without loss when playing back video on the target machine. The .ts file can be played in VLC and mpv, and if interrupted by card removal or power disconnection, it opens up to the point of disruption. Long recordings are divided into 10-minute files and stop after an hour; both values are adjustable. An additional button saves a screenshot in JPEG format to the SCREENSHOTS folder, including when using the H.264 codec: a dormant hardware JPEG encoder is utilized for the snapshot.
Key presses and mouse clicks can be recorded in a subtitle file .srt alongside the video — in the format of lines like "Typed: root", "Ctrl+Alt+Delete", "Left click (812, 440)". By default, the typed text is replaced with dots, but it can be fully preserved if needed. The layout is taken from the settings of the target keyboard.
A video recorder mode has been added, functioning similarly to a car's: the device continuously retains the last minutes of the screen and saves them along with subsequent seconds when something occurs — the screen turns solid (characteristic of an emergency stop screen), a tracked phrase appears, the ATX power indicator turns off, or the operator presses a button. The resulting clip is converted to MP4 with chapters for each event, and when notifications are enabled, it is sent to Telegram as a playable video in the chat.
Minulosť môžete uchovávať dvoma spôsobmi: v operačnej pamäti PSRAM, kde nezaberá miesto na karte až do okamihu udalosti, alebo na samotnej karte krátkymi fragmentmi s odstraňovaním zastaraných — druhý spôsob funguje aj na doskách s revíziou čipu do 3.0, kde po spustení kódovača H.264 zostáva voľných približne 3 MB PSRAM oproti 11 MB na nových revíziách.
Objavil sa režim časozberného videa: jeden snímok sa uchováva raz za zadaný počet sekúnd, prehrávanie prebieha rýchlosťou 25 snímkov za sekundu, takže hodina práce pri intervale 10 sekúnd sa zmestí do 14 sekúnd videa. Záznamy a snímky sú zhromaždené v samostatnej paneli rozhrania, odkiaľ ich môžete stiahnuť, odstrániť a prehrávať bez predbežného načítania súboru v celku: MP4 sa otvára štandardným prehrávačom prehliadača, a .ts sa rozoberá na snímky v samotnej konzole a dekóduje tým istým dekóderom H.264, ako aj živý obraz, s posúvaním a zobrazením titulkov. Na straně zařízení je implementovaná podpora rozsahov HTTP pre posúvanie.
Implementované vyhľadávanie podľa textu na obrazovke. Počas nahrávania zariadenie každé tri sekundy prečíta obrazovku ako množinu znakov a uloží prečítané do súboru vedľa videa; v paneli záznamov vyhľadávanie podľa frázy ukazuje, kedy bola na obrazovke, a prehráva záznam od tohto okamihu. Čítajú sa len obrazovky, ktoré vytvoril generátor znakov — BIOS, zavádzacie menu, inštalačný program, konzola.
Nahrávanie, zrýchlené snímanie a snímok obrazovky je možné spustiť zo skriptov zariadenia („record 300“, „timelapse 60“, „screenshot“) a z Home Assistant, kde je na to prepínač a tlačidlá. Hodiny zariadenia sa teraz synchronizujú pomocou NTP a časové pásmo sa vyberá zo zoznamu miest v nastaveniach — predtým sa uchovávalo v sekcii, ktorú rozhranie nezobrazovalo.
Ďalšie zmeny vo vydaniach, ktoré vyšli po 0.45.0:
- 0.46. Pridané zostavy pre dosky VIEWE ESP32-P4-Pi a Waveshare ESP32-P4-NANO-WIFI6-DB. Firmvér sa začal zhromažďovať s optimalizáciou -O2, drobné alokácie pamäti boli presunuté do PSRAM, a visíaca úloha teraz vedie k reštartu so zachovaním dumpu.
- 0.47. Objavili su se scenariji (runbooks) — makronaredbe koje mogu čekati na pojavu ili nestanak fraze na tekstualnom ekranu i izvršavaju se na samom uređaju kada je pretraživač zatvoren; prihvaćeni su skripti u DuckyScript formatu. Dodan je planer sa cron sintaksom i obavijesti u Telegramu (s slikom ekrana) ili na webhook.
- 0.48. microSD kartica i WiFi modul su radili istovremeno — ranije su oba koristila jedan SDMMC slot.
- 0.49. microSD kartica na pločama Function EV i Waveshare ESP32-P4-ETH počela je raditi na frekvenciji magistrale od 40 MHz umesto 4 (čitavanje oko 9 MB/s, pisanje oko 4 MB/s): napajanje linija slota nije bilo uključeno od ugrađenog stabilizatora. Učitavanje slike kroz web sučelje ubrzano je otprilike 50 puta, na 3,5 MB/s putem Ethernet-a. Dodan je način rada tipkovnice za stari BIOS — ciljni uređaj vidi jedini uređaj pri USB 1.1 brzini, bez miša i uređaja za skladištenje. Uređaj obaveštava ako HDMI način premašuje propusnost dviju MIPI CSI linija.
- 0.49.1. Čitanje virtualnog skladišta na ciljnom uređaju ubrzano je sa 5,6 na 9 MB/s zahvaljujući čitanju sa kartice u blokovima od 256 KB. Promena slike postala je vidljiva ciljnom uređaju bez ponovnog povezivanja USB-a.
- 0.50. microSD karticu možete menjati na radu uređaju, uključujući i vađenje tokom kopiranja: slot se provjerava svake pet sekundi. Ispravljena je kašnjenje u MJPEG-u, zbog čega je na nepomičnom ekranu pretraživača prikazivao okvir koji je prethodio poslednjem pritisku na dugme.
Zdroj: opennet.ru
