Aller au contenu

Visioconférence

Le serveur relaie l’audio et la vidéo sans les décoder ni les réencoder (voir Architecture). Côté client :

  • Mises en page : mosaïque adaptative, vue centrée sur l’orateur, bande de vignettes, et une vignette flottante déplaçable pour sa propre caméra.
  • Pages de caméras : sur ordinateur, une page de la mosaïque affiche au plus 25 caméras, en grille de 5 sur 5 ; au-delà, on tourne les pages.
  • Orateur actif : la tuile de la personne qui parle est mise en évidence, d’après l’analyse du niveau audio. Si elle se trouve sur une autre page depuis plus de 2 secondes, elle vient sur la page affichée, à la place de la tuile restée silencieuse le plus longtemps. Les autres tuiles ne bougent pas, la page affichée reste celle qu’on a choisie, et sa propre tuile n’est jamais déplacée.
  • Caméras éteintes : les personnes sans caméra passent dans une bande de petites tuiles sous la mosaïque, avec leur nom, leur micro et leur main levée. Les caméras allumées gardent ainsi toute la place, au lieu d’être réduites à la même taille que des vignettes vides. Quand personne n’a la caméra, la mosaïque reste inchangée.
  • Indicateur de qualité réseau par participant.
  • Bascule du micro et de la caméra.
  • Sélection du micro, de la caméra et du haut-parleur.
  • Avant d’entrer, un écran de préparation permet de choisir son mode (participer en parlant, ou en simple écoute), de prévisualiser sa caméra et de tester son micro.

Le partage d’écran est disponible sur ordinateur, jusqu’à une définition de 1080p. Il peut être réservé selon la politique de la salle (voir Modération) et le flux partagé est toujours relayé aux autres participants.

Un écran partagé occupe le centre de la mosaïque et réduit les webcams à une bande. Chaque participant peut, sur ordinateur, le détacher dans une fenêtre à part : l’écran quitte alors la mosaïque, qui rend la place aux visages, et la fenêtre se place où l’on veut, sur un second moniteur par exemple. Un bouton en bas à droite du salon le rattache, et fermer la fenêtre revient au même.

Sans transcodage, Vuisio s’appuie sur le simulcast : chaque caméra émet plusieurs couches de qualité, et le SFU choisit pour chaque destinataire la couche adaptée, puis relaie les paquets tels quels. C’est le « selective forwarding » du SFU.

Le client web indique au serveur les caméras réellement à l’écran, et la taille de chaque tuile :

  • Seules les caméras visibles sont envoyées. Une caméra sur une autre page, dans une bande qu’on a fait défiler ou derrière un onglet caché ne consomme ni débit ni décodage. Un onglet ou une fenêtre réduite garde ses caméras 3 secondes, puis n’en reçoit plus ; elles reviennent dès qu’on y retourne.
  • Chaque tuile reçoit la qualité de sa taille. Une vignette reçoit la couche basse, une grande tuile la couche haute.
  • Aucun plafond de nombre. Le serveur ne limite pas le nombre de caméras affichées : seul le réseau de chacun abaisse la qualité. Son débit estimé est réparti entre ses caméras, les grandes tuiles servies d’abord, et au-delà de 5 % de pertes, toutes les caméras descendent d’une couche.
  • Pas de noir au retour d’une caméra. Quand une caméra revient à l’écran, sa tuile montre la dernière image qu’elle en a affichée, si elle date de moins de 5 minutes, jusqu’à la première image nouvelle. Si la vidéo tarde plus de 3 secondes, la tuile repasse à l’avatar.

Un client qui ne déclare pas ses caméras, comme un robot de charge, reçoit celles des derniers orateurs (voir VUISIO_LAST_N_VIDEO dans les variables d’environnement).

Toutes les voix sont relayées à tous les participants, quelle que soit la taille de la salle. Pour un participant dont la connexion perd des paquets, le serveur active l’audio redondant (RED) : chaque paquet audio porte aussi la trame précédente, et un paquet perdu isolé se reconstitue à partir du suivant au lieu d’être masqué par le navigateur. Le serveur en décide seul, pour chaque participant, d’après les pertes mesurées, sans renégocier la connexion.

Mesuré avec un vrai navigateur Chromium, la part de l’audio que le navigateur a dû inventer :

PertesSans REDAvec REDDébit audio envoyé
5 %5,29 %0,20 %+ 83 %
10 %9,48 %1,19 %+ 80 %

Chrome en profite. Firefox ne gère pas RED et reçoit l’audio normal. Le réglage se fait avec VUISIO_AUDIO_RED (voir les variables d’environnement).

Le client web propose trois modes d’arrière-plan, appliqués localement :

  • Aucun.
  • Flou, avec une intensité réglable.
  • Image : une présélection, ou votre propre image (téléversée localement).

Un modérateur peut autoriser ou restreindre les images personnalisées au niveau de la salle.

Le détourage est calculé sur l’appareil de chacun. Sur un appareil chargé, l’image continue de partir à pleine cadence et seul le contour suit avec un léger retard. Si l’appareil ne suit vraiment plus, un avertissement signale que l’image est saccadée et indique où désactiver le fond : il n’est jamais désactivé à la place de l’utilisateur, puisqu’il masque la pièce qu’il a choisi de cacher.