Публикувано е издание ESP-KVM 0.51.2, отворен фърмуер, който преобразува платката на микроконтролера ESP32-P4 в IP-KVM с достъп до екрана, клавиатурата и мишката на отдалечен компютър чрез браузър, без необходимост от инсталиране на агент на управляваната машина. Кодът е написан на C и се разпространява под лицензия Apache 2.0. Основната промяна в изданието е записването на текущото съдържание на екрана на целевото устройство на карта microSD.
Записването се включва с бутон в уеб интерфейса и се запазва в папката VIDEO като .ts файлове с H.264 видео. Устройството записва същия поток, който предоставя на зрителите, затова повторното кодиране не е необходимо: на платката Espressif ESP32-P4 Function EV, когато видеото се възпроизвежда на целевата машина, честотата на кадрите по време на записа остава на нивото от 21-22 кадъра в секунда без загуби. .ts файлът може да се възпроизвежда в VLC и mpv, а прекъснатият от изваждането на картата или прекъсване на захранването се отваря до момента на прекъсването. Дългият запис се разделя на файлове по 10 минути и се спира след един час; и двете стойности могат да се настроят. С отделен бутон се запазва снимка на екрана в JPEG формат в папка SCREENSHOTS, дори при работа с кодека H.264: за снимката се използва неактивният хардуерен JPEG кодер.
Натисканията на клавишите и кликванията на мишката могат да се записват в файл със субтитри .srt до видеото — под формата на редове „Typed: root“, „Ctrl+Alt+Delete“, „Ляв клик (812, 440)“. По подразбиране записаният текст се заменя с точки, но по желание може изцяло да бъде запазен. Разредката се взима от настройките на целевата клавиатура.
Добавен е режим на видеорегистратор, който работи по същия принцип, както автомобилният: устройството постоянно запазва последните минути на екрана и ги записва заедно с последващите секунди, когато се случва нещо — екранът става едноцветен (характерно за екрана на аварийно спиране), появява се проследяваща фраза, индикаторът за захранване ATX угасва или операторът натиска бутон. Полученото видео се преобразува в MP4 с глави за всяко събитие и при включени известия се изпраща в Telegram като възможност за възпроизвеждане в чата.
Миналото може да се съхранява по два начина: в оперативната памет PSRAM, където то не заема място на картата до настъпването на събитието, или на самата карта с къси фрагменти и изтриване на остарелите — вторият метод работи и на платки с ревизия на чипа до 3.0, където след стартиране на кодера H.264 остава около 3 MB свободен PSRAM в сравнение с 11 MB на новите ревизии.
Появи се режим таймлапс: запазва се един кадър на зададен интервал от секунди, възпроизвеждането става със скорост 25 кадъра в секунда, следователно час работа при интервал от 10 секунди се побира в 14 секунди видео. Записите и снимките са събрани в отделна панел на интерфейса, от където могат да се изтеглят, изтриват и възпроизвеждат без предварително изтегляне на целия файл: MP4 се отваря със стандартния плейър на браузъра, а .ts се разбива на кадри в самата конзола и се декодира със същия декодер H.264, с който е живата картинка, със поддръжка на превъртане и показване на субтитри. За превъртане на страната на устройството е реализирана поддръжка на HTTP диапазони.
Реализиран е текстов търсене на екрана. По време на записа устройството на всеки три секунди чете екрана като набор от символи и запазва прочетеното в файл до видеото; в панела за записи търсенето по фраза показва, кога е била на екрана, и възпроизвежда записа от този момент. Четат се само екрани, нарисувани от генератора на знаци — BIOS, меню за зареждане, програма за инсталиране, конзола.
Запис, ускорено заснемане и снимка на екрана могат да се стартират от сценарии на устройството ("record 300", "timelapse 60", "screenshot") и от Home Assistant, където има превключвател и бутони за това. Часовникът на устройството сега се синхронизира по NTP, а часовата зона се избира от списък с градове в настройките — преди това тя се съхраняваше в раздел, който интерфейсът не показваше.
Други промени в версиите, излезли след 0.45.0:
- 0.46. Добавени са сборки за платки VIEWE ESP32-P4-Pi и Waveshare ESP32-P4-NANO-WIFI6-DB. Фърмуерът е започнал да се компилира с оптимизация -O2, малките разпределения на паметта са преместени в PSRAM, а зависналата задача вече води до рестартиране със запазване на дъмпа.
- 0.47. Появиха се сценарии (runbooks) — макроси, които могат да изчакат появата или изчезването на фраза на текстовия екран и се изпълняват на самото устройство при затворен браузер; приемат се скриптове във формат DuckyScript. Добавен е планировчик със синтаксис cron и уведомления в Telegram (с екранна снимка) или на webhook.
- 0.48. Картата microSD и модулът WiFi заработиха едновременно — по-рано и двете използваха един слот SDMMC.
- 0.49. Картата microSD на платките Function EV и Waveshare ESP32-P4-ETH работи на честота на шина 40 MHz вместо 4 (четене около 9 MB/s, запис около 4 MB/s): не беше включено захранването на линиите на слота от вграден стабилизатор. Зареждането на образа през уеб интерфейса е ускорено приблизително 50 пъти, до 3.5 MB/s по Ethernet. Добавен е режим на клавиатура за стари BIOS — целевата машина вижда единствено устройство с USB 1.1 скорост, без мишка и носител. Устройството съобщава, ако режимът HDMI надвиши пропускателната способност на двата линии MIPI CSI.
- 0.49.1. Четенето на виртуалния носител от целевата машина е ускорено от 5.6 до 9 MB/s благодарение на четенето от картата на блокове по 256 KB. Смяната на образа стана видима за целевата машина без повторно свързване на USB.
- 0.50. Картата microSD може да се сменя на работещото устройство, включително да бъде извадена по време на копиране: слотът се проверява на всеки пет секунди. Коригирано е забавянето в MJPEG, поради което на неподвижния екран браузерът показваше кадър, предшестващ последния натиск на клавиш.
Източник: opennet.ru
