pipewire(1)
โจ pipewire(1) โ the PipeWire media server โจ
okay bestie, pull up a chair ๐ซถ this is the manual page for pipewire, straight out of the General Commands Manual โ and yes, the man page is literally named pipewire(1), we're doing this properly bestie ๐
๐ธ SYNOPSIS ๐ธ
pipewire [options]
that's it, that's the whole vibe check. just the command and some options ๐
๐ DESCRIPTION ๐
PipeWire is a service โ like, a whole thing โ and its entire job is facilitating the sharing of multimedia content between devices and applications. audio, video, all of it, getting passed around the group chat of your system ๐
The pipewire daemon reads a config file, and that config file has its own whole manual page situation going on: it's documented in pipewire.conf(5). go read it, i'll wait ๐ฆ
โจ OPTIONS โจ
-h|--helpโ shows you the help. the "hey what do i do" button ๐-v|--verboseโ turns the verbosity up by one level. and listen, you can stack this โ spec it multiple times if you want maximum yapping ๐ฌ--versionโ spills the version info. iconic. simple. we love her โญ-c|--config=FILEโ loads the config file you hand her. default ispipewire.conf๐-P|--properties=PROPSโ adds the properties you give as a SPA JSON object to the context. fancy โจ
๐ RUNTIME SETTINGS ๐
so a PipeWire daemon will also expose a settings metadata object, and that object lets you change some settings at runtime. no restart, no drama, live changes ๐
Normally these settings can bypass any of the restrictions listed in the config options above โ yes, even things like quantum and samplerate values. no cap ๐ซฃ
You modify the settings with pw-metadata(1):
pw-metadata -n settings # list settings
pw-metadata -n settings 0 # list server settings
pw-metadata -n settings 0 log.level 2 # modify a server setting
log.level = INTEGERโ changes the log level of the PipeWire daemon ๐clock.rate = INTEGERโ the default samplerate ๐ตclock.allowed-rates = [ RATE1 RATE2... ]โ the allowed samplerates โclock.force-rate = INTEGERโ temporarily forces the graph to operate in a fixed sample rate. both DSP processing and devices will switch to the new rate immediately. running streams (PulseAudio, native and ALSA applications) will automatically resample to match the new rate. Set the value to0to allow the sample rate to vary again. ๐clock.quantum = INTEGERโ the default quantum (buffer size) ๐ฆclock.min-quantum = INTEGERโ smallest quantum to be used ๐ฝclock.max-quantum = INTEGERโ largest quantum to be used ๐ผclock.force-quantum = INTEGERโ temporarily force the graph to operate in a fixed quantum. Set the value to0to allow the quantum to vary again. ๐
๐ ENVIRONMENT VARIABLES ๐
๐ Socket directories
These three are the find-the-socket squad โ used to find the PipeWire socket on the server (and native clients):
PIPEWIRE_RUNTIME_DIRXDG_RUNTIME_DIRUSERPROFILE
and then, individually:
PIPEWIRE_COREโ name of the socket to make ๐ ๏ธPIPEWIRE_REMOTEโ name of the socket to connect to ๐PIPEWIRE_DAEMONโ if you set it totrue, then the process becomes a new PipeWire server ๐ main character energy fr
๐ Config directories, config file name and prefix
The directory-finding trio, used to find the config file directories:
PIPEWIRE_CONFIG_DIRXDG_CONFIG_HOMEHOME
then:
PIPEWIRE_CONFIG_PREFIXPIPEWIRE_CONFIG_NAMEโ these two are used to override the application provided config prefix and config name ๐PIPEWIRE_NO_CONFIGโ enables (false) or disables (true) overriding on the default configuration โ ๏ธ yes, it's inverted, read it twice
๐ง Context information
As part of a client context, the following info gets collected from environment variables and dropped into the context properties:
LANGโ the current language, inapplication.language๐ฃ๏ธXDG_SESSION_IDโ set as theapplication.process.session-idproperty ๐ชชDISPLAYโ is set as thewindow.x11.displayproperty ๐ฅ๏ธ
๐งฉ Modules
PIPEWIRE_MODULE_DIRโ sets the directory where to find PipeWire modules ๐ฆSPA_SUPPORT_LIBโ the name of the SPA support lib to load. this can be used to switch to an alternative support library โ for example, to run on the EVL realtime kernel โก
๐ Logging options
JOURNAL_STREAMโ is used to parse the stream used for the journal. this is usually configured by systemd ๐งพPIPEWIRE_LOG_LINEโ enables the logging of line numbers. defaulttrue๐ขPIPEWIRE_LOG_TIMESTAMPโ logging timestamp type:"local","monotonic","realtime","none". default"local"โฐPIPEWIRE_LOGโ specifies a log file to use instead of the default logger ๐PIPEWIRE_LOG_SYSTEMDโ enables the use of systemd for the logger, defaulttrue๐งต
๐ ๏ธ Other settings
PIPEWIRE_CPUโ selects the CPU and flags. this is a bitmask of any of the CPU flags ๐งฎPIPEWIRE_VMโ selects the Virtual Machine PipeWire is running on. this can be any of the VM types ๐ปDISABLE_RTKITโ disables the use of RTKit or the Realtime Portal for realtime scheduling โฑ๏ธNO_COLORโ disables the use of colors in the console output ๐จ (sad. but valid.)
๐ Debugging options
PIPEWIRE_DLCLOSEโ enables (true) or disables (false) the use ofdlclosewhen a shared library is no longer in use. when debugging, it might make sense to disabledlcloseto be able to get debugging symbols from the object ๐ฌ
๐ Stream options
PIPEWIRE_NODEโ makes a stream connect to a specificobject.serialornode.name๐ฏPIPEWIRE_PROPSโ adds extra properties to a stream or filter โPIPEWIRE_QUANTUMโ forces a specific rate and buffer-size for the stream or filter ๐PIPEWIRE_LATENCYโ sets a specific latency for a stream or filter. this is only a suggestion, but the configured latency will not be larger ๐ขPIPEWIRE_RATEโ sets a rate for a stream or filter. this is only a suggestion. the rate will be switched when the graph is idle ๐คPIPEWIRE_AUTOCONNECTโ overrides the default stream autoconnect settings ๐
๐ง Plugin options
SPA_PLUGIN_DIRโ is used to locate SPA plugins ๐งฉSPA_DATA_DIRโ is used to locate plugin specific config files. this is used by the bluetooth plugin currently to locate the quirks database ๐ฆทSPA_DEBUGโ set the log level for SPA plugins. this is usually controlled by thePIPEWIRE_DEBUGvariable when the plugins are managed by PipeWire, but some standalone tools (likespa-inspect) use this variable ๐ACP_BUILDDIRโ if set, the ACP profiles are loaded from the builddir ๐๏ธACP_PATHS_DIRACP_PROFILES_DIRโ used to locate the ACP paths and profile directories respectively ๐LADSPA_PATHโ comma separated list of directories where the ladspa plugins can be found ๐๏ธLIBJACK_PATHโ directory where thejack1orjack2libjack.socan be found ๐ท
๐ AUTHORS ๐
The PipeWire Developers โ they said it, not me: <https://gitlab.freedesktop.org/pipewire/pipewire/issues>
and PipeWire is available from <https://pipewire.org> ๐ซถ
๐ SEE ALSO ๐
pw-top(1), pw-dump(1), pw-mon(1), pw-cat(1), pw-cli(1), libpipewire-modules(7)
go read those too, they're all part of the friend group ๐
lowkey that's the whole page bestie. every flag, every env var, every setting โ nothing skipped, nothing invented. iykyk ๐ญ
bye bestie ๐ this was brought to you by PipeWire, version 1.6.8, serving you the pipewire(1) manual page. now go make some audio happen โจ๐๐ฆ
๐ฆ where this page comes from
- ubuntu stonking: pipewire-bin 1.6.8-1ubuntu4 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms