Je construis un navigateur de rendu html côté serveur qui rend html et envoie des jpegs au client mobile. J'ai besoin de comprendre comment construire un serveur qui saisit jpegs et les transmet dans une session à un client que je vais écrire dans j2meComment créer un flux de jpegs (live) en C++ ou C# ou java? RTSP?
Répondre
Il n'est pas complètement clair ce que vous voulez dire par "vivre" mais je ' Je devine que vous parlez de faire des demandes à un processus côté serveur qui rend les URL transmises et renvoie une image. L'un des moyens les plus faciles que je connaisse de le faire est avec Java et SWT. Vous pouvez utiliser le SWT browser widget et capturer le canevas puis le convertir en n'importe quel type d'image que vous voulez. Le widget du navigateur utilise firefox pour afficher les pages de façon à ce qu'elles soient plutôt bonnes.
Je voudrais écrire une servlet qui dessert un jpeg à la fois, et un midlet qui demande le prochain jpeg de temps en temps.
Eh bien, il existe de meilleures solutions que les JPEG simples. J'ai implémenté des systèmes comme celui-ci, et vous feriez mieux d'utiliser un codec vidéo tel que MPEG-2, MPEG-4 ASP, H.264, etc. que JPEG, et envoyer des mises à jour en tant que p-frames (deltas du précédent image), et s'il y a "trop gros" un changement (ou une mise à jour manquée, ou un nouveau client ajouté à un flux existant), envoyez une image i.
Même sans utiliser de codec vidéo, les différences d'envoi seront souvent préférables. Utilisez un autre mécanisme pour encoder les diffs. En ce qui concerne l'envoi de la mémoire tampon, vous pouvez utiliser un certain nombre de framebuffers pour effectuer le rendu et configurer le code framebuffer pour démarrer une temporisation lorsqu'une modification est apportée et pendant que des modifications sont effectuées, envoyer des modifications périodiques , quand le temps écoulé depuis le dernier changement (pas encore envoyé) envoie une mise à jour (probablement plus courte que la première valeur), et inclut probablement une sorte de stroboscope qui force une mise à jour qui peut être invoquée sur certaines occurrences (si vous pouvez, par exemple, obtenir une indication de chargement de page à partir du navigateur, ce que vous pouvez faire avec un peu de travail dans Firefox en changeant le chrome, etc).
[ajouté]
Pour des exemples d'autres solutions, regardez les protocoles de bureau à distance et des programmes tels que VNC, RDP (Remote Desktop de Windows), etc - qui est effectivement ce qu'ils font, encore une fois avec une compression colombophile et le suivi des dommages-régions. Pour les framebuffers, vous pouvez utiliser le code standard linux/etc framebuffer (probablement le plus simple), ou même quelque chose comme XVFB (qui vous donne plus d'informations sur quoi et pourquoi les choses changent qu'un framebuffer brut).
Ne serait-ce pas trop inefficace? C'est pourquoi j'allais avec RTSP, et une certaine compression jpeg peut-être – uclajatt
Bien RTSP permettrait de réduire la charge sur le serveur, mais http est le seul protocole qui est pris en charge par tous les téléphones mobiles j2me. –