rubenc2/librist

By rubenc2

Updated about 5 years ago

Intelsat Docker libRIST implementation for TESTING interoperability. LibRIST v0.2.3-4-g5f0ea01

Image
2

5.8K

rubenc2/librist repository overview

Intelsat Docker RIST protocol, using the open-source librist tools

1) Tested the docker implementation for simple profile and main profile: no issues found
2) Added FFMPEG to the docker image
3) I will add a self-contained test pattern and a ristsender wrapper to add that functionality: Next
Next update of this docker image: libRIST = 0.3.0
The ristsender running in a docker container example
Simple Profile:
docker run --rm -p 4010-4011:4010-4011/udp -p 1234:1234/udp rubenc2/librist ristsender -i 'udp://@:1234' -o 'rist://[Target IP]:4010' -b2000 -p0 -S1000
On this example,
Source UDP Stream Port = 1234
Target RIST Port = 4010 (also include 4011 for the RTCP connection)

Main Profile:
docker run --rm -p 4010-4011:4010-4011/udp -p 1234:1234/udp rubenc2/librist ristsender -i 'udp://@:1234' -o 'rist://[Target IP]:4010?virt-dst-port=1970' -b2000 -p1 -n -S1000
On this example,
Source UDP Stream Port = 1234
Target GRE Tunnel RIST Port = 4010 (also include 4011 for the RTCP connection)
Virt-dst-port = Is the port used by the stream inside the Tunnel, in our case 1970
Null Packets Deletion (-n), this allows to reduced the transmitted bit-rate by removing null-packets from the stream
ristsender Options
   -i | --inputurl  udp://... or rtp://... * | Comma separated list of input udp or rtp URLs            |
   -o | --outputurl rist://...             * | Comma separated list of output rist URLs                 |
   -b | --buffer value                       | Default buffer size for packet retransmissions           |
   -s | --secret PWD                         | Default pre-shared encryption secret                     |
   -e | --encryption-type TYPE               | Default Encryption type (0, 128 = AES-128, 256 = AES-256)|
   -p | --profile number                     | Rist profile (0 = simple, 1 = main, 2 = advanced)        |
   -n | --null-packet-deletion               | Enable NPD, receiver needs to support this!              |
   -S | --statsinterval value (ms)           | Interval at which stats get printed, 0 to disable        |
   -v | --verbose-level value                | To disable logging: -1, log levels match syslog levels   |
   -r | --remote-logging IP:PORT             | Send logs and stats to this IP:PORT using udp messages   |
   -F | --srpfile filepath                   | When in listening mode, use this file to hold the list   |
                                             | of usernames and passwords to validate against. Use the  |
                                             | ristsrppasswd tool to create the line entries.           |
   -f | --fast-start value                   | Controls data output flow before handshake is completed  |
                                             |  0 = hold data out                                       |
                                             |  1 = start to send data immediately                      |
   -h | --help                               | Show this help                                           |
   -u | --help-url                           | Show all the possible url options                        |
  • == mandatory value
    Default values: %s
    --profile 1 /
    --statsinterval 1000 /
    --verbose-level 6
The ristsreceiver running in a docker container example
Simple Profile:
docker run --rm -p 4010-4011:4010-4011/udp -p 1234:1234/udp rubenc2/librist ristreceiver -i 'rist://@:4010' -o 'udp://[Stream IP]:1234' -b2000 -p0 -S1000
On this example,
Output Stream UDP Port = 1234
Source RIST Port = 4010 (also include 4011 for the RTCP connection)

Main Profile:
docker run --rm -p 4010-4011:4010-4011/udp -p 1234:1234/udp rubenc2/librist ristsender -i 'rist://@:4010?virt-dst-port=1970' -o 'udp://[Stream IP]:1234' -b2000 -p1 -n -S1000
On this example,
Output Stream UDP Port = 1234
Target GRE Tunnel RIST Port = 4010 (also include 4011 for the RTCP connection)
Virt-dst-port = Is the port used by the stream inside the Tunnel, in our case 1970
ristreceiver Options
   -i | --inputurl  rist://...             * | Comma separated list of input rist URLs                  |
   -o | --outputurl udp://... or rtp://... * | Comma separated list of output udp or rtp URLs           |
   -b | --buffer value                       | Default buffer size for packet retransmissions           |
   -s | --secret PWD                         | Default pre-shared encryption secret                     |
   -e | --encryption-type TYPE               | Default Encryption type (0, 128 = AES-128, 256 = AES-256)|
   -p | --profile number                     | Rist profile (0 = simple, 1 = main, 2 = advanced)        |
   -S | --statsinterval value (ms)           | Interval at which stats get printed, 0 to disable        |
   -v | --verbose-level value                | To disable logging: -1, log levels match syslog levels   |
   -r | --remote-logging IP:PORT             | Send logs and stats to this IP:PORT using udp messages   |
   -F | --srpfile filepath                   | When in listening mode, use this file to hold the list   |
                                             | of usernames and passwords to validate against. Use the  |
                                             | ristsrppasswd tool to create the line entries.           |
   -h | --help                               | Show this help                                           |
   -u | --help-url                           | Show all the possible url options                        |
  • == mandatory value Default values: %s --profile 1 /
    --statsinterval 1000 /
    --verbose-level 6

Tag summary

Content type

Image

Digest

Size

27.6 MB

Last updated

about 5 years ago

docker pull rubenc2/librist