ESP-KVM 0.51.2, một phần mềm mã nguồn mở biến bo mạch vi điều khiển ESP32-P4 thành một KVM dựa trên IP với khả năng truy cập màn hình, bàn phím và chuột của máy tính từ xa thông qua trình duyệt, mà không cần cài đặt phần mềm trung gian trên máy mục tiêu, đã được phát hành. Mã nguồn được viết bằng ngôn ngữ C và được phân phối theo giấy phép Apache 2.0. Thay đổi chính trong phiên bản này là khả năng ghi lại hoạt động màn hình của máy mục tiêu vào thẻ nhớ microSD của thiết bị.
Quá trình ghi hình được bắt đầu bằng một nút trên giao diện web và được lưu vào thư mục VIDEO dưới dạng các tệp .ts với định dạng video H.264. Thiết bị ghi lại cùng một luồng video mà nó cung cấp cho người xem, do đó không cần mã hóa lại: trên bo mạch Espressif ESP32-P4 Function EV, tốc độ khung hình trong quá trình ghi vẫn duy trì ở mức 21-22 khung hình/giây mà không bị mất khi phát lại trên máy đích. Tệp .ts có thể phát trong VLC và mpv, và nếu bị gián đoạn do tháo thẻ hoặc tắt nguồn, nó sẽ tiếp tục phát cho đến hết. Các bản ghi dài được chia thành các tệp 10 phút và dừng sau một giờ; cả hai giá trị này đều có thể cấu hình được. Một nút riêng biệt sẽ lưu ảnh chụp màn hình ở định dạng JPEG vào thư mục SCREENSHOTS, ngay cả khi codec H.264 được bật: bộ mã hóa JPEG phần cứng ở chế độ chờ được sử dụng để chụp ảnh màn hình.
Các thao tác gõ phím và nhấp chuột có thể được ghi lại trong tệp phụ đề .srt bên cạnh video, dưới dạng các chuỗi như "Đã gõ: root," "Ctrl+Alt+Delete," và "Nhấp chuột trái (812, 440)." Theo mặc định, văn bản đã gõ được thay thế bằng dấu chấm; toàn bộ văn bản có thể được lưu nếu muốn. Bố cục được lấy từ cài đặt bàn phím mục tiêu.
Chế độ camera hành trình đã được thêm vào, hoạt động dựa trên nguyên lý tương tự như camera hành trình trên ô tô: thiết bị liên tục giám sát vài phút cuối của màn hình và lưu lại cùng với những giây tiếp theo khi có sự kiện xảy ra — màn hình chuyển sang trạng thái sáng liên tục (điển hình cho màn hình dừng khẩn cấp), một cụm từ được giám sát xuất hiện, đèn báo nguồn ATX tắt hoặc người vận hành nhấn một nút. Video thu được sẽ được chuyển đổi sang định dạng MP4 với các chương cho mỗi sự kiện, và nếu thông báo được bật, video sẽ được gửi đến Telegram dưới dạng video phát trong cuộc trò chuyện.
Có hai cách để lưu trữ quá khứ: trong PSRAM, nơi nó không chiếm dung lượng trên thẻ cho đến khi sự kiện xảy ra, hoặc trên chính thẻ dưới dạng các đoạn ngắn với các đoạn lỗi thời bị xóa. Phương pháp thứ hai cũng hoạt động trên các bo mạch có phiên bản chip lên đến 3.0, trong đó sau khi khởi chạy bộ mã hóa H.264, còn lại khoảng 3 MB PSRAM trống, so với 11 MB trên các phiên bản mới hơn.
Chế độ quay tua nhanh đã được thêm vào: một khung hình được lưu lại sau mỗi khoảng thời gian được chỉ định và phát lại ở tốc độ 25 khung hình/giây, do đó, một giờ quay phim với khoảng thời gian 10 giây có thể được ghi lại trong 14 giây video. Các bản ghi và ảnh được sắp xếp trong một bảng giao diện riêng biệt, nơi chúng có thể được tải xuống, xóa và phát lại mà không cần phải tải xuống toàn bộ tệp trước. Các tệp MP4 được mở bằng trình phát tích hợp của trình duyệt, trong khi các tệp .ts được phân tích thành các khung hình trong bảng điều khiển và được giải mã bằng cùng một bộ giải mã H.264 như video trực tiếp, có chức năng tua lại và phụ đề. Hỗ trợ phạm vi HTTP được triển khai để tua lại ở phía thiết bị.
Chức năng tìm kiếm văn bản trên màn hình đã được triển khai. Trong khi ghi hình, thiết bị sẽ đọc màn hình dưới dạng một tập hợp ký tự cứ sau ba giây và lưu những gì đã đọc vào một tệp tin bên cạnh video. Trong bảng ghi hình, chức năng tìm kiếm cụm từ sẽ hiển thị thời điểm cụm từ đó xuất hiện trên màn hình và phát lại bản ghi từ điểm đó. Chỉ những màn hình được tạo ra bởi bộ tạo ký tự mới được đọc — BIOS, menu khởi động, chương trình thiết lập và bảng điều khiển.
Chức năng ghi hình, quay video tua nhanh và chụp ảnh màn hình có thể được khởi chạy từ các kịch bản của thiết bị ("ghi hình 300," "quay video tua nhanh 60," "chụp ảnh màn hình") và từ Home Assistant, vốn có công tắc và các nút bấm cho các chức năng này. Đồng hồ của thiết bị hiện được đồng bộ hóa qua NTP, và múi giờ có thể được chọn từ danh sách các thành phố trong phần cài đặt — trước đây, thông tin này được lưu trữ trong một phần ẩn khỏi giao diện.
Những thay đổi khác trong các phiên bản sau 0.45.0:
- 0.46. Đã thêm bản dựng cho bo mạch VIEWE ESP32-P4-Pi và Waveshare ESP32-P4-NANO-WIFI6-DB. Phần mềm hiện được biên dịch với tối ưu hóa -O2, các phân bổ bộ nhớ nhỏ đã được chuyển sang PSRAM, và tác vụ bị treo giờ đây sẽ gây ra hiện tượng khởi động lại kèm theo lỗi.
- 0.47. Hiện đã có Runbook – các macro có thể chờ một cụm từ xuất hiện hoặc biến mất trên màn hình văn bản và được thực thi trên chính thiết bị khi trình duyệt đóng lại. Giờ đây, ứng dụng đã chấp nhận các tập lệnh ở định dạng DuckyScript. Đã thêm trình lập lịch với cú pháp cron và thông báo đến Telegram (kèm ảnh chụp màn hình) hoặc webhook.
- 0.48. Thẻ microSD và mô-đun WiFi hiện hoạt động đồng thời — trước đây, cả hai đều sử dụng cùng một khe cắm SDMMC.
- 0.49. Thẻ microSD trên bo mạch Function EV và Waveshare ESP32-P4-ETH hiện hoạt động ở tần số bus 40 MHz thay vì 4 MHz (tốc độ đọc khoảng 9 MB/s, tốc độ ghi khoảng 4 MB/s): các đường nguồn của khe cắm không được cấp nguồn bởi bộ điều chỉnh tích hợp. Tốc độ tải ảnh qua giao diện web đã được tăng tốc khoảng 50 lần, lên 3,5 MB/s qua Ethernet. Chế độ bàn phím đã được thêm vào cho các BIOS cũ hơn — máy đích hiện nhận diện một thiết bị duy nhất ở tốc độ USB 1.1, không bao gồm chuột hoặc thiết bị lưu trữ. Thiết bị hiện báo cáo nếu chế độ HDMI vượt quá băng thông của hai làn MIPI CSI.
- 0.49.1. Tốc độ đọc dữ liệu từ ổ đĩa ảo trên máy đích đã được tăng tốc từ 5,6 lên 9 MB/giây bằng cách đọc dữ liệu từ thẻ theo từng khối 256 KB. Giờ đây, các thay đổi về hình ảnh đã hiển thị trên máy đích mà không cần kết nối lại USB.
- 0.50. Thẻ microSD có thể được thay thế trong khi thiết bị đang hoạt động, ngay cả khi bị tháo ra giữa chừng khi đang sao chép: khe cắm được kiểm tra cứ sau năm giây. Đã khắc phục độ trễ trong MJPEG khiến trình duyệt hiển thị khung hình trước lần nhấn phím cuối cùng trên màn hình tĩnh.
Nguồn: opennet.ru
