web-dev-qa-db-fra.com

CSRC et SSRC en RTP

Je suis très nouveau sur RTP, quelqu'un peut-il expliquer le CSRC et le SSRC en général?

De http://www.rfc-editor.org/rfc/rfc3550.txt , ce qui est écrit est le suivant: Le champ SSRC identifie la source de synchronisation. Cela signifie-t-il que, dans le réseau, il peut y avoir de nombreux expéditeurs qui contribuent à RTP (réseau de multidiffusion) et identifient de quelle source provient le paquet ??

CSRC: Source contributive (CSRC): Source d'un flux de RTP paquets ayant contribué au flux combiné produit par un mélangeur RTP (voir ci-dessous). N'ai pas compris.

quelqu'un peut-il expliquer avec exemple s'il vous plaît? Merci

9
badri.coder

tiré de link:

SSRCIdentifie la source de synchronisation. La valeur est choisie de manière aléatoire, avec l'intention de ne pas avoir deux sources de synchronisation dans la même session RTP auront le même SSRC. Bien que la probabilité que plusieurs sources choisissent le même identifiant soit faible, toutes les implémentations RTP doivent être prêtes à détecter et résoudre les collisions. Si une source modifie son adresse de transport source, elle doit également choisir un nouveau SSRC pour éviter d'être interprétée comme une source en boucle.

CSRCUn tableau de 0 à 15 éléments CSRC identifiant les sources contribuant à la charge utile contenue dans ce paquet. Le nombre d'identifiants est donné par le champ CC. S'il y a plus de 15 sources contributives, seules 15 peuvent être identifiées. Les identificateurs CSRC sont insérés par les mélangeurs, en utilisant les identificateurs SSRC des sources contributives. Par exemple, pour les paquets audio, les identifiants SSRC de toutes les sources qui ont été mélangées pour créer un paquet sont listés, permettant une indication correcte du locuteur au destinataire.

Pour être honnête, je n'ai jamais vu personne utiliser réellement SSRC ou CSRC de manière significative. Dans tout le code que j'ai traité, nous générons simplement un nombre aléatoire dans SSRC et nous ne prenons jamais la peine de renseigner CSRC.

Je suppose que SSRC peut être utile pour tracer et/ou détecter des chemins audio en boucle.

Je suppose que CSRC peut être utile pour un point d'extrémité sip recevant de l'audio d'un serveur de conférence où plusieurs sources audio sont mélangées, comme indiqué dans la citation ci-dessus. Comme je l'ai dit, dans le code du serveur de conférence auquel j'ai fait face, nous ne nous en soucions pas.

12
Shane Powell

En ce qui concerne votre question "Cela signifie-t-il que, dans le réseau, il peut y avoir de nombreux expéditeurs qui contribuent à RTP (réseau de multidiffusion) et identifient de quelle source provient le paquet?"

Ce n'est pas particulièrement vrai, car lorsqu'il y a de nombreuses sources, la vidéo/l'audio est mélangé par le mélangeur RTP et le SSRC dans ce cas est le mélangeur SSRC RTP qui n'est pas la source du RTP _ expéditeur du paquet, afin de connaître les sources, vous devez consulter le tableau CSRC qui a ces sources identifiées par SSRC unique. La taille du tableau est également indiquée par le champ d’en-tête CC: count CSRC.

Si l'audio/la vidéo n'est pas combinée (uni-cast), le SSRC est de l'expéditeur de cette vidéo/audio et le CSRC n'est pas renseigné.

Présentation utile: http://voip.netlab.uky.edu/~fei/teaching/cs671/slides/rtp.pdf

2
Nizarazo
  1. SSRC:

L'identificateur de source de synchronisation (32 bits) distingue distinctement la source d'un flux de données. Les sources de synchronisation de la même session RTP seront uniques.

2.CSRC:

Les ID de source contributive (32 bits chacun) additionnent les sources contributives dans un flux généré à partir de plusieurs sources.

https://en.wikipedia.org/wiki/Real-time_Transport_Protocol

0
Charles