PipeWire  1.0.5
SAP Announce and create RTP streams

The rtp-sap module announces RTP streams that match the rules with the announce-stream action.

It will create source RTP streams that are announced with SAP when they match the rule with the create-stream action.

If no stream.rules are given, it will announce all streams with sess.sap.announce = true and it will create a receiver for all announced streams.

Module Name

libpipewire-module-rtp-sap

Module Options

Options specific to the behavior of this module

  • local.ifname = <str>: interface name to use
  • sap.ip = <str>: IP address of the SAP messages, default "224.0.0.56"
  • sap.port = <int>: port of the SAP messages, default 9875
  • sap.cleanup.sec = <int>: cleanup interval in seconds, default 90 seconds
  • source.ip =<str>: source IP address, default "0.0.0.0"
  • net.ttl = <int>: TTL to use, default 1
  • net.loop = <bool>: loopback multicast, default false
  • stream.rules = <rules>: match rules, use create-stream and announce-stream actions

General options

Options with well-known behavior:

# Example configuration

1 context.modules = [
2 { name = libpipewire-module-rtp-sap
3  args = {
4  #local.ifname = "eth0"
5  #sap.ip = "224.0.0.56"
6  #sap.port = 9875
7  #sap.cleanup.sec = 5
8  #source.ip = "0.0.0.0"
9  #net.ttl = 1
10  #net.loop = false
11  stream.rules = [
12  { matches = [
13  # any of the items in matches needs to match, if one does,
14  # actions are emited.
15  { # all keys must match the value. ! negates. ~ starts regex.
16  #rtp.origin = "wim 3883629975 0 IN IP4 0.0.0.0"
17  #rtp.payload = "127"
18  #rtp.fmt = "L16/48000/2"
19  #rtp.session = "PipeWire RTP Stream on fedora"
20  #rtp.ts-offset = 0
21  #rtp.ts-refclk = "private"
22  sess.sap.announce = true
23  }
24  ]
25  actions = {
26  announce-stream = {
27  }
28  }
29  }
30  { matches = [
31  { # all keys must match the value. ! negates. ~ starts regex.
32  #rtp.origin = "wim 3883629975 0 IN IP4 0.0.0.0"
33  #rtp.payload = "127"
34  #rtp.fmt = "L16/48000/2"
35  #rtp.session = "PipeWire RTP Stream on fedora"
36  #rtp.ts-offset = 0
37  #rtp.ts-refclk = "private"
38  rtp.session = "~.*"
39  }
40  ]
41  actions = {
42  create-stream = {
43  #sess.latency.msec = 100
44  #sess.ts-direct = false
45  #target.object = ""
46  }
47  }
48  }
49  ]
50  }
51 }
52 ]
Since
0.3.67