-
-
Save jmgrosen/fb214bb9fe36b27a8847b99c6590eb49 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# AES67 config file for PipeWire version "1.2.3" | |
context.properties = { | |
## Configure properties in the system. | |
#mem.warn-mlock = false | |
#mem.allow-mlock = true | |
#mem.mlock-all = false | |
#log.level = 2 | |
#default.clock.quantum-limit = 2048 | |
} | |
context.spa-libs = { | |
support.* = support/libspa-support | |
} | |
context.objects = [ | |
# An example clock reading from /dev/ptp0. You can also specify the network interface name, | |
# pipewire will query the interface for the current active PHC index. Another option is to | |
# sync the ptp clock to CLOCK_TAI and then set clock.id = tai, keep in mind that tai may | |
# also be synced by a NTP client. | |
# The precedence is: device, interface, id | |
{ factory = spa-node-factory | |
args = { | |
factory.name = support.node.driver | |
node.name = PTP0-Driver | |
node.group = pipewire.ptp0 | |
# This driver should only be used for network nodes marked with group | |
priority.driver = 100000 | |
clock.name = "clock.system.ptp0" | |
### Please select the PTP hardware clock here | |
# Interface name is the preferred method of specifying the PHC | |
clock.interface = "eth0" | |
#clock.device = "/dev/ptp0" | |
#clock.id = tai | |
# Lower this in case of periodic out-of-sync | |
resync.ms = 0.5 | |
object.export = true | |
} | |
} | |
] | |
context.modules = [ | |
{ name = libpipewire-module-rtp-sap | |
args = { | |
### Please select the interface here | |
local.ifname = eth0 | |
sap.ip = 239.255.255.255 | |
sap.port = 9875 | |
net.ttl = 32 | |
net.loop = false | |
stream.rules = [ | |
{ | |
matches = [ | |
{ | |
rtp.session = "~.*" | |
} | |
] | |
actions = { | |
create-stream = { | |
node.virtual = false | |
media.class = "Audio/Source" | |
device.api = aes67 | |
# You can adjust the latency buffering here. Use integer values only | |
sess.latency.msec = 46 | |
node.group = pipewire.ptp0 | |
} | |
} | |
}, | |
{ | |
matches = [ | |
{ | |
sess.sap.announce = true | |
} | |
] | |
actions = { | |
announce-stream = {} | |
} | |
} | |
] | |
} | |
} | |
# { name = libpipewire-module-rtp-sink | |
# args = { | |
# ### Please select the interface here | |
# local.ifname = enp0s31f6 | |
# ### If you want to create multiple output streams, please copy the whole | |
# ### module-rtp-sink block, but change this multicast IP to another unused | |
# ### one keeping 239.69.x.x range unless you know you need another one | |
# destination.ip = 239.69.150.244 | |
# destination.port = 5004 | |
# net.mtu = 1280 | |
# net.ttl = 32 | |
# net.loop = false | |
# # These should typically be equal | |
# # You can customize packet length, but 1 ms should work for every device | |
# # Consult receiver documentation to ensure it supports the value you set | |
# sess.min-ptime = 1 | |
# sess.max-ptime = 1 | |
# ### Please change this, especially if you create multiple sinks | |
# sess.name = "PipeWire RTP stream" | |
# sess.media = "audio" | |
# # This property is used if you aren't using ptp4l 4 | |
# sess.ts-refclk = "ptp=traceable" | |
# sess.ts-offset = 0 | |
# # You can adjust the latency buffering here. Use integer values only | |
# sess.latency.msec = 3 | |
# audio.format = "S24BE" | |
# audio.rate = 48000 | |
# audio.channels = 2 | |
# # These channel names will be visible both to applications and AES67 receivers | |
# node.channel-names = ["CH1", "CH2"] | |
# stream.props = { | |
# ### Please change the sink name, this is necessary when you create multiple sinks | |
# node.name = "rtp-sink" | |
# media.class = "Audio/Sink" | |
# node.virtual = false | |
# device.api = aes67 | |
# sess.sap.announce = true | |
# node.always-process = true | |
# node.group = pipewire.ptp0 | |
# rtp.ntp = 0 | |
# rtp.fetch-ts-refclk = true | |
# } | |
# } | |
# }, | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment