FR 3088751 A1 20200522 FR 1860640 A 20181116 PROCEDE DE CAPTURE ET DE DIFFUSION D'UNE SESSION INFORMATIQUE D'UTILISATEUR DOMAINE DE L'INVENTION La présente invention porte sur un procédé de capture et de diffusion d'une session informatique d'utilisateur. La session informatique d'utilisateur s'exécute sur 10 un ordinateur hôte et elle est diffusée à un client distant avec laquelle la session est associée. La session informatique est également diffusée à un client abonné. L'invention trouve une application particulière dans le domaine du jeu vidéo en réseau lorsque l'un des participants 15 (l'utilisateur du client distant) souhaite partager avec un autre participant (l'utilisateur du client abonné) les images s'affichant sur son écran. 20 ARRIERE PLAN TECHNOLOGIQUE DE L'INVENTION Les documents U52017228851 et FR30460176 décrivent une configuration d'un système informatique de type infonuagique (ou « cloud computing » selon l'expression 25 anglo-saxonne consacrée) dans lequel les dispositifs d'interface (écran, clavier, manette...) sont distants de la partie traitement et stockage de la session informatique. Les dispositifs d'interface se trouvent à proximité 30 même de l'utilisateur et forment un client distant. Les composants de traitement et de stockage constituant l'ordinateur hôte se trouvent dans un lieu d'hébergement distinct et généralement éloigné du client distant. 2 La session informatique d'utilisateur s'exécute sur l'ordinateur hôte et l'ordinateur hôte et le client distant s'échangent les informations de session par l'intermédiaire d'un réseau informatique, par exemple le réseau Internet, auquel ils sont l'un et l'autre reliés. Ces informations de session peuvent ainsi comprendre des images et du son destiné à être reproduit du côté du client distant, des données de commande, telles que celles issues des dispositifs d'interface du client distant, destinées à être communiquées à l'ordinateur hôte. On émule de la sorte, pour l'utilisateur, la présence d'un ordinateur physique performant sans qu'il ait besoin de détenir directement ou de disposer d'un tel équipement. Certaines applications informatiques nécessitent ou peuvent tirer profit de la faculté, pour un utilisateur, de partager sa session informatique avec au moins un autre participant. Il s'agit par exemple de partager les images produites par la session informatique et s'affichant sur l'écran du client distant avec cet autre participant. Il peut s'agir également de partager ou donner le contrôle de la session à cet autre participant, avec laquelle il peut interagir par exemple par l'intermédiaire de son clavier et de sa souris. C'est le cas notamment dans les jeux en ligne où un groupe de joueurs peut souhaiter partager entre eux leurs écrans respectifs afin de disposer d'une vision plus globale de l'environnement dans lequel ils évoluent. Cela peut être également le cas dans le domaine de l'enseignement à distance où un enseignant peut souhaiter avoir accès aux images s'affichant sur l'écran de son élève et éventuellement prendre le contrôle de la session pour, par exemple, le guider ou le corriger. 3 Quelle que soit l'application justifiant le besoin de partager les informations d'une session informatique, il est nécessaire dans ce cas de transmettre simultanément les informations de session de l'ordinateur hôte au client distant et au(x) client(s) abonné(s), c'est-à-dire au(x) poste(s) informatique(s) additionnel(s) sur le(s)quel(s) on souhaite dupliquer les informations de session. Les tâches de duplication, de préparation et d'envoi 10 de ces informations peuvent excéder la capacité de traitement de l'ordinateur hôte ou la capacité de transmission du réseau informatique. Dans ce cas, la qualité du service rendu à l'utilisateur, au niveau du client distant ou du client abonné, est détériorée. Cette baisse de qualité peut se 15 traduire par une augmentation du temps de latence, c'est-à- dire du temps séparant la préparation d'une image ou d'un son par l'ordinateur hôte et sa restitution par le client distant ou abonné. La baisse de qualité peut également se traduire par une baisse de la résolution des images 20 transmises ou de la fréquence de rafraîchissement de ces images. La présente invention vise à résoudre au moins en partie ce problème. Elle vise plus particulièrement un 25 procédé de capture et de diffusion d'une session informatique d'utilisateur qui puisse s'ajuster à la capacité de traitement disponible de l'ordinateur hôte et/ou à la capacité de transmission du réseau afin de tenter de maintenir un niveau de service satisfaisant pour 30 l'utilisateur du client distant et/ou pour l'utilisateur du client abonné. 4 BREVE DESCRIPTION DE L'INVENTION En vue de la réalisation de l'un de ces buts, l'objet de l'invention propose un procédé de capture et de diffusion 5 d'une session informatique d'utilisateur, la session s'exécutant sur un ordinateur hôte muni d'une unité de traitement graphique pour préparer des données d'affichage de la session, le procédé de capture et de diffusion mettant en oeuvre les opérations suivantes : 10 - fournir répétitivement les données d'affichage préparées par l'unité de traitement graphique à un premier encodeur pour établir un flux vidéo primaire; transmettre le flux vidéo primaire à un client 15 distant associé à la session informatique ; Selon l'invention, le procédé met également en oeuvre des opérations visant à : fournir répétitivement les données d'affichage à un deuxième encodeur pour établir un flux vidéo 20 secondaire; transmettre le flux vidéo secondaire à un client abonné. En préparant séparément le flux vidéo primaire destiné 25 au client distant et le flux vidéo secondaire destiné au client abonné, sur deux encodeurs différents, on peut fixer et/ou ajuster individuellement les débits binaires de ces deux flux. On peut notamment ajuster la qualité du flux vidéo adressé au client abonné à la capacité de traitement 30 disponible de l'ordinateur hôte et/ou de la capacité de transmission du réseau, sans affecter la qualité du flux vidéo adressé au client distant. 5 Selon d'autres caractéristiques avantageuses et non limitatives de l'invention, prises seules ou selon toute combinaison techniquement réalisable : 5 - le procédé comprend également des opérations visant à configurer le premier encodeur et le deuxième encodeur ; - les opérations visant à configurer le premier encodeur 10 et le deuxième encodeur définissent un débit binaire plafond du flux vidéo primaire et un débit binaire plafond du flux vidéo secondaire ; - le flux vidéo secondaire présente un débit binaire 15 plafond différent du débit binaire plafond du flux vidéo primaire ; - les opérations visant à configurer le premier et le deuxième encodeur forment une étape de préconfiguration 20 qui précède les étapes visant à répétitivement fournir les données d'affichage et à diffuser les flux vidéo ; - les opérations visant à configurer le premier et le deuxième encodeur sont répétées pour ajuster 25 dynamiquement le débit binaire du flux vidéo primaire et/ou le débit binaire du flux vidéo secondaire ; - l'ordinateur hôte comprend une machine virtuelle qui s'exécute sur un serveur ; 30 - l'unité de traitement graphique, le premier encodeur et le second encodeur sont portés par une carte graphique du serveur, la carte graphique étant entièrement dédiée à la machine virtuelle ; 35 6 - le procédé comprend en outre des opérations visant à capturer successivement des données de son, et transmettre les données de son successives au client distant et/ou au client abonné ; - le procédé comprend des opérations visant à recevoir du client abonné des données de commande, interpréter les données de commande pour initier et/ou interrompre les opérations visant à transmettre le flux vidéo 10 secondaire au client abonné ; - les opérations visant à fournir répétitivement les données d'affichage au premier et au second encodeur comprennent la lecture de données d'affichage d'une 15 mémoire tampon de l'unité de traitement graphique ; - les opérations visant à transmettre le flux vidéo primaire au client distant et les opérations visant à transmettre le flux vidéo secondaire au client abonné 20 comprennent la fourniture des flux vidéo primaire et secondaire à un contrôleur réseau ; - le flux vidéo secondaire est transmis à une pluralité de clients abonnés. 25 L'invention concerne également un programme d'ordinateur contenant des instructions aptes à la mise en oeuvre des opérations du procédé de capture et de diffusion lorsque ce procédé est exécuté dans un ordinateur hôte. 30 BREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de 35 l'invention ressortiront de la description détaillée de l'invention qui va suivre en référence aux figures annexées sur lesquels : - La figure 1 représente une architecture informatique 5 permettant de mettre en oeuvre le procédé de capture et de diffusion ; - La figure 2 représente schématiquement un procédé de capture et de diffusion conforme à la présente invention. 10 DESCRIPTION DETAILLEE DE L'INVENTION Architecture informatique 15 La figure 1 représente une architecture informatique permettant de mettre en oeuvre le procédé de capture et de diffusion de la présente description. 20 Cette architecture est formée ici d'un ordinateur hôte 1 qui présente une pluralité de serveurs 2. Les serveurs 2 sont constitues de composants performants (CPU, mémoire, disque de stockage, cartes graphiques et de reseau...) de manière a former une plateforme matérielle particulièrement 25 efficace pour exécuter des applications pouvant nécessiter des capacités de traitement importantes, telles que les jeux vidéo. Comme cela est bien connu, les serveurs 2 peuvent 30 être configurés pour héberger une ou plusieurs machine(s) 3 virtuelle(s), en même temps que son/leur système d'exploitation et ses/leurs applications. La virtualisation permet d'héberger une pluralité de machines virtuelles 3 dans chaque serveur 2 pour fournir une pluralité 35 d'environnements virtuels totalement isolés les uns des 8 autres. Chaque environnement virtuel a accès aux ressources matérielles du serveur (CPU, mémoire, moyens de stockage, carte graphique...) permettant d'y exécuter une session informatique d'utilisateur. On peut citer, parmi les 5 technologies de vIrtualisatIon bien connues, Citrlx XenServer, Microsoft Hyper-V, VMware ESX1, Oracle Virtual box, QuIck Emulator sous licence ouverte ONU (QEMU), etc. Chacune des machines virtuelles 3 dans l'ordinateur 10 hôte 1 peut être dédiée à un utilisateur spécifique. Les utilisateurs interagissent avec leurs machines virtuelles dédiées 3 depuis des clients distants 4, 4', chacun étant connecté à l'ordinateur hôte 1 par l'Intermédiaire d'un réseau comme Internet. Étant donné que la plus grande partie, 15 si ce n'est l'intégralité, du traitement se fait au niveau de l'ordinateur hôte 1, les clients distants 4, 4' peuvent rester très simples, et peuvent Inclure, par exemple, un simple terminal, un connecteur de réseau et des dispositifs d'entrée/sortie de base (clavier, souris...) comme 20 représenté par le premier client distant 4 sur la figure 1. Selon une autre solution, il peut s'agir d'un ordinateur personnel standard, avec sa propre unité centrale, sa carte graphique, ses périphériques ou d'une tablette ou d'un Smartphone, comme représenté par l'autre client distant 4'. 25 Tous les dispositifs informatiques 4, 4' en communication avec l'ordinateur hôte 1 ne sont pas nécessairement associés à une machine virtuelle (et ne forment donc pas un client distant, au sens de la présente description). Certains peuvent être équipés de toutes les ressources matérielles et 30 logicielles nécessaires, de telle manière que tous les traitements de session soient exécutés localement. Il ne bénéficie donc pas des ressources de traitement fournies par les serveurs 2 de l'hôte 1. Ils peuvent néanmoins Interagir, c'est-à-dire échanger des informations, avec les sessions 35 d'utilisateur s'exécutant sur les serveurs 2. 9 Chaque serveur 2 héberge, de préférence, moins de dix machines virtuelles 3 pour fournir des ressources informatiques suffisantes, notamment matérielles, a chaque machine virtuelle 3 pour exécuter des applications hautes performances avec un niveau suffisant de service. Chaque machine virtuelle 3 est créée au moment de la connexion du client a l'ordinateur hôte 1 et comprend une unité centrale virtuelle, une mémoire principale virtuelle, ainsi que toutes les autres ressources nécessaires. 10 La machine virtuelle comporte ou à accès à une unité de traitement graphique pour préparer des données d'affichage de la session. Cette unité de traitement graphique peut comprendre une simple carte vidéo matérielle 15 ou une carte graphique matérielle associée à la machine virtuelle. Il peut s'agir également d'une carte vidéo virtuelle ou d'une carte graphique virtuelle entièrement émulée par les ressources matérielles du serveur (et notamment par son ou ses unité(s) de traitement et/ou sa ou 20 ses carte (s) graphique(s)), ces ressources étant mises à disposition de la machine virtuelle par la couche logicielle de virtualisation (l'hyperviseur) s'exécutant sur le serveur. Cette unité de traitement graphique peut également mixer des éléments matériels et des éléments virtuels. 25 Préférentiellement, et selon un mode de mise en oeuvre particulier assurant un haut niveau de performance, l'unité de traitement graphique correspond à une carte graphique physique performante, associée et entièrement dédiée à une 30 machine virtuelle. Quelle qu'en soit la nature, matérielle ou virtuelle, l'unité de traitement graphique associée à la machine virtuelle a pour fonction de préparer et fournir les données 10 d'affichage de la session informatique s'exécutant dans la machine virtuelle. Cette unité de traitement comprend en outre une 5 pluralité d'encodeurs vidéo aptes à former des flux vidéo. Pour rappel, un encodeur vidéo a pour fonction de traiter des données d'images, fournies en entrée, pour préparer un flux vidéo compresse et le fournir en sortie. A titre d'exemple, il peut s'agir d'un encodeur mettant en oeuvre le 10 standard H.264 ou H.265. Un tel encodeur est généralement configure pour que le flux vidéo qu'il prépare présente un débit binaire qui ne soit pas supérieur a un débit binaire plafond, qui peut être choisi. Pour limiter le débit binaire du flux vidéo au débit binaire plafond, l'encodeur peut être 15 amené a dégrader la qualité des images formant le flux vidéo compresse. Bien entendu, plus le débit binaire plafond est réduit, plus la qualité perçue du flux vidéo est réduite. Comme cela est bien connu en soi, la compression est obtenue en ne transmettant que les différences entre les données de 20 deux images successives (voire même une partie de ces différences uniquement). On prévoit d'insérer régulièrement dans le flux vidéo compresse des images complètes (désigné par l'expression « image de référence »), afin de permettre d'initier le décodage du flux vidéo compresse et d'éviter 25 toute dérive de ce décodage dans le temps. L'encodeur peut être configure pour insérer, sur demande, une telle image de référence, et d'une manière plus générale être configure pour ajuster le compromis entre le temps nécessaire d'encodage et la qualité du flux vidéo fourni. 30 Par « pluralité d'encodeurs », on désigne au moins une unité d'encodage pouvant être exploite pour fournir au moins deux flux vidéo indépendants l'un de l'autre. Il peut ainsi s'agir d'un unique encodeur matériel d'une carte 35 graphique, dont on peut changer le contexte d'exécution, 11 afin de former de manière concurrente au moins deux flux vidéo distincts l'un de l'autre. Il peut bien entendu s'agir d'une pluralité d'encodeurs matériels physiquement distincts les uns des autres et respectivement exploités pour former 5 une pluralité de flux. Alternativement encore, ces encodeurs peuvent être réalisés de manière purement logicielle. Quelle que soit la solution retenue, il est possible de former une pluralité de flux vidéo en contrôlant individuellement les caractéristiques de chacun de ces flux, et notamment leurs 10 débits binaires. Chaque machine virtuelle 3 émule un ordinateur personnel virtuel hautes performances qui est associé et commandé par un client distant 4, 4'. Chaque machine 15 virtuelle 3 constitue donc, ou est l'équivalent, d'une session d'utilisateur, et un grand nombre de ces sessions d'utilisateur peuvent être exécutées sur les serveurs 2 de l'ordinateur hôte 1. L'architecture informatique peut comprendre une pluralité d'ordinateurs hôtes 1, reliés entre 20 eux et qui peuvent se trouver dans des centres de données informatiques géographiquement séparés. Pour afficher les images de la session d'utilisateur sur le terminal du client distant qui lui est associé, 25 l'ordinateur hôte 1 approvisionne le client distant 4, 4' en informations d'affichage (y compris en sons) et en informations de commande pour les dispositifs d'entrée/sortie installés sur le site distant. 30 A l'inverse, les clients distants 4, 4' approvisionnent l'ordinateur hôte 1 en informations de commande en provenance des dispositifs d'entrée/sortie qui se trouvent sur le site distant (clavier, souris), et éventuellement d'autres formes de données telles que des 35 informations d'affichage et sonores fournies par un 12 dispositif USB ou intégrées dans une caméra et un microphone du client distant 4, 4', ou des périphériques de réseau, au niveau du client distant, tels des imprimantes... 5 On désignera dans la présente description par « informations de session », toutes les informations échangées entre un client distant 4, 4' et l'ordinateur hôte 1. 10 Du côté de l'ordinateur hôte 1, un programme de capture et de diffusion des informations de session s'exécute, en tâche de fond, dans chaque session informatique. Le programme de capture et de diffusion met en oeuvre des opérations visant à collecter les données 15 d'affichage, de son et de commande préparées par la session informatique, d'encoder ces données pour limiter l'utilisation de la bande passante du réseau et de les transmettre au client distant 4, 4'. Le programme de capture et de diffusion reçoit et décode également les données de 20 commande communiquées par le client distant 4, 4', les exploite ou les fournit à la session d'utilisateur pour qu'elles soient traitées et exploitées de manière conventionnelle. 25 Les clients distants 4, 4', de leurs côtes, sont munis des ressources matérielles et/ou logicielles appropriées pour décoder les informations communiquées par le programme de capture et de diffusion afin qu'elles soient exploitées du côte client. Ces ressources permettent 30 également de préparer les données de commande générées par le client distant et de les transmettre a l'ordinateur hôte 1. Outre les données issues des dispositifs d'interface du client distant (clavier, souris,..), les données de commande peuvent comprendre des informations additionnelles, telles 35 que l'information de débit de données reçu de l'ordinateur 13 hôte, permettant de caractériser la qualité de la liaison informatique avec cet ordinateur. 5 Comme cela sera détaillé plus en détail dans la suite de cette description, la présente invention vise à permettre la diffusion des informations de session non seulement vers le client distant avec lequel la session est associée, mais également avec d'autres clients, désignés par la suite comme 10 des clients « abonnés ». Les clients abonnés peuvent être eux-mêmes respectivement associés à leurs propres sessions s'exécutant sur l'ordinateur hôte. Programme de paramétrage de diffusion et protocole 15 de souscription L'utilisateur d'une session s'exécutant sur l'ordinateur hôte 1 peut paramétrer, a l'aide d'un programme de paramétrage de diffusion qui s'exécute dans sa session ou 20 sur le client distant, les conditions dans lesquelles les informations de sa session sont diffusées vers un ou une pluralité de client(s) abonné(s). Ainsi, chaque utilisateur peut éditer, modifier, enregistrer des entrées d'une liste de clients abonnes qu'il autorise ou qu'il désigne pour 25 recevoir les informations de session. Cette liste de souscription peut être maintenue en dehors de la session d'utilisateur, par l'ordinateur hôte 1, de manière a y regrouper les informations relatives à toutes les sessions d'utilisateurs de manière centralisée. Cette liste peut 30 mettre en relation un identifiant de session et des identifiants d'abonnés distants autorises à, ou désignes pour, recevoir la communication des informations de la session. 14 Le paramétrage peut être plus complexe que de simplement autoriser ou bloquer la diffusion vers un client abonné. Par exemple, une session d'utilisateur peut inclure plusieurs bureaux ou des écrans multiples, et le paramétrage 5 de diffusion peut indiquer quel bureau ou quel écran peut être diffusé vers le client abonné. La configuration peut également autoriser ou bloquer la transmission d'informations de son et/ou de commande, indépendamment de l'autorisation ou du blocage de données d'affichage pures. 10 Le paramétrage peut notamment déterminer dans quelle mesure les données de commandes (touche de clavier, mouvement de souris...) fournies par un client abonné peuvent être exploitées par la session d'utilisateur, ce qui consisterait à partager le contrôle de la session avec l'utilisateur du 15 client abonné. Les conditions particulières s'appliquant aux échanges entre une session et un client abonné sont également enregistrées dans la liste de souscription. Pour obtenir les informations de session issues d'une 20 session d'utilisateur déterminée, un client abonne 4, 4' se connecte a l'ordinateur hôte 1 au cours d'une étape de souscription. Au cours de cette étape, l'ordinateur hôte 1 vérifie que le client abonne est bien autorise a être mis en relation avec la session d'utilisateur déterminée. 25 L'ordinateur hôte 1 fournit également a la session d'utilisateur et au client abonne les informations nécessaires pour permettre la transmission des informations de session. 30 On peut envisager d'autres protocoles que celui qui vient d'être décrit pour configurer la transmission d'informations entre une session et un client distant. Par exemple, l'ordinateur hôte 1 peut maintenir une liste de session d'utilisateurs groupés. Chaque session d'utilisateur 35 (et plus particulièrement chaque programme de capture et de 15 diffusion) du groupe est alors configurée par l'ordinateur hôte 1, pour qu'elle puisse diffuser les informations de session aux clients distants associés aux autres sessions constituant le groupe. Quel que soit le protocole choisi pour mettre en relation une session d'utilisateur et un ou plusieurs clients abonnes, celui-ci vise a fournir au programme de capture et de diffusion de la session d'utilisateur un identifiant d'au 10 moins un client abonne avec lequel une partie au moins des informations de session peuvent être échangées. Programme de capture et de diffusion 15 La présente invention cherche à tirer profit de l'environnement informatique qui vient d'être décrit pour proposer un procédé de capture et de diffusion de la session informatique d'utilisateur qui puisse s'ajuster au mieux à la capacité de traitement disponible sur l'ordinateur hôte 20 1 et à la capacité de transmission du réseau reliant cet ordinateur au client distant et au(x) client(s) abonné(s) 4, 4'. Le procédé est représenté sur la figure 2. Comme on vient de le décrire, la session informatique 25 d'utilisateur s'exécute sur l'ordinateur hôte 1 et exploite les capacités de traitement d'une unité de traitement graphique qui prépare les données d'affichage de la session. Ces données d'affichage sont fournies répétitivement par l'unité de traitement graphique, dans une mémoire tampon de 30 cette unité ou associée à cette unité. Les données d'affichage peuvent, par exemple, être préparées et fournies toutes les 4 à 35 millisecondes par l'unité de traitement graphique. 16 Le programme de capture et de diffusion qui s'exécute dans la session informatique de l'ordinateur hôte 1 met en oeuvre des opérations visant à fournir répétitivement les données d'affichage, préparées par l'unité de traitement graphique, à un premier encodeur. A cet effet, le programme de capture et de diffusion prévoit une étape 51 de lecture des données d'affichage dans la mémoire tampon de l'unité de traitement graphique et une étape 52 de fourniture de ces données au premier encodeur. 10 Le premier encodeur établit un flux vidéo primaire qui est destiné à être transmis au client distant associé à la session. On cherchera généralement à ce que le flux vidéo primaire soit de grande qualité pour servir au mieux 15 l'utilisateur du client distant. A cet effet, le premier encodeur est configuré avec une valeur de débit binaire plafond relativement important, comme par exemple supérieur 1 Mb/s. 20 Le programme de capture et de diffusion collecte et traite les données du flux vidéo primaire préparées par le premier encodeur au cours d'une étape de préparation 53, pour le transmettre au client distant au cours d'une étape de diffusion 54 du flux vidéo primaire. Par exemple, les 25 données composant le flux vidéo primaire sont extraites d'une mémoire tampon du premier encodeur ou associée à ce premier encodeur, pour être formatées (i.e. empaquetées) au cours de l'étape de préparation 53 et adressées à un contrôleur réseau associé à la session d'utilisateur au cours de l'étape de 30 diffusion 54. Le programme de capture et de diffusion peut employer tout protocole adapté pour transmettre le flux vidéo primaire au client distant, en privilégiant toutefois des protocoles à faible latence et compatible avec un client distant léger, dépourvu de ressources informatiques 17 importantes. Il peut s'agir par exemple d'un protocole du type UDP ou dérivé du protocole UDP. Pour communiquer les données d'affichage à au moins 5 un client abonné, le programme de capture et de diffusion prévoit également de fournir les données d'affichage préparées par l'unité de traitement graphique au deuxième encodeur. Cette étape 52' de fourniture au deuxième encodeur peut s'exécuter concurremment à la fourniture de ces données 10 d'affichage au premier encodeur. Le deuxième encodeur établit un flux vidéo secondaire qui est destiné à être transmis au(x) client(s) abonné (s). A cet effet, le programme de capture et de diffusion collecte et formate au cours d'une étape 53' de préparation du flux vidéo secondaire. Puis, le 15 programme de capture et de diffusion, au cours d'une étape 54' de diffusion du flux vidéo secondaire, adresse les données du flux vidéo secondaire au contrôleur réseau similairement à ce qui a été exposé pour la transmission du flux vidéo primaire. 20 Il n'est pas toujours nécessaire que le flux vidéo secondaire soit de grande qualité, car il forme de l'information additionnelle pour les clients abonnes. Par exemple, ce flux vidéo secondaire peut être affiche a l'écran 25 du client abonne dans une fenêtre de taille réduite, en superposition des images représentant sa propre session d'utilisateur. La qualité du flux vidéo secondaire peut donc dans ce cas d'usage être réduite en comparaison de la qualité du flux vidéo primaire. Le premier et le deuxième encodeur 30 sont alors confiqures par le programme de capture et de diffusion pour que le flux vidéo secondaire présente un débit binaire plafond plus réduit que le débit binaire plafond du flux vidéo primaire. 18 Alternativement, il peut être souhaitable de former un flux vidéo secondaire de meilleure qualité que le flux vidéo primaire. C'est par exemple le cas lorsque ce flux vidéo secondaire est destiné à un client abonné disposant d'un écran d'affichage de qualité supérieure ou de plus grande dimension que celui du client distant. Par ailleurs, il est possible que le flux vidéo secondaire soit adressé de manière intermittente au client 10 abonné, celui-ci pouvant notamment choisir de recevoir ou d'interrompre la réception de ce flux. Pour permettre aux clients abonnés de décoder l'initiation de sa réception, le flux vidéo secondaire à il est nécessaire d'introduire des images de référence dans le flux vidéo secondaire avec 15 une plus grande fréquence que dans le flux vidéo primaire ce qui peut avoir un impact sur la qualité visuelle du flux vidéo secondaire et sur son débit. Il n'est donc pas toujours nécessaire que le flux 20 vidéo secondaire présente un débit binaire équivalent à celui du flux vidéo primaire. En préparant séparément le flux vidéo primaire destiné au client distant et le flux vidéo secondaire destiné 25 au(x) client(s) abonné(s), sur deux encodeurs différents, on peut fixer et/ou ajuster individuellement les débits binaires de ces deux flux et donc la qualité de chaque flux. Ainsi, et selon un mode de mise en oeuvre avantageux, 30 le programme de capture et de diffusion configure le premier et le second encodeur pour que le flux vidéo secondaire présente un débit binaire strictement inférieur au débit binaire du flux vidéo primaire. Par exemple, le débit binaire plafond du flux vidéo secondaire peut-être fixe a une valeur 19 2 fois, 5 fois ou 10 fois moindre que celle du débit binaire plafond du flux vidéo primaire. Alternativement à ce mode de mise en oeuvre, le 5 programme de capture et de diffusion peut fixer le débit binaire plafond du flux vidéo secondaire pour qu'il soit le plus grand possible, éventuellement supérieur ou égal au débit binaire plafond du flux vidéo primaire. 10 La configuration du premier et du deuxième encodeur, et notamment des débits plafonds de chacun des flux vidéo primaire et secondaire et de la fréquence d'insertion d'Images de référence dans ces flux, peut être établie une fois pour toutes par le programme de capture et de diffusion, 15 par exemple au cours d'une étape de preconfiguration SO, au demarrage de la session informatique. Ainsi, le programme de diffusion et de capture peut préconfigurer au cours de cette etape de preconfiguration SO le deuxième encodeur pour qu'une image de référence soit integree dans le flux vidéo 20 secondaire a intervalle de temps régulier, cet Intervalle pouvant être par exemple compris entre quelques secondes et quelques dizaines de secondes. On s'assure ainsi qu'un nouvel abonne distant puisse exploiter le flux vidéo secondaire pour le décoder et l'afficher dans un délai raisonnable 25 suivant sa souscription et/ou sa connexion. Mais avantageusement, le programme de capture et de diffusion peut ajuster dynamiquement le débit binaire 30 plafond respectif de chaque flux vidéo primaire et secondaire selon les capacités mesurées de transmission du réseau ou de traitement de l'ordinateur hôte. Dans le cas où le programme de capture et de diffusion observe une réduction excessive de l'une au moins de ces capacités, il configure le premier 35 et/ou le deuxième encodeur avec un débit binaire plafond 20 réduit. A cet effet, on peut prévoir une étape 55 de configuration du premier encodeur, et une étape 55' de configuration du deuxième encodeur, au sein de la séquence d'opération conduisant à la diffusion du flux primaire et secondaire. Dans le cas d'usage prédominant, le programme de capture et de diffusion privilégie la réduction du débit binaire plafond du flux vidéo secondaire à la réduction du 10 débit binaire plafond du flux vidéo primaire. Par exemple, les débits binaires plafonds du premier et du deuxième encodeur peuvent être initialement fixés, par exemple au cours de l'étape SO de préconfiguration, pour être identiques, et le débit binaire plafond du flux vidéo 15 secondaire être divisé par 2, 5 ou 10 lorsque la capacité de traitement de l'ordinateur hôte ou de transmission du réseau se détériore. Pour permettre cette fonctionnalité, le programme de 20 capture et de diffusion peut accéder de manière régulière aux informations d'état de la session informatique dans laquelle il s'exécute, ces informations d'état lui permettant de déterminer le niveau de performance d'exécution de la session sur l'ordinateur hôte 1 et/ou de 25 transmissions du réseau. Le programme de capture et de diffusion peut également exploiter les données de commande permettant de caractériser la qualité de la liaison informatique reçue du client distant 4, 4' et/ou des abonnés distants et pour ajuster individuellement le débit binaire 30 cible du premier et du deuxième encodeur. Le programme de capture et de diffusion reçoit également de l'ordinateur hôte 1 les identifiants des clients abonnés au fur et a mesure de leur souscription a recevoir le flux vidéo secondaire. 35 21 Cette variante selon laquelle le premier et le deuxième encodeur sont configures dynamiquement est particulièrement utile lorsque le nombre d'abonnés est important et que l'on souhaite limiter la bande passante 5 totale utilisée pour la diffusion de la session. Cette variante est également avantageuse, lorsque des perturbations réseaux affectent un ou plusieurs flux de session vers des clients abonnées. Dans ce dernier cas il est préférable de baisser le débit plafond du flux secondaire 10 sans affecter le flux principal, que l'on ne souhaite pas dégrader. De plus, et pour tenter de réduire l'effet des insertions d'image de référence sur le débit binaire du flux 15 vidéo secondaire, le programme de capture peut configurer l'encodeur au cours de l'étape S5' de configuration pour insérer une image de référence dans le flux vidéo secondaire uniquement sur demande expresse d'un des clients abonnés, par exemple à la connexion d'un client abonné. 20 Outre les données d'affichage transmises aux clients sous la forme de flux vidéo primaire et secondaire, le programme de capture et diffusion peut simultanément et concurremment capturer les données audio de son et/ou de 25 commande préparées par la session informatique pour les adresser au client distant et au(x) client(s) abonné(s). S'agissant de données de taille réduite et peu consommatrices de bande passante sur le réseau informatique, l'envoi de ces données aux différents clients peut être réalisé sans 30 traitement particulier, c'est-à-dire en envoyant respectivement les mêmes données à ces différents clients. Comme on l'a déjà vu, le programme de capture et de diffusion reçoit également du contrôleur réseau les données 35 de commandes préparées et adressées par le client distant et 22 le(s) client(s) abonné(s). Le programme peut appliquer certains traitements à ces données avant de les faire suivre à la session informatique pour qu'ils soient traités fonctionnellement. Par exemple, le programme de capture et 5 de diffusion peut bloquer les données de commande fournies par les clients abonnés, c'est-à-dire ne pas les faire suivre à la session informatique, si les paramétrages de diffusion ne prévoient pas que les clients abonnés puissent interagir avec la session. 10 Selon un exemple de mise en oeuvre avantageux, le programme de capture et de diffusion comprend des opérations visant à recevoir d'un client abonné des données de commande, interpréter ces données de commande pour initier et/ou 15 interrompre les opérations visant à transmettre le flux vidéo secondaire à ce client abonné. En d'autres termes, le fil d'opération T permettant la préparation et la diffusion du flux vidéo secondaire au client abonné est mis en oeuvre uniquement sur instruction du client abonné. De la sorte, 20 cet abonné peut commander l'envoi des données d'affichage de la session d'utilisateur à laquelle il a souscrit, à partir d'un instant et pour une durée donnée. Par exemple, le programme de capture et de diffusion 25 adresse pendant une période de temps déterminé (quelques secondes) le flux vidéo secondaire à un client abonné particulier uniquement à réception d'une donnée de commande déterminée (une touche particulière du clavier du client distant par exemple) de la part de ce client abonné 30 particulier. La réception répétée par le programme de capture et de diffusion de la commande déterminée (la touche particulière du clavier pouvant être par exemple maintenue enfoncée) conduit à adresser continûment le flux vidéo secondaire au client abonné particulier (et tant que la 35 touche déterminée du clavier est maintenue enfoncée). Comme 23 on l'a énoncé précédemment, l'initiation de la diffusion par le programme de capture et de diffusion du flux vidéo secondaire vers le client abonné peut comprendre, au Cours de l'étape 55' de configuration de l'encodeur, l'insertion 5 d'une image de référence dans le flux vidéo secondaire. Bien entendu l'invention n'est pas limitée au mode de mise en oeuvre décrit et on peut y apporter des variantes de réalisation sans sortir du cadre de l'invention tel que 10 défini par les revendications. Il est notamment possible que plusieurs clients abonnés souscrivent pour recevoir les données d'affichage d'une session d'utilisateur. 15 Dans ce cas, on peut prévoir d'exécuter concurremment autant de fils d'instructions T visant à préparer et diffuser un flux vidéo secondaire que de clients abonnés. Chaque fil prépare et diffuse alors un flux vidéo secondaire dédié à un 20 client abonné. Cette approche nécessite de disposer d'autant d'encodeurs que de clients abonnés. Alternativement, un unique flux vidéo secondaire peut être préparé et diffusé à l'ensemble des abonnés distant au 25 sein d'un unique fil d'instruction T. L'approche retenue peut être choisie par l'utilisateur de la session informatique par l'intermédiaire du programme de paramétrage. Si l'alternative retenue 30 correspond à celle où un unique flux vidéo secondaire est diffusé vers de multiples clients abonnés, le programme de paramétrage peut permettre également de choisir et déterminer si le débit binaire plafond du flux vidéo secondaire doit être ajusté à une qualité de transmission 35 moyenne existant entre l'ordinateur hôte et les clients 24 abonnés, REVENDICATIONS1. Procédé de capture et de diffusion d'une session informatique d'utilisateur, la session s'exécutant sur un ordinateur hôte 1 muni d'une unité de traitement graphique pour préparer des données d'affichage de la session, le procédé de capture et de diffusion mettant en oeuvre les opérations suivantes : - fournir répétitivement les données d'affichage préparées par l'unité de traitement graphique à un premier encodeur pour établir un flux vidéo primaire; - transmettre le flux vidéo primaire à un client distant associé à la session informatique ; le procédé étant caractérisé en ce qu'il met également en oeuvre des opérations visant à : - fournir répétitivement les données d'affichage à un deuxième encodeur pour établir un flux vidéo secondaire; - transmettre le flux vidéo secondaire à au moins un client abonné. 2. Procédé selon la revendication 1 comprenant également des opérations visant à configurer le premier encodeur et le deuxième encodeur. 3. Procédé selon la revendication précédente dans lequel les opérations visant à configurer le premier encodeur et le deuxième encodeur définissent un débit binaire plafond du flux vidéo primaire et un débit binaire plafond du flux vidéo secondaire. 4. Procédé selon la revendication précédente dans lequel le flux vidéo secondaire présente un débit binaire plafond différent du débit binaire plafond du flux vidéo primaire. 26 5. Procédé selon l'une des revendications 2 à 4 dans lequel les opérations visant à configurer le premier et le deuxième encodeur forment une étape de préconfiguration 5 qui précède les étapes visant à répétitivement fournir les données d'affichage et à diffuser les flux vidéo. 6. Procédé selon l'une des revendications 2 a 4 dans lequel les opérations visant a configurer le premier et le 10 deuxième encodeur sont répétées pour ajuster dynamiquement le débit binaire du flux vidéo primaire et/ou le débit binaire du flux vidéo secondaire. 7. Procédé selon l'une des revendications précédentes dans 15 lequel l'ordinateur hôte comprend une machine virtuelle 3qui s'exécute sur un serveur 2. 8. Procédé selon la revendication précédente dans lequel l'unité de traitement graphique, le premier encodeur et 20 le second encodeur sont portes par une carte graphique du serveur, la carte graphique étant entièrement dédiée a la machine virtuelle 3. 9. Procédé selon l'une des revendications précédentes 25 comprenant en outre des opérations visant à capturer successivement des données de son, et transmettre les données de son successives au client distant et/ou au client abonné. 30 10. Procédé selon l'une des revendications précédentes comprenant des opérations visant à recevoir du client abonné des données de commande, interpréter les données de commande pour initier et/ou interrompre les opérations visant à transmettre le flux vidéo secondaire au client 35 abonné. 27 11. Procédé selon l'une des revendications précédentes dans lequel les opérations visant a fournir repetitivement les données d'affichage au premier et au second encodeur 5 comprennent la lecture de données d'affichage d'une mémoire tampon de l'unité de traitement graphique. 12. Procédé selon l'une des revendications précédentes dans lequel le flux vidéo secondaire est transmis à une 10 pluralité de clients abonnés. 13. Programme ordinateur contenant des instructions aptes à la mise en oeuvre des opérations du procédé selon l'une des revendications précédentes lorsque le procédé est 15 exécuté dans l'ordinateur hôte.