|
|
Main help can be accessed via ristsender --helpurl <enter>
|
|
|
|
|
|
| Parameter | Description |
|
|
|
| ------ | ------ |
|
|
|
| buffer=### | sets the buffer size in milliseconds. The buffer size will work best at four to seven times the ping time. 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. We often say that there should be a “tuning period” for a RIST configuration. The log will tell you how many packets were recovered during any connection. We recommend taking a day or two when setting up a connection that you expect to run for long periods of time, monitoring the log, and adjusting the buffer up (or down) little by little, where necessary. |
|
|
|
| bandwidth=### | sets the maximum bandwidth in Kbps. It is necessary to configure the bandwidth to be higher than the max bandwidth of your stream(s). This is in order to allow room for messaging headroom, plus the re-requested packets. When tuning a connection for the first time, analyze your stream statistics locally at first, then start at 10% higher for a constant bitrate, 100% higher for variable bitrate. Especially for VBR, provide generous “headroom” in your bandwidth. You can always reduce it when configuring and tuning the connection. |
|
|
|
| return-bandwidth=### | sets the maximum bandwidth in Kbps for just the receiver-to-sender direction. This is an option which may sometimes help avoid congestion insofar as it may limit re-request messages in poor network conditions. |
|
|
|
| reorder-buffer=### | sets the size for a secondary buffer in which after all re=requested packets have been received, the out-of-order packets are released in the correct order. in most cases there should be no need to adjust this setting, but it may be helpful in conjunction with very long distance/large buffer/poor network conditions. |
|
|
|
| cname=abcde | provides a canonical name for the media. If multi-plexing more than one stream through a tunnel, this provides a convenient way to identify a particular stream within the log. You should make it standard practice to assign a cononical name whenever multi-plexing. (see also stream-id, below). |
|
|
|
| rtt-min=### | sets the minimum rtt setting in milliseconds. This can help reduce congestion by reducing the number of repeated re-requests in poor network conditions. More importantly, for very long-distance or connections that traverse under-sea cables, it may be important to adjust this setting. if you search for “Global ping Statistics” you will find a number of sites which test and track such times between various city pairs; this data is sometimes helpful for intercontinental connection tuning. |
|
|
|
| rtt-max=### | sets the maximum rtt setting in milliseconds. See rtt-min for a more complete description. in most cases, minimum and maximum should be set to be equal to one another.|
|
|
|
| verbose-level=# | 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. |
|
|
|
| timing-mode=# | Though RIST provides no inherent time synchronization, given this parameter, librist shall attempt to release the packets according to the timing indicated by the option specified. Note that the Network Time Protocol option is designed so that you can synchronize playback of multiplexed streams using ntp plus the buffer size as a guide. The allowed values are1, for Arrival Time and 2, for RTP/RTCP Timestamp plus NTP. Note that this different than the rtp-timestamp=# and the rtp-sequence=# URL parameters in that the latter two will not attempt to synchronize the release of the packets to the player. |
|
|
|
| miface=(device) | sets the adapter for multicast protocol, as in the example &miface=eth1. Note that the rist:// URLs must be unicast IP addresses; however, the media stream URLs, as in udp://xxx.xxx.xxx.xxx may be multicast. |
|
|
|
| stream-id=# | sets an arbitrary numeric identifier for a multiplexed stream. This parameter can be applied to the rist:// url on the sender, and to the udp:// or rtp:// URL on the receiver. The former “assigns” the ID. The latter allows you to specify which multiplexed stream the receiving side will output as a given IP/port output URL. You can therefore have up to ten streams in and ten streams out for a single RIST connection. Each individual stream must have a unique ID and its output shall then handle the ID accordingly. It is possible to send multiple streams through a GRE tunnel and only output selected streams at the receiving side, though that wastes the bandwidth. Such a routing scenario, however, allows for a sending side to send all streams to multiple receivers via one command line, putting the “onus” on the receivers to sort out their desired streams. |
|
|
|
| rtp-timestamp=# | (0/1) instructs librist to insert the rtp time stamp in the RIST header. |
|
|
|
| rttp-sequence=# | (0/1) instructs librist to insert the rtp sequence number in the RIST header |
|
|
|
| rtp-ptype=# | designates an rtp payload type. RFC 3551 describes the standard types. |
|
|
|
| aes-type=# | specifies the specific encrytion. Specify “128” for AES-128 or “256” for AES-256. Remember that you must also specify the pass phrase, and that encryption is not supported for the simple protocol at all. |
|
|
|
| secret=abcde | 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 the “secret” specify the “aes-type” parameter. The rotating keys shall be placed inside the rtcp messages, using your passphrase as the pre-shared key. Be sure that the passphrase for sender and receiver match! |
|
|
|
| virt-dst-port | The port within the GRE tunnel. This has nothing to do with the media port(s). If the GRE is device /dev/tun11, having an address of 1.1.1.2, and the virtual destination port is 10000, and your media is using port 8193/4, the operating system will use 1.1.1.2:10000 as the destination from the sender’s point of view, or the inbound on the receiver’s point of view. libRIST will make use of that device/IP/port. As far as your media source and media player are concerned, the media is on ports 8193/4 on their respective interfaces. The media knows nothing of the tunnel. |
|
|
|
| session-timeout=### | terminates the RIST connection after inactivity/lack of keepalive response for the limit (in milliseconds) which you set with this parameter. |
|
|
|
| keepalive-interval=### | time in milliseconds between pings. As is standard practice for GRE tunnels, the keep alive helps ensure the tunnel remains connected and open should no media be traversing it at a given time. |
|
|
|
| key-rotation=## | sets the key rotation period in milliseconds when aes and a passphrases are specified. |
|
|
|
| congestion-control=# | libRIST provides built in congestion control, which is important in situations in which a sender drops off the connection, but the receiver still sends re-requests. The three options for this parameter are 0=disabled, 1=normal and 2=aggressive. In general, don’t set the parameter to “aggressive” unless you’ve definitely established that congestion is a problem. |
|
|
|
| min-retries=## | sets a minimum number of re-requests for a lost packet. Note that setting this too high can lead to congestion. Regardless of this setting, the size of the buffer and the roundtrip time will render too high a minimum value here irrelevant. |
|
|
|
| max-retries=## | sets a maximum number of re-requests for a lost packet. See “min-retries.” |
|
|
|
| weight=# | sets the relative share for load balanced connections. The best way to describe this will be to provide an example. The default is five, so in a setup where two paths are given weights of 5 and 10 respectively, the former would receive 1/3 of packets sent, and the latter would receive 2/3. |
|
|
|
| username=abcde | This corresponds to the srp-auth credentials defined (globally) on the “other” side, when the “other” side is in listen mode with an srp-auth file holding the corresponding credentials. |
|
|
|
| password=abcde | This corresponds to the srp-auth credentials defined (globally) on the “other” side, when the “other” side is in listen mode with an srp-auth file holding the corresponding credentials. |
|
|
|
| compression=# | utilizes liblz4 to compress all traffic in the GRE tunnel. 0 is off, 1 is on|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|