3.7. Simulcast (Diffusion simultanée)
3.7. Simulcast (Diffusion simultanée)
JSEP prend en charge la transmission simulcast d'un MediaStreamTrack, où plusieurs encodages du média source peuvent être transmis dans le contexte d'une seule section "m=". L'API JSEP actuelle est conçue pour permettre aux applications d'envoyer des médias en simulcast mais uniquement de recevoir un seul encodage. Cela permet des scénarios multi-utilisateurs où chaque client émetteur envoie plusieurs encodages à un serveur, qui ensuite, pour chaque client récepteur, choisit l'encodage approprié à transmettre.
Les applications demandent la prise en charge du simulcast en configurant plusieurs encodages sur un RtpSender. Lors de la génération d'une offre ou d'une réponse, ces encodages sont indiqués via des marquages SDP sur la section "m=" correspondante, comme décrit ci-dessous. Les récepteurs qui comprennent le simulcast et sont disposés à le recevoir incluront également des marquages SDP pour indiquer leur support, et les points de terminaison JSEP utiliseront ces marquages pour déterminer si le simulcast est autorisé pour un RtpSender donné. Si le support du simulcast n'est pas négocié, le RtpSender n'utilisera que le premier encodage configuré.
Notez que les paramètres simulcast exacts dépendent de l'application émettrice. Bien que les marquages SDP susmentionnés soient fournis pour garantir que le côté distant puisse recevoir et démultiplexer plusieurs encodages simulcast, les résolutions et débits spécifiques à utiliser pour chaque encodage sont purement une décision côté émission dans JSEP.
JSEP ne fournit actuellement pas de mécanisme pour configurer la réception du simulcast. Cela signifie que si le simulcast est proposé par le point de terminaison distant, la réponse générée par un point de terminaison JSEP n'indiquera pas de support pour la réception du simulcast, et en tant que tel, le point de terminaison distant n'enverra qu'un seul encodage par section "m=".
De plus, JSEP ne fournit pas de mécanisme pour gérer une offre entrante demandant le simulcast du point de terminaison JSEP. Cela signifie que la configuration du simulcast dans le cas où le point de terminaison JSEP reçoit l'offre initiale nécessite une signalisation hors bande ou une inspection SDP. Cependant, dans le cas où le point de terminaison JSEP configure le simulcast dans son offre initiale, tous les flux simulcast établis continueront de fonctionner lors de la réception d'une nouvelle offre entrante. Les versions futures de cette spécification peuvent ajouter des API supplémentaires pour gérer le scénario d'offre initiale entrante.
Lors de l'utilisation de JSEP pour transmettre plusieurs encodages à partir d'un RtpSender, les techniques de [RFC8853] et [RFC8851] sont utilisées. Plus précisément, lorsque plusieurs encodages ont été configurés pour un RtpSender, la section "m=" pour le RtpSender inclura un attribut "a=simulcast", tel que défini dans [RFC8853], Section 5.1, avec une description de flux simulcast "send" qui répertorie chaque encodage souhaité, et aucune description de flux simulcast "recv". La section "m=" inclura également un attribut "a=rid" pour chaque encodage, comme spécifié dans [RFC8851], Section 4; l'utilisation d'identificateurs de restriction (RID, également appelés rid-ids ou RtpStreamIds) permet de désambiguïser les encodages individuels même s'ils font tous partie de la même section "m=".