Revisión de PipeWire como reemplazo de PulseAudio de Mar, 04/01/2025 - 13:49
La revisión le permite rastrear las diferencias que hay entre distintas versiones de una entrada.
PipeWire es un servidor que gestiona transmisiones de audio y vídeo. Es un sustituto útil de PulseAudio y Jack. PipeWire proporciona un motor de baja latencia para dispositivos de audio y vídeo y mejora la gestión de dichas transmisiones mediante el uso del kernel estándar de Linux-libre, por lo que la mayoría de los usuarios ya no necesitarán un kernel en tiempo real. PipeWire está disponible en el Archivo de paquetes de Trisquel y se puede instalar opcionalmente.
Características principales
- Captura y reproducción de audio y video con mínima latencia
- Procesamiento multimedia en tiempo real de audio y video
- Arquitectura multiproceso que permite a las aplicaciones compartir contenido multimedia
- Compatibilidad fluida con aplicaciones PulseAudio, JACK, ALSA y GStreamer
- Compatibilidad con aplicaciones en entorno aislado. Consulta Flatpak para más información.
Para ver el estado del servicio PipeWire, abre una terminal y ejecuta:
systemctl --user status pipewire pipewire-session-manager
Instalación de PipeWire
Primero, instala las bibliotecas cliente ejecutando:
sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Se recomienda instalar WirePlumber al usar PipeWire como servidor de sonido del sistema. WirePlumber es un gestor de sesiones/políticas modular más avanzado para PipeWire. El paquete 'wireplumber' contiene el demonio WirePlumber y las utilidades de línea de comandos.
sudo apt install wireplumber pipewire-media-session-
Ten en cuenta que hay un '-' al final de la línea, que indica a apt que elimine el paquete 'pipewire-media-session'.
Configuración de clientes ALSA y JACK
Si solo desea reemplazar PulseAudio con Pipewire, habilite el servicio WirePlumber y reinicie, como se describe a continuación.
Si desea configurar el cliente ALSA con PipeWire, ejecute:
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
Para configurar el cliente JACK con PipeWire, ejecute:
sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
Actualice la caché de la biblioteca compartida con el siguiente comando:
sudo ldconfig
Elimine 'pulseaudio-module-bluetooth' para habilitar la compatibilidad con Bluetooth para PipeWire.
sudo apt remove pulseaudio-module-bluetooth
Habilitar la sesión multimedia de WirePlumb
Finalmente, habilite WirePlumb ejecutando:
systemctl --user --now enable wireplumber.service
¡Y reinicia!
Tras reiniciar, comprueba la salida de
pactl info
Debería contener una línea con 'PulseAudio (en PipeWire x.x.x)'
Problemas conocidos
El paquete pulseaudio-module-bluetooth forma parte de trisquel-recommended, que se eliminará si usas Pipewire como se describe en esta wiki. Si reinstalas trisquel-recommended, se instalará de nuevo pulseaudio-module-bluetooth. Esto está causando problemas de reproducción. Elimina pulseaudio-module-bluetooth de nuevo ejecutando:
sudo apt remove pulseaudio-module-bluetooth
¡Y reinicia!
Deshacer cambios
Para restaurar los cambios y usar PulseAudio como antes, primero elimine las bibliotecas cliente ejecutando:
sudo apt remove pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Elimine wireplumber y vuelva a instalar el paquete de sesión multimedia anterior.
sudo apt install pipewire-media-session wireplumber-
Observe el símbolo "-", como se describió anteriormente.
Finalmente, vuelva a habilitar el servicio pipewire-media-session ejecutando estos comandos:
rm -f ~/.config/systemd/user/pipewire-session-manager.service
systemctl --user --now enable pipewire-media-session
Y deshabilite el servicio pipewire-pulse ejecutando:
systemctl --user --now disabled pipewire-pulse.service pipewire-pulse.socket
Reinstale 'pulseaudio-module-bluetooth' ejecutando:
sudo apt install pulseaudio-module-bluetooth
Y vuelva a habilitar el servicio pulseaudio original ejecutando:
systemctl --user --now enable pulseaudio.service pulseaudio.socket
Puede comprobar el resultado ejecutando:
pactl info

