Aller au contenu

[protocole réseau] RTP synchronisé ?


Vara

Messages recommandés

Bien le bonjour, meme si je sais que ce forum n'est pas vraiment destiné aux réseaux, je me permet de poser ma question ici, des fois que quelqu'un de bien informé passe pare ici :

En gros, dans ma tête trotte un petit projet qui nécessite une diffusion multicast de media audio, je pense utiliser VLC pour le serveur de diffusion et donc le protocole RTP. Seulement, il faudrait que tout les clients qui se connectent aux flux multicast soient parfaitement synchronisés... est ce que quelqu'un sait si RTP ou RTCP permet cette synchronisation ? et le cas échéant comment la mettre en oeuvre ?

edit : je viens de penser a un truc bete, si je met tout le monde (clients et serveur) sur le même support physique, genre sur un HUB, y a pas de raison que les données ne soient pas synchronisées, non ? En plus vu que c'est du multicast le réseau sera pas surchargé même en utilisant un HUB

Lien à poster

ceci dit sur un switch le resultat sera exactement le meme. car du point de vu multicast un switch est un hub. Sauf les switchs intelligent avec igmp snooping.

RTP est un protocol ordonné, avec horodatage des trames. Donc oui tout le monde est synchro. enfin cela depend de ce que tu veux entendre par synchro.

de par le fait que tu diffuse en multicast chacun sera parfaitement snchrone. sauf si ils buffurisent plus ou moins avant de jouer le son (ce qui est un minimum nécessaire pour garantir une qualité minimale et supporter la perte de qq trame ou la gigue). il n'y a qu'une copie des données, donc forcement tout le monde est synchro (dans la limite de bufferisation et de temps de traversée des routeur)

Lien à poster

Oui par synchro j'entends que tout le monde joue la même chose au même moment, et de ce point de vue la bufferisation peut éventuellement poser problème. Mais c'est vrai que ce que j'ai dis est bête, si j'utilise un switch basique il se comportera comme un HUB...

et le réseau ne sera de toute facon pas routé, donc pas de pb avec les routeurs.

Donc à priori si soucis il y a, ça sera au niveau de la bufferisation, mais si j'utilise exactement la même architecture matériel/logicielle sur chaque client, ils devraient se comporter exactement de la même manière (à très peut de chose près)

Lien à poster

oui ca devrait marcher.

tu demarre ta diffusion a t0

a t1, ton premier client demande le flux et a t1+100ms il joue le flux demandé a t1

a t2 le deuxieme client demande le flux, et le joue a t2+100ms.

a t2 + 100ms, le client 1 jouera bien le son diffusé a t2 car le delta_t sera toujours de t2 - t1.

Lien à poster

Bon, conclusion, sur un switch basique, j'ai un décalage de l'ordre de la seconde sur deux PC qui jouent le même flux... Faudra que j'essaye avec un HUB, meme si j'ai pas grand espoir, et sinon creuser plus le problème... mais faire de la synchro de lecture de flux UDP ca me parrait ardu quand meme

Le probleme vient peut être du fait que les PC ne mettent pas en tampon pendant la meme durée, ca dépent de l'OS ou de VLC ca ?

Lien à poster

la taille du tampon depend de VLC.

avec un hub cela ne changera rien a fortiori.

est tu sur que tu as démarré tes clients reelement simultanément ?

Ou alors tu les démarre, puis tu lance la diffusion ?

1s ce n'est pas trop mal cela dit.entre ma TV et la freebox il y a plus.

Lien à poster

Bon alors, non avec un HUB ca sera pas pire vu qu'il n'y a que quelques flux multicast en parallèle.

Ensuite non je les démarre pas en même temps, c'est justement le but en fait ^^ et la latence entre le serveur et les clients je m'en fiche, je veux juste que les clients jouent en même temps.

Et en gros l'idée, c'est de faire un système ou on aurait un client léger par pièce dans une maison, qui se connecterai à un serveur pour jouer de la musique, et on pourrait jouer la même musique dans plusieurs pièces, voir dans toute la maison, ou jouer des choses différentes, selon l'envie, et dans le principe du multicast, pouvoir créer/supprimer/modifier/rejoindre/quitter un flux de diffusion à partir des clients...

J'ai pensé à une transmission IP sur réseau ethernet en multicast... mais je me demande si je vai vraiment arriver à ce que je veux avec de l'IP... parce que dans le principe c'est quand même pas très "synchronization friendly" si je peux dire...

Lien à poster

ah parce que comment tu faisais ? 2 flux unicast ? si oui le serveur aussi bufferise un peu.

Et le multicast est reelement fait pour cela.

c'est sur qu'ethernet n'est pas isochrone, mais il ne faut pas exagérer non plus, c'est pas pour 1 MP3 Streamé que ca va ralentir quoique ce soit, surtout en multicast.

As tu essayer de lancer 2 clients sur la meme machine avant toutes choses ? c'est avant tout le test qui permettra de cibler le coeur du probleme.

Lien à poster

Je passe par un seul et même flux multicast pour le moment, et oui je pense pas qu'un bête flux ou deux (voire trois ou quatre au max dans mon idée) va surcharger grand chose... mais même sans surcharge ça ne garantis pas que deux machines traiteront au même instant des données reçues en même temps

Et lancer deux clients sur la même machine oui j'essayerai

Lien à poster
×
×
  • Créer...