Як співвідносяться ALSA та PulseAudio?


30

Намагаючись, щоб мій звук працював , я замислювався про ролі ALSA та PulseAudio. Я встановив і мені цікаво, наприклад, хто з них повинен знати про мою звукову карту.

Як здається, обидва можуть використовувати один одного, є плагін pulseaudio для ALSA, а в моїй системі alsa відображається як звукова карта в pulseaudio.

Хто з двох робить що, вони є альтернативними чи доповнюють один одного?

Відповіді:


32

ALSA - це мікшер звуку на рівні ядра, він безпосередньо управляє вашою звуковою карткою. ALSA сама по собі може обробляти лише одну програму одночасно. Звичайно, є " dmix ", який був написаний для вирішення цієї проблеми. (Це модуль ALSA.)

PulseAudio - це програмний мікшер, розташований поверх користувальницької області (як, наприклад, ви б запустили додаток). Коли він працює, він використовує Alsa - без dmix - і керує всіма видами змішування, пристроями, мережевими пристроями, все само собою.

У 2014 році ви все одно можете запускати лише ALSA. Але якщо ви не складете свої програми для себе та не включите підтримку ALSA скрізь - або не використовуєте джерелорозподілений дистрибутив, наприклад Gentoo - у вас можуть виникнути проблеми зі змішуванням. Попередньо складені програми, що передаються в дистрибутиві, зазвичай будуються лише за підтримки Pulseaudio, а не чистого ALSA. Наприклад, Ubuntu віддає перевагу PulseAudio. За замовчуванням постачається з PulseAudio, тому кожна програма компілюється лише для використання PulseAudio.

У PulseAudio є свої переваги. Люди кажуть, що це добре для роботи зі звуком через мережу, і це вирішує деякі проблеми з багатоканальними звуковими потоками, які відбувалися в умовах чистої ALSA. Також нібито простіше розробити додатки для ПА. Що стосується кінцевого користувача, вибирайте нові пристрої, керуйте гучністю за допомогою програми тощо.

Однак у конфігурації за замовчуванням вона додає незначну кількість затримок у суміш. Це велика проблема для певних типів завдань, які вимагають низької затримки, як-от деякі ігри та програмне забезпечення.

OSS є альтернативою обом цим, але він не ліцензований відповідно до GPL, що робить, ймовірно, не багато сприйняття дистрибутивами.

Ілюстрація :
типові звукові системи, що працюють на PulseAudio, такі як Ubuntu:
ядро: ALSA -> Userland: PulseAudio -> app1, app2, app3
У типовій системі Linux PulseAudio змішує аудіо з усіх ваших різних додатків і подає їх по ланцюгу до ALSA.

ALSA:
Ядро: ALSA -> dmix -> Userland: app1, app2, app3
За допомогою чистого ALSA вам потрібно dmix для змішування декількох додатків. Без цього ALSA може відтворювати аудіопотік лише з одного додатку.

OSS:
Ядро: OSS -> Userland: app1, app2, app3
За допомогою OSS програми userland спілкуються безпосередньо з OSS в ядрі, яке змішує самі потоки.

Отже, підсумовуючи, у вашій типовій системі в ці дні ALSA спілкується безпосередньо з вашими звуковими картами, а Pulseaudio спілкується з вашими програмами та програмами та передає їх в ALSA.


2
Насправді, кожного разу, коли я знаходив Pulseaudio, я знаходив ПРОБЛЕМИ! Смішно в тому, що, здається, (принаймні, виходячи з мого досвіду) виникають проблеми і з RT-версією ядра, тобто ... Ви хочете, щоб у музиці було легко для відтворення музики? Ви думаєте про новий UbuntuStudio? Ну, подумайте ще раз ...: D
dag729

4
Ой не думай. Графіка - це також купа. Linux НЕ для використання на робочому столі, щоб сказати його просто і прямо. Xorg - це X- сервер, тож ви, в основному, запускаєте СЕРВЕР і дивитесь його (що за дурниця? Так). На MAC, Windows, Haiku, GUI працює з ядра (добре його всередині ядра). Добре. Було б сенс не так? Також немає рідного інтерфейсу. Як і в Windows, Windows.Forms. На MAC какао. Тут ви можете використовувати лише набори інструментів FAT, наприклад GTK, Qt. | Мережа узгоджена, її в ядрі, її добре (добре, якщо виробник надає хороший драйвер, як Intel) ... так ось це.
Apache

3
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it? Насправді це не так. Пам'ятаєте погані старі часи "відео драйверів NT 4, які вибивали систему"? Так, саме це спричинило - запущені хитрі драйвери в просторі ядра. Чому ви вважаєте, чому Microsoft раптом усвідомила питання про те, щоб підписати драйвери з підписом у Windows? Бінго! Оскільки м'які водії спричиняли збої в роботі системи. Підписання їх означало отримати їх перевірку , і smidgeon QA піде довгими шляхами ...
Avery Payne

1
Avery: Він підтримує завантажувані модулі зараз. Тож якщо він вийде з ладу, він просто перезавантажить модуль для графічного адаптера. Але наскільки я знаю, вони все ще є модулями. (Не працює в просторі користувачів .. це неможливо). | Про SDL: це s..ks. Кожен автор гри скаржиться на це, оскільки він дає повільну продуктивність, складні проблеми тощо. (Я не перелічу їх, перевірте пошук.) Навіть транспортний магнат із відкритим кодом повільний із SDL.
Апач

2
@Skiki - Я розумію, що відповідь застаріла, але чи можете ви надати, будь ласка, посилання, де Valve відмовився від Linux? Наскільки я бачу, вони все ще йдуть попереду, пам’ятайте каламбур.
aggregate1166877
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.