A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Haivision/srt/commit/cf34d69f0b595c76e8bc9ef9a12f1ba583f1a603 below:

[docs] Updated options description for srt-live-transmit (#2209) · Haivision/srt@cf34d69 · GitHub

@@ -107,6 +107,16 @@ The specification and meaning of the fields in the URI depend on the mode.

107 107

The **PORT** part is always mandatory and it designates either the port number

108 108

for the target host or the port number to be bound to read from.

109 109 110 +

The following options are available through URI parameters:

111 + 112 +

- **iptos**: sets the `IP_TOS` socket option

113 +

- **ttl**: sets the `IP_TTL` or `IP_MULTICAST_TTL` option, depending on mode

114 +

- **mcloop**: sets the `IP_MULTICAST_LOOP` option (multicast mode only)

115 +

- **rcvbuf**: sets the `SO_RCVBUF` socket option

116 +

- **sndbuf**: sets the `SO_SNDBUF` socket option

117 +

- **adapter**: sets the local binding address

118 +

- **source**: uses `IP_ADD_SOURCE_MEMBERSHIP`, see below for details

119 + 110 120

For sending to unicast:

111 121 112 122

```yaml

@@ -173,7 +183,7 @@ options that can be set through the parameters.

173 183

SRT can be connected using one of three connection modes:

174 184 175 185

- **caller**: the "agent" (this application) sends the connection request to

176 -

the peer, which must be **listener**, and this way it initiates the

186 +

the peer, which must be **listener**, and this way it initiates the

177 187

connection.

178 188 179 189

- **listener**: the "agent" waits to be contacted by any peer **caller**.

@@ -182,50 +192,73 @@ does not use this ability; after the first connection, it no longer

182 192

accepts new connections.

183 193 184 194

- **rendezvous**: A one-to-one only connection where both parties are

185 -

equivalent and both connect to one another simultaneously. Whoever happened

186 -

to start first (or succeeded to punch through the firewall) is meant to have

195 +

equivalent and both attempt to initiate a connection simultaneously. Whichever party happens

196 +

to start first (or succeeds in punching through the firewall first) is considered to have

187 197

initiated the connection.

188 198 189 199

This mode can be specified explicitly using the **mode** parameter. When it's

190 -

not specified, then it is "deduced" the following way:

200 +

not specified, then it is derived based on the *host* part in the URI and

201 +

the presence of the **adapter** parameter:

191 202 192 -

- `srt://:1234` - the *port* is specified (1234), but *host* is empty. This assumes **listener** mode.

193 -

- `srt://remote.host.com:1234` - both *host* and *port* are specified. This assumes **caller** mode.

203 +

* Listener mode: if you leave the *host* part empty (**adapter** may be specified):

204 +

- `srt://:1234`

205 +

* Caller mode: if you specify *host* part, but not **adapter** parameter:

206 +

- `srt://remote.host.com:1234`

207 +

* Rendezvous mode: if you specify *host* AND **adapter** parameter:

208 +

- `srt://remote.host.com:1234&adapter=my.remote.addr`

194 209 195 -

When the `mode` parameter is specified explicitly, then the interpretation of the `host` part is the following:

210 +

Sometimes the required parameter specification results in a different mode

211 +

than desired; in this case you should specify the mode explicitly.

196 212 197 -

- For caller, it's always the destination host address. If this is empty, it is

198 -

resolved to 0.0.0.0, which usually should mean connecting to the local host

213 +

The interpretation of the *host* and *port* parts is the following:

199 214 200 -

- For listener, it defines the IP address of the local device on which the

201 -

socket should listen, e.g.:

215 +

- In **LISTENER** mode:

216 +

- *host* part: the local IP address to bind (default: 0.0.0.0 - "all devices")

217 +

- *port* part: the local port to bind (mandatory)

218 +

- **adapter** parameter: alternative for *host* part, e.g.:

202 219 203 220

```yaml

204 221

srt://10.10.10.100:5001?mode=listener

205 222

```

206 223 207 -

An alternative method to specify this IP address is the `adapter` parameter:

224 +

or

208 225 209 226

```yaml

210 227

srt://:5001?adapter=10.10.10.100

211 228

```

212 229 213 -

The **rendezvous** mode is not deduced and it has to be specified

214 -

explicitly. Note also special cases of the **host** and **port** parts

215 -

specified in the URI:

216 - 217 -

- **CALLER**: the *host* and *port* parts are mandatory and specify the remote host and port to be contacted.

218 -

- The **port** parameter can be used to enforce the local outgoing port (**not to be confused** with remote port!).

219 -

- The **adapter** parameter is not used.

220 -

- **LISTENER**: the *port* part is mandatory and it specifies the local listening port.

221 -

- The **adapter** parameter can be used to specify the adapter.

222 -

- The *host* part, if specified, can be also used to set the adapter - although in this case **mode=listener** must be set explicitly.

223 -

- The **port** parameter is not used.

224 -

- **RENDEZVOUS**: the *host* and *port* parts are mandatory.

225 -

- The *host* part specifies the remote host to contact.

226 -

- The *port* part specifies **both local and remote port**. Note that the local port is this way both listening port and outgoing port.

227 -

- The **adapter** parameter can be used to specify the adapter.

228 -

- The **port** parameter can be used to specify the local port to bind to.

230 +

- In **CALLER** mode:

231 +

- *host* part: remote IP address to connect to (mandatory)

232 +

- *port* part: remote port to connect to (mandatory)

233 +

- **port** parameter: the local port to bind (default: 0 - "system autoselection")

234 +

- **adapter** parameter: the local IP address to bind (default: 0.0.0.0 - "system selected device")

235 + 236 +

```yaml

237 +

srt://remote.host.com:5001

238 +

```

239 + 240 +

```yaml

241 +

srt://remote.host.com:5001?adapter=local1&port=4001&mode=caller

242 +

```

243 + 244 +

- In **RENDEZVOUS** mode: same as **CALLER** except that the local

245 +

port, if not specified by the **port** parameter, defaults to the

246 +

value of the remote port (specified in the *port* part in the URI).

247 + 248 +

```yaml

249 +

srt://remote.host.com:5001?mode=rendezvous

250 +

```

251 +

(uses `remote.host.com` port 5001 for a remote host and the default

252 +

network device for routing to this host; the connection from the peer is

253 +

expected on that device and port 5001)

254 + 255 + 256 +

```yaml

257 +

srt://remote.host.com:5001?port=4001&adapter=local1

258 +

```

259 +

(uses `remote.host.com` port 5001 for a remote host and the peer

260 +

is expected to connect to `local1` address and port 4001)

261 + 229 262 230 263

**IMPORTANT** information about IPv6.

231 264

@@ -238,14 +271,14 @@ the following restrictions:

238 271

2. In listener mode, if you leave the host empty, the socket is bound to

239 272

`INADDR_ANY` for IPv4 only. If you want to make it listen on IPv6, you need to

240 273

specify the host as `::`.

241 -

NOTE: Don't use square brackets syntax in the adapter specification,

242 -

as in this case only the host is expected.

274 +

NOTE: Don't use square brackets syntax in the **adapter** parameter

275 +

specification, as in this case only the host is expected.

243 276 244 277

3. If you want to listen for connections from both IPv4 and IPv6, mind the

245 278

`ipv6only` option. The default value for this option is system default (see

246 279

system manual for `IPV6_V6ONLY` socket option); if unsure, you might want to

247 280

enforce `ipv6only=0` in order to be able to accept both IPv4 and IPv6

248 -

connections in the same listener.

281 +

connections by the same listener, or set `ipv6only=1` to accept exclusively IPv6.

249 282 250 283

4. In rendezvous mode you may only interconnect both parties using IPv4,

251 284

or both using IPv6. Unlike listener mode, if you want to leave the socket

@@ -271,21 +304,22 @@ Examples:

271 304

connection with local address `inaddr6_any` (IPv6) and port 4000 to a

272 305

destination with port 5000.

273 306 274 -

* `srt://[::1]:5000?adapter=127.0.0.1&mode=rendezvous` - this URI is invalid

275 -

(different IP versions for binding and target address)

307 +

* `srt://[::1]:5000?adapter=127.0.0.1` - this URI is invalid

308 +

(different IP versions for binding and target address in rendezvous mode)

276 309 277 -

Some parameters handled for SRT medium are specific, all others are socket options. The following parameters are handled special way by `srt-live-transmit`:

310 +

Some parameters handled for SRT medium are specific, all others are socket options. The following parameters are handled in a special way by `srt-live-transmit`:

278 311 279 312

- **mode**: enforce caller, listener or rendezvous mode

280 -

- **port**: enforce the **outgoing** port (the port number that will be set in the UDP packet as a source port when sent from this host). This can be used only in **caller mode**.

313 +

- **port**: enforce the **outgoing** port (the port number that will be set in the UDP packet as a source port when sent from this host). Not used in **listener** mode.

281 314

- **blocking**: sets the `SRTO_RCVSYN` for input medium or `SRTO_SNDSYN` for output medium

282 315

- **timeout**: sets `SRTO_RCVTIMEO` for input medium or `SRTO_SNDTIMEO` for output medium

283 -

- **adapter**: sets the adapter for listening in *listener* or *rendezvous* mode

316 +

- **adapter**: sets the local IP address to bind

284 317 285 -

All other parameters are SRT socket options. The following have the following value types:

318 +

All other parameters are SRT socket options. The Values column uses the

319 +

following type specification:

286 320 287 321

- `bool`. Possible values: `yes`/`no`, `on`/`off`, `true`/`false`, `1`/`0`.

288 -

- `bytes` positive integer [1; INT32_MAX].

322 +

- `bytes` positive integer `[1; INT32_MAX]`.

289 323

- `ms` - positive integer value of milliseconds.

290 324 291 325

| URI param | Values | SRT Option | Description |


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4