Skip to content

Reflector settings

Martin Pulec edited this page Feb 6, 2020 · 14 revisions

UltraGrid is bundled with a packet reflector. There are 2 flavors of reflector - first is hd-rum (located in directory hd-rum-multi), which a simple packet reflector that retransmits a received flow to multiple recepients. Second is hd-rum-transcode which is capable of transcoding data flows and changing other parameters of flow.

Hd-rum

Syntax is as following:

hd-rum 8M 5004 receiver1 receiver2 ...

where 8M is buffer size and 5004 port (default UltraGrid video port). For audio you'd need use reflector for UltraGrid audio port as well (default is 5006):

hd-rum 8M 5006 receiver1 receiver2 ...

Hd-rum-transcode

The other reflector, called hd-rum-transcode, is more powerful. It is capable of transcoding the received video as well as simply retransmitting packets (in a similar way as hd-rum does). Transcoding occurs when -c parameter is specified in host options. Usage is:

hd-rum-transcode <global_opts> 8M 5004 <host1_opts> <host1> <host2_opts> <host2> ... <hostn_opts> <hostn>

Note: As for legacy hd-rum, hd-rum-transcode only retransmits/transcodes selected port (here 5004). Because UltraGrid uses different ports for video and audio (5004 and 5006 by default, +2 for audio in general), reflector needs to be run for both, therefore one instance for video and the other for audio. For audio, it must be run in retransmitting mode.

Sample usage is:

hd-rum-transcode 8M 5004 -c libavcodec:codec=H.264 receiver1 receiver2 -m 9000 -c jpeg receiver3 # video

hd-rum-transcode 8M 5006 receiver1 receiver2 receiver3 # audio

In this setup, first two arguments are mandatory with following meaning:

  • buffer size (here 8M, so 8 MBytes)
  • port to listen to

Furthermore:

  1. receiver1 receives video transcoded to H.264
  2. receiver2 receives unaltered data as it is sent by sender to reflector
  3. receiver3 gets JPEG data in with Jumbo frames
  4. receiver1, receiver2 and receiver3 receive audio retransmitted from sender

Options are (always precede host address which they relate to):

  • -P - TX port to be used (if not specified RX is used)
  • -c - compression

Following options will be used only if '-c' parameter is set:

  • -m - MTU size
  • -l <limiting_bitrate> - bitrate to be shaped to
  • -f - FEC that will be used for transmission.

For more info refer to this page.

See also

Clone this wiki locally