Multipoint Setup - CESNET/UltraGrid GitHub Wiki

UltraGrid itself is well suitable for point-to-point transmissions. However, it is possible to emulate a multi-point operation among few parties (let say 3 or 4). For more sides it is impractical because below described setup uses a '''full-mesh''' topology. For more parties please check Videoconferencing Mode. This mode can be used also for lesser amount of sides (those 3 or 4) to simplify the setup but may induce additional latency.

Table of Contents

Description

UltraGrid itself is point-to-point. So the main idea is the use of reflectors. The packet reflector works in a simple way - it listens to UDP packets on one port and transmits them to multiple hosts.

UltraGrid uses by default UDP ports 5004 (video) and 5006 (audio; offset is implicitly video+2). In order to use a full mesh, it is required to use different port numbers for streams going from different sites.

So, finally, every site has these processes running:

  1. sending UltraGrid (audio and video)
  2. reflector for video
  3. reflector for audio
  4. receivers for every other side

Schema

----------                       /  B
-   A    -  --6000--> vreflector -  C
-        -  --6002--> areflector -  B
----------                       \  C

Assuming 3 hosts A, B and C and further port assignment:

  1. A/V streams from A - ports 6000 and 6002
  2. A/V streams from B - ports 6100 and 6102
  3. A/V streams from C - ports 6200 and 6202

Commands

If done so, use following commands on host A. The setup for the others would by symmetrical. Assuming the use of hd-rum-multi reflector (you may also use hd-rum, doesn't work on MSW):

uv -t <vcapture> -s <acapture> -c <vcompress> -P 6000 localhost
hd-rum-transcode 8M 6000 B C
hd-rum-transcode 8M 6002 B C
uv -d gl -r alsa -P 6100       # receiver for B
uv -d gl -r alsa -P 6200       # receiver for C

See also

⚠️ **GitHub.com Fallback** ⚠️