368
09.07.2024, 11:39 Uhr
Dresdenboy
|
@Ordoban: Dann lass gleich mal anfangen. Ich habe mir ein paar Gedanken gemacht. Möglichkeiten gäbe es ja viele, von "low hanging fruits" bis zu größeren Projekten.
Es wäre auch noch spannend, was in den Webentwicklertools bei der Netzwerkanalyse für Zeiten zu sehen sind bzw. wo am meisten davon verloren geht.
Ein paar einfache Möglichkeiten, die erst einmal bei Rechenaufwand für Komprimierung bzw. Übertragungsrate helfen sollten: 1. Niedrigstes Kompressionslevel (1) für Deflate bei PNG nutzen (falls nicht schon geschehen). In PNGenc ist das der letzte Parameter bei (aus dem Beispiel)
Quellcode: | rc = png.encodeBegin(WIDTH, HEIGHT, PNG_PIXEL_INDEXED, 8, ucPal, 3); // Kompressionsstufe 3 |
2. RLE-komprimierte BMP-Dateien erzeugen -> Das sollte für solche Screens mit großen leeren Flächen ganz gut funktionieren und arbeitet auch schnell. Firefox unterstützt BMP direkt.
Nun wird es komplizierter (und dann ginge es vom Aufwand in Richtung VNC): 3. HTTP-Verbindung als Stream aufsetzen. Das kann z.B. ähnlich wie bei den ESP32+Camera-Projekten laufen (z.B.: https://github.com/rzeldent/esp32cam-rtsp) oder selbst gestrickt und man muss sich auf Client-Seite per Javascript um die Darstellung kümmern. Letzteres könnte auch Dinge tun, die auf den Computerbildschirm optimiert sind, z.B. nur veränderte Bereiche zu übertragen. -- ___________________________________ Demoscene-Produktionen: https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos Programmierung seit '86 in BASIC: KC85/3, C64, A1200, PC | ASM: LC-80, C64, KC87, A1200, NeoGeo, PC, Mega 65, µC | Turbo Pascal: BIC, PC | C: RS/6000, Alpha, PC, µC | C++, Java, Javascript, Rust, Lua, Perl, PHP u.a. auf PC HW: LC-80, BIC A5105 komplett, KC87, KC85/2-4, KCC, C64s, C16, Plus/4s, A500s, A1200, Mega 65, ESP32s, RasPis, PCs, Laptops, MR 610, ... Dieser Beitrag wurde am 09.07.2024 um 13:37 Uhr von Dresdenboy editiert. |