PulseAudio es un programa de servidor de sonido con capacidad de red distribuido a través del proyecto freedesktop.org . Se ejecuta principalmente en Linux , varias distribuciones BSD como FreeBSD y OpenBSD , macOS , así como distribuciones Illumos y el sistema operativo Solaris .
Desarrollador (es) | Lennart Poettering Pierre Ossman Shahms E. King Tanu Kaskinen Colin Guthrie Arun Raghavan David Henningsson |
---|---|
Versión inicial | 17 de julio de 2004 [1] |
Lanzamiento estable | 14.2 [2] / 16 de enero de 2021 |
Repositorio | gitlab |
Escrito en | C [3] |
Sistema operativo | FreeBSD , NetBSD , OpenBSD , Linux , Illumos , Solaris , macOS y Microsoft Windows (no mantenido) |
Plataforma | ARM , PowerPC , x86 / IA-32 , x86-64 y MIPS |
Tipo | Servidor de sonido |
Licencia | Licencia pública general reducida GNU 2.1 [4] |
Sitio web | pulseaudio.org |
PulseAudio es un software gratuito y de código abierto , y tiene licencia según los términos de la GNU Lesser General Public License versión 2.1. [4]
Fue creado en 2004 con el nombre de Polypaudio, pero fue renombrado en 2006 a PulseAudio. [5]
Historia
Microsoft Windows era previamente compatible a través de MinGW (una implementación de la cadena de herramientas GNU , que incluye varias herramientas como GCC y binutils ). Sin embargo, el puerto de Windows no se ha actualizado desde 2011. [6]
Arquitectura de software
En términos generales, ALSA es un subsistema del kernel que proporciona el controlador de hardware de sonido, y PulseAudio es el motor de interfaz entre Aplicaciones y ALSA.
PulseAudio actúa como un servidor de sonido, donde se crea un proceso en segundo plano que acepta la entrada de sonido de una o más fuentes (procesos, dispositivos de captura, etc.). Luego, el proceso en segundo plano redirige estas fuentes de sonido a uno o más receptores (tarjetas de sonido, servidores PulseAudio de red remota u otros procesos). [7]
Uno de los objetivos de PulseAudio es redirigir todos los flujos de sonido a través de él, incluidos los de los procesos que intentan acceder directamente al hardware (como las aplicaciones OSS heredadas ). PulseAudio logra esto proporcionando adaptadores para aplicaciones que utilizan otros sistemas de audio, como aRts y ESD .
En un escenario de instalación típico en Linux, el usuario configura ALSA para usar un dispositivo virtual proporcionado por PulseAudio. Por lo tanto, las aplicaciones que usan ALSA emitirán sonido a PulseAudio, que luego usa ALSA para acceder a la tarjeta de sonido real. PulseAudio también proporciona su propia interfaz nativa para aplicaciones que desean admitir PulseAudio directamente, así como una interfaz heredada para aplicaciones ESD, lo que la hace adecuada como reemplazo directo de ESD.
Para las aplicaciones OSS, PulseAudio proporciona la padsp
utilidad, que reemplaza los archivos del dispositivo, como /dev/dsp
engañar a las aplicaciones para que crean que tienen control exclusivo sobre la tarjeta de sonido. En realidad, su salida se redirige a través de PulseAudio.
libcanberra
libcanberra es una API abstracta para sonidos de eventos de escritorio y un reemplazo total para la "API de caché de muestra PulseAudio":
- Cumple con el tema de sonido XDG y las especificaciones de nombres .
- Define una interfaz abstracta simple para reproducir sonidos de eventos. [8]
- Interfaces con ALSA a través de libasound. [9]
- Tiene un back-end para PulseAudio. [10]
libSydney
libSydney es un reemplazo total de la "API de transmisión PulseAudio", y se han hecho planes para que libSydney se convierta eventualmente en la única API de audio utilizada en PulseAudio. [11]
Características
Las características principales de PulseAudio incluyen: [7]
- Controles de volumen por aplicación. [12]
- Una arquitectura de complemento extensible con soporte para módulos cargables.
- Compatibilidad con muchas aplicaciones de audio populares. [13]
- Soporte para múltiples fuentes de audio y sumideros.
- Una arquitectura de memoria de copia cero para la eficiencia de los recursos del procesador.
- Posibilidad de descubrir otras computadoras usando PulseAudio en la red local y reproducir sonido a través de sus parlantes directamente.
- Posibilidad de cambiar qué dispositivo de salida usan las aplicaciones para reproducir sonido mientras lo están reproduciendo (las aplicaciones no necesitan admitir esto, PulseAudio es capaz de hacer esto sin que las aplicaciones detecten que ha sucedido)
- Una interfaz de línea de comandos con capacidades de scripting.
- Un demonio de sonido con capacidades de reconfiguración de línea de comandos.
- Capacidades integradas de conversión y remuestreo de muestras.
- La capacidad de combinar varias tarjetas de sonido en una.
- La capacidad de sincronizar múltiples transmisiones de reproducción.
- Compatibilidad con dispositivos de audio Bluetooth con capacidades de detección dinámica.
- La capacidad de habilitar la ecualización en todo el sistema .
Adopción
PulseAudio apareció por primera vez para usuarios regulares en Fedora Linux , comenzando con la versión 8, [14] luego fue adoptado por las principales distribuciones de Linux como Ubuntu , Debian , [15] Mandriva Linux y openSUSE . Hay soporte para PulseAudio en el proyecto GNOME , y también en KDE , ya que está integrado en Plasma Workspaces , agregando soporte a Phonon (el marco multimedia de KDE) y KMix (la aplicación de mezcla integrada), así como una GUI de "Configuración de altavoz". para ayudar a la configuración de altavoces multicanal. PulseAudio también está disponible en la distribución de Illumos OpenIndiana y está habilitado de forma predeterminada en su entorno de escritorio MATE .
Varios dispositivos móviles basados en Linux , incluidos Nokia N900 , Nokia N9 y Palm Pre [16], utilizan PulseAudio.
Tizen , un sistema operativo móvil de código abierto, que es un proyecto de la Fundación Linux y está gobernado por un Grupo Directivo Técnico (TSG) compuesto por Intel y Samsung , utiliza PulseAudio.
Problemas durante la fase de adopción
- La API de PortAudio era incompatible con el diseño de PulseAudio y necesitaba ser modificada. [17] Casi todos los paquetes que usan OSS y muchos de los paquetes que usan ALSA necesitaban ser modificados para admitir PulseAudio. [18] Un mayor desarrollo de la función de audio sin fallos requirió una reescritura completa del núcleo PulseAudio, y también se necesitaron cambios en la API de ALSA y en los componentes internos. [19] [20]
- Cuando fue adoptado por primera vez por las distribuciones, el desarrollador de PulseAudio, Lennart Poettering (también el creador de systemd ) lo describió como "el software que actualmente rompe su audio". [21] Poettering afirmó más tarde que " Ubuntu no hizo exactamente un trabajo estelar. No hicieron su tarea" al adoptar PulseAudio [22] para Ubuntu "Hardy Heron" (8.04), un problema que se mejoró con la posterior Ubuntu lanzamientos. [23] Sin embargo, en octubre de 2009, Poettering informó que todavía no estaba contento con la integración de Ubuntu de PulseAudio. [24]
- Interacción con componentes de sonido antiguos mediante un software en particular: ciertos programas, como Adobe Flash para Linux, causaron inestabilidad en PulseAudio. [25] [26] Las implementaciones más recientes de los complementos de Flash no requieren los elementos en conflicto y, como resultado, Flash y PulseAudio ahora son compatibles.
- Gestión temprana de exceso / falta de rendimiento del búfer: las versiones anteriores de PulseAudio a veces comenzaban a distorsionar el audio procesado debido al manejo incorrecto de exceso / falta de rendimiento del búfer. [27]
Software relacionado
Otros servidores de sonido
JACK es un servidor de sonido que proporciona rendimiento de audio en tiempo real, de baja latencia (es decir, 5 milisegundos o menos) y, desde JACK2, admite un equilibrio de carga eficiente mediante el uso de multiprocesamiento simétrico ; es decir, la carga de todos los clientes de audio se puede distribuir entre varios procesadores. JACK es el servidor de sonido preferido para aplicaciones de audio profesionales como Ardor , ReZound y LinuxSampler ; Varias distribuciones de producción de audio gratuitas lo utilizan como servidor de audio predeterminado.
Es posible que JACK y PulseAudio coexistan: mientras JACK se está ejecutando, PulseAudio puede conectarse automáticamente como un cliente JACK, lo que permite a los clientes PulseAudio hacer y grabar sonido al mismo tiempo que los clientes JACK. [28]
PipeWire es un servidor de audio y video que "tiene como objetivo admitir los casos de uso que actualmente manejan tanto PulseAudio como Jack". [29] [30]
Infraestructuras de audio generales
Antes de JACK y PulseAudio, el sonido de estos sistemas se gestionaba mediante soluciones de audio integradas multipropósito. Estas soluciones no cubren completamente el proceso de mezcla y transmisión de sonido, pero JACK y PulseAudio todavía las utilizan para enviar la transmisión de audio final a la tarjeta de sonido.
- ALSA proporciona un mezclador de software llamado dmix, que fue desarrollado antes de PulseAudio. Está disponible en casi todas las distribuciones de Linux y es una solución de mezcla de audio PCM más simple. No proporciona las funciones avanzadas (como programación basada en temporizador y audio de red) de PulseAudio. Por otro lado, ALSA ofrece, cuando se combina con las tarjetas de sonido y el software correspondientes, latencias bajas.
- OSS era el sistema de sonido original utilizado en Linux y otros sistemas operativos Unix, pero quedó obsoleto después del kernel de Linux 2.5. [31] El desarrollo propietario fue continuado por 4Front Technologies , quien en julio de 2007 publicó fuentes para OSS bajo CDDL para OpenSolaris y bajo GPL para Linux . [32] La implementación moderna, Open Sound System v4, proporciona software de mezcla, remuestreo y cambio de volumen por aplicación; a diferencia de PulseAudio, estas características se implementan dentro del kernel. El soporte de PulseAudio en OpenIndiana y otras distribuciones de illumos se basa en la implementación de OSS en el kernel (" Boomer" ).
Ver también
- PortAudio
- Comparación de software gratuito para audio
- Lista de software de audio de Linux
Referencias
- ^ "OldNews" . freedesktop.org .
- ^ Kaskinen, Tanu (16 de enero de 2021). "PulseAudio 14.2" . pulseaudio-discus (lista de correo) . Consultado el 16 de enero de 2021 .
- ^ "PulseAudio" , Resumen de análisis , Open Hub
- ^ a b "License" , PulseAudio git , Free desktop , archivado desde el original el 4 de marzo de 2014 , consultado el 16 de junio de 2011
- ^ El proyecto anteriormente conocido como Polypaudio
- ^ PulseAudio en Windows
- ^ a b "Acerca de" , PulseAudio , escritorio gratuito , consultado el 11 de marzo de 2013
- ^ [email protected], Debian Webmaster. "Debian - Resultados de búsqueda de paquetes - libcanberra" . packages.debian.org .
- ^ [email protected], Debian Webmaster. "Debian - Resultados de búsqueda de paquetes - libasound" . packages.debian.org .
- ^ [email protected], Debian Webmaster. "Debian - Resultados de búsqueda de paquetes - libcanberra-pulse" . packages.debian.org .
- ^ Poettering, Lennart (8 de febrero de 2007). "Resumen de FOMS / LCA" . 0pointer.de . Consultado el 13 de marzo de 2017 .
- ^ Poettering, Lennart, "Interviews", Fedora Project , Red Hat , consultado el 3 de julio de 2009
- ^ Pulse Audio wiki , PulseAudio, archivado desde el original el 18 de octubre de 2009 , consultado el 19 de julio de 2009
- ^ "LPC: audio de Linux: es un desastre [LWN.net]" . 18 de septiembre de 2008 . Consultado el 11 de julio de 2019 .
- ^ PulseAudio , Debian, archivado desde el original (wiki) el 9 de noviembre de 2013 , consultado el 9 de noviembre de 2013
- ^ "Identidad de código abierto: el creador de PulseAudio, Lennart Poettering" , TechWorld , 8 de octubre de 2009
- ^ Poettering, Lennart (25 de septiembre de 2004). "Escribiendo un controlador PortAudio" . audio.portaudio.devel . git.net . Consultado el 28 de febrero de 2017 .
- ^ Poettering, Lennart. "PulseAudio ahora está habilitado por defecto en nuevas instalaciones de Fedora" . Fedora Development ML . Red Hat . Consultado el 1 de marzo de 2017 .
- ^ "Características: Audio sin fallos" . Wiki del Proyecto Fedora . Consultado el 28 de febrero de 2017 .
- ^ Poettering, Lennart. "Problemas de Alsa" . PulseAudio - Trac . Archivado desde el original el 16 de octubre de 2008 . Consultado el 28 de febrero de 2017 .
- ^ LPC: Linux audio: it's a mess , LWN, 18 de septiembre de 2008, archivado desde el original el 18 de octubre de 2009 , consultado el 3 de julio de 2009
- ^ Lennart Poettering (18 de julio de 2008), PulseAudio FUD , 0pointer.de, archivado desde el original el 18 de octubre de 2009 , consultado el 30 de diciembre de 2009
- ^ Cómo hacerlo: PulseAudio Fixes & System-Wide Equalizer Support , Ubuntu Forums, 10 de mayo de 2008, archivado desde el original el 18 de octubre de 2009 , consultado el 18 de octubre de 2009
- ^ I'll Break Your Audio , Lennart Poettering Blog, 19 de octubre de 2009 , consultado el 26 de diciembre de 2009
- ^ No hay sonido después de ejecutar Flash, YouTube, etc. (solución pulseaudio) , foros de Ubuntu, archivado desde el original el 18 de octubre de 2009 , consultado el 18 de octubre de 2009
- ^ PulseAudio , Ubuntu Wiki, archivado desde el original el 18 de octubre de 2009 , consultado el 18 de octubre de 2009
- ^ "El almacenamiento en búfer demasiado optimista en PulseAudio provoca fallas de ejecución (tartamudeo audible, estallidos)" . Launchpad . Consultado el 9 de noviembre de 2013 .
- ^ Consulte "Módulos cargables". Módulos , Freedesktop.org, https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index9h2 , consultado el 28 de agosto de 2019
- ^ "PipeWire" . pipewire.org .
- ^ "En el camino hacia la estación de trabajo 31 de Fedora - Christian FK Schaller" .
- ^ Una introducción a los sistemas de sonido y API de Linux , Linux.com, 9 de agosto de 2004, archivado desde el original el 19 de octubre de 2014 , recuperado el 23 de marzo de 2013 ,
OSS está disponible no solo para Linux sino también para sistemas operativos BSD y otros Unix. Esa puede ser su única ventaja, porque este sistema no es muy potente y fue reemplazado oficialmente por ALSA en núcleos 2.5 ...
- ^ 4Front Technologies publica el código fuente para el sistema de sonido abierto , Linux PR, 14 de junio de 2007 , consultado el 8 de enero de 2012.
enlaces externos
- Página web oficial