|
|
|
The ristsender is provided as a production-quality, fully featured example program. You may use it as-is for testing or production, or you may examine the code for ideas in creating your own utilities.
|
|
|
|
|
|
|
|
Note that you should look at the syntax and examples for sender, receiver *and* risturl.
|
|
|
|
|
|
|
|
| Parameter | Description |
|
|
|
|
| ------ | ------ |
|
|
|
|
| -i --inputurl | refers to the incoming stream(s), which is subsequently to be sent to the RIST receiver. This is normally a udp or rtp media stream from a host/port in the private network or the localhost adapter. As an example, udp://@127.0.0.1:8193 would listen, which we specify as a listener via the “@” sign to port 8193 of the localhost adapter. A URL such as udp://192.168.1.10:8195 would be interpreted as reaching out to the host at 192.168.1.10 for the media stream. You will find additional information on the inputurl parameter in the section dedicated to the URL parameters. You can list up to ten URLs, separating them by commas |
|
|
|
|
| -o --outputurl | refers to the rist receiver destination(s). rist://123.124.125.126:8194 would refer to an external host ristreceiver at that address and port. Note the even numbered port. The outputurl parameter provides a large number of individual customization possibilities. We refer you to the section dedicated to the URL parameters. You can list up to ten URLs, separating them by commas. Remember that the "@" sign followed by the sender host's own IP address indicates you wish to put the sender in "listen" mode, and that the receiver will "reach out" to contact it. |
|
|
|
|
| -b --buffer *value* | refers to the size of the buffer which stores the most recently sent packets. If the ristreceiver sends a request to retransmit a specific packet, if it is in the buffer, the ristsender resends it. The buffer size will work best at four to seven times the ping time between the longest locations. This allows time for requests for the retransmission of a lost or corrupted packet, and the subsequent retransmission of its replacement. If your stream traverses undersea fiber routes or other types of sometimes unstable or congested routes, you may require an even bigger buffer. This buffer will “delay” the stream by the amount of the buffer, but the stream will arrive without added jitter. |
|
|
|
|
| -s --secret *passphrase* | sets the specified passphrase for Main or Advanced profile encryption. Note that simple protocol does not support encryption, and that you must in addition to -s specify the -e (encryption type) parameter. The rotating keys shall be placed inside the rtcp messages, using your -e parameter as the pre-shared key. |
|
|
|
|
| -e --encryption-type | specifies the specific encryption. Specify “128” for AES-128 or “256” for AES-256. Remember that you must also specify the pass phrase, that both "sides" must "agree" and that encryption is not supported for the simple protocol at all. |
|
|
|
|
| -p --profile *number* | specifies the profile type for the RIST connection. Choose “0” for simple, “1” for main, or “2” for advanced. *The simple profile* provides a minimal implementation for transport of an rtp or udp stream over a given port between two hosts, with an additional port used for status and re-request messages. Note that it is expected that simple profile viewer applications such as vlc 4.x, currently in beta, will promote widespread adoption of the RIST protocol to a global audience. *The main profile* provides additional features, most notably the optional use of a tunnel (utilizing only one port) between hosts through which both messages and media can traverse, with support for encryption and multiplexing. It will also be found in vlc 4.0. The main profile also provides for multiple network paths, which enables load balancing and redundancy. *The advanced profile* adds lz4 compression of the GRE tunnel, a quick but efficient form of compression. In general, you should find that the Simple and Main profile configured libRIST connections should be interoperable with other vendors’ RIST implementations, depending upon how true each vendor implementation is to the RIST standards, which are still relatively new. The Advanced profile is compatible only with connections using the libRIST implementation. |
|
|
|
|
| -n --null-packet-deletion | enable deletion (non-transmission) of null/padded packets when actual bitrate falls well below the bitrate parameter. |
|
|
|
|
| -S --statsinterval *value in ms* | specifies the time in milliseconds (default is 1000 ms or 1 second) between statistics summaries. A value of zero disables the stats. When testing or tuning libRIST, you will find the stats, and in particular, the statistics pertaining to the resends and lost packets an important means of understanding how best to set up your connections. |
|
|
|
|
| -v --verbose-level *value* | The verbosity settings match the standard Syslog options. These are self explanatory: -1 for disable. 3 for errors only. 4 adds warnings. 5 adds notices. 6 adds info. 7 for debug mode. 100 allows you to dry-run or simulate the RIST connection. |
|
|
|
|
| -r --remote-logging *IP:PORT* | sends logs and stats in the format seen output to the console) to the desired IP:PORT using udp messages. |
|
|
|
|
| -F --srpfile *filepath* | provides for a secure authorization mechanism for multiple viewers from unknown source addresses, limited only by processing power and bandwidth. Please refer to the section describing Authorization for a detailed description. |
|
|
|
|
| -f --fast-start *0 or 1* | Enables or disables data output flow prior to handshake completion. |
|
|
|
|
| -h --help | displays the help text. |
|
|
|
|
| -u --help-url | displays the help regarding URL construction, which provides the settings on a connection by connection basis. | |