PipeWire: Difference between revisions
Olmokramer (talk | contribs) According to https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1568 `bluez5.headset-roles` has now been deprecated for over a year in favour of `bluez5.roles`. |
Add a few links |
||
Line 1: | Line 1: | ||
[https://www.pipewire.org/ PipeWire] is a relatively new (first release in 2017) low-level multimedia framework. It aims to offer capture and playback for both audio and video with minimal latency and support for PulseAudio-, JACK-, ALSA- and GStreamer-based applications. PipeWire has a great bluetooth support: because Pulseaudio was [https://github.com/NixOS/nixpkgs/issues/123784 reported to have troubles with bluetooth], PipeWire can be a good alternative. | [https://www.pipewire.org/ PipeWire] is a relatively new (first release in 2017) low-level multimedia framework. It aims to offer capture and playback for both audio and video with minimal latency and support for [[PulseAudio]]-, [[JACK]]-, [[ALSA]]- and [[GStreamer]]-based applications. PipeWire has a great [[Bluetooth|bluetooth]] support: because Pulseaudio was [https://github.com/NixOS/nixpkgs/issues/123784 reported to have troubles with bluetooth], PipeWire can be a good alternative. | ||
The daemon based on the framework can be configured to be both an audio server (with PulseAudio and JACK features) and a video capture server. | The daemon based on the framework can be configured to be both an audio server (with PulseAudio and JACK features) and a video capture server. | ||
PipeWire also supports containers like Flatpak and does not rely on <code>audio</code> and <code>video</code> user groups, but rather it uses a Polkit-like security model, asking Flatpak or Wayland for permission to record screen or audio. | PipeWire also supports containers like [[Flatpak]] and does not rely on <code>audio</code> and <code>video</code> user groups, but rather it uses a [[Polkit]]-like security model, asking Flatpak or [[Wayland]] for permission to record screen or audio. | ||
==Enabling PipeWire== | ==Enabling PipeWire== | ||
Line 63: | Line 63: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
It is possible change a particular user instead of system-wide, with adding this to <code>~/.config/wireplumber/bluetooth.lua.d</code> instead, manually or using Home | It is possible change a particular user instead of system-wide, with adding this to <code>~/.config/wireplumber/bluetooth.lua.d</code> instead, manually or using [[Home Manager]]. | ||
==Graphical tools== | ==Graphical tools== | ||
Line 70: | Line 70: | ||
* pavucontrol: controls the volume (per-sink and per-app basis), the default outputs/inputs, the different profiles (for HDMI outputs/bluetooth devices), routes each application to a different input/output, etc. | * pavucontrol: controls the volume (per-sink and per-app basis), the default outputs/inputs, the different profiles (for HDMI outputs/bluetooth devices), routes each application to a different input/output, etc. | ||
* plasma-pa: a Plasma applet to change volume directly from the systray. Also deals with volume keys. | * plasma-pa: a [[KDE|Plasma]] applet to change volume directly from the systray. Also deals with volume keys. | ||
* qjackctl: with JACK emulation, provides a patchbay (to connect applications together). Note that JACK does not provide any way to change the volume of a single application; use Pulseaudio tools for that purpose. | * qjackctl: with JACK emulation, provides a patchbay (to connect applications together). Note that JACK does not provide any way to change the volume of a single application; use Pulseaudio tools for that purpose. | ||
* carla: with JACK emulation, provides a patchbay (make sure to go to "Patchbay" tab and check "Canvas > Show External"). | * carla: with JACK emulation, provides a patchbay (make sure to go to "Patchbay" tab and check "Canvas > Show External"). |