开源固件 ESP-KVM 0.51.2 已发布。该固件可将 ESP32-P4 微控制器板转换为基于 IP 的 KVM 设备,无需在目标计算机上安装代理,即可通过浏览器访问远程计算机的屏幕、键盘和鼠标。代码使用 C 语言编写,并以 Apache 2.0 许可证发布。此版本的主要更新是增加了将目标屏幕活动记录到设备 microSD 卡的功能。
录制功能通过网页界面上的按钮启动,并将视频以 .ts 文件的形式保存到 VIDEO 目录,视频编码为 H.264。设备录制的视频流与传输给观看者的视频流相同,因此无需重新编码:在 Espressif ESP32-P4 Function EV 开发板上,录制过程中帧率保持在 21-22 fps,在目标机器上播放时帧率无损。.ts 文件可在 VLC 和 mpv 播放器中播放,即使因拔出存储卡或断电而中断,也会继续播放直至结束。长时间录制会被分割成 10 分钟的文件,并在 1 小时后停止;这两个值均可配置。即使启用了 H.264 编码,也可以通过单独的按钮将屏幕截图以 JPEG 格式保存到 SCREENSHOTS 文件夹:屏幕截图由空闲的硬件 JPEG 编码器捕获。
键盘输入和鼠标点击可以记录在视频旁边的 .srt 字幕文件中,例如“输入: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、启动菜单、设置程序和控制台。
录制、延时摄影和屏幕截图功能可通过设备场景(“录制 300”、“延时摄影 60”、“屏幕截图”)以及 Home Assistant 启动,Home Assistant 中提供了相应的开关和按钮。设备的时钟现在通过 NTP 同步,用户可以在设置中的城市列表中选择时区——此前,时区信息存储在界面隐藏的某个部分。
0.45.0 版本之后的其他变更:
- 0.46 版本新增了对 VIEWE ESP32-P4-Pi 和 Waveshare ESP32-P4-NANO-WIFI6-DB 开发板的固件构建。新固件采用 -O2 优化,部分小内存分配已移至 PSRAM,并且当任务冻结时,系统会重启并生成转储文件。
- 0.47. 现已推出 Runbook 功能——这是一种宏,可以等待文本屏幕上的短语出现或消失,并在浏览器关闭时在设备上执行。现在支持 DuckyScript 格式的脚本。新增了带有 cron 语法的调度程序,并支持向 Telegram(附带屏幕截图)或 Webhook 发送通知。
- 0.48. microSD 卡和 WiFi 模块现在可以同时工作——以前,两者都使用同一个 SDMMC 插槽。
- 0.49. Function EV 和 Waveshare ESP32-P4-ETH 开发板上的 microSD 卡总线频率现已从 4 MHz 提升至 40 MHz(读取速度约为 9 MB/s,写入速度约为 4 MB/s):该插槽的电源线不再由集成稳压器供电。通过 Web 界面加载图像的速度提升了约 50 倍,以太网传输速度达到 3,5 MB/s。新增了对旧版 BIOS 的键盘模式支持——目标机器现在可以识别单个 USB 1.1 设备(不包括鼠标或存储设备)。设备现在会报告 HDMI 模式是否超过两条 MIPI CSI 通道的带宽。
- 0.49.1. 通过以 256 KB 为单位从存储卡读取数据,目标机器从虚拟驱动器读取数据的速度已从 5,6 MB/s 提升至 9 MB/s。现在,无需重新连接 USB 即可在目标机器上看到映像更改。
- 0.50. 设备运行时可以更换 microSD 卡,即使在复制过程中取出也没关系:卡槽每五秒检查一次。修复了 MJPEG 延迟导致浏览器在静止屏幕上显示最后一个按键之前的帧的问题。
来源: opennet.ru
