GNU/Linux >> Znalost Linux >  >> Linux

Jack vs Pulseaudio — Jak je to rychlejší?

Vidím spoustu tvrzení, že Jack je rychlejší než Pulse a má menší latenci. jak je to tak? Proč se Pulse nazývá lehká a kluci Jack to nazývají tlustou? Mohl by někdo pro laika rozebrat vnitřnosti těchto dvou démonů?

Přijatá odpověď:

Jack vyžaduje, abyste – znalý uživatel – nakonfigurovali server tak, aby určil nejnižší možnou latenci zpracování pro váš stroj. (Latence zpracování je doba, kterou trvá serveru, než přesune data do/z klientských aplikací a poté odešle/přijme další „kus“ zvukových vzorků mimo systém.) Jack buď dodá tyto kusy zvukových dat včas, nebo selže a dojde k podtečení vyrovnávací paměti (někdy nazývané „vypadnutí“ nebo vyskočí a kliknutí ). Pokud Jack neustále dochází k podtečení, je vaším úkolem buď restartovat server s jiným nastavením, nebo změnit něco v klientských aplikacích, aby byly efektivnější, abyste mohli splnit své zvukové termíny. Protože nastavení vašeho serveru platí jednotně pro všechny klienty, je Jack docela užitečný pro směrování zvuku mezi více zvukovými aplikacemi a získávání předvídatelnosti Výsledek. (Tj. je to jako zapojování „jacků“ do různých audio komponent.)

Pulse je navržen tak, aby minimalizoval počet výpadků zvuku kvůli tomu, že server nedodržel termín pro odeslání/přijetí zvuku mimo systém. Zjevně se o to pokouší výběrem velké vyrovnávací paměti pro klientské aplikace, které nevyžadují nízkou latenci zpracování a poté „vložení“ vzorků do této vyrovnávací paměti pro klientské aplikace, které mají termín dříve. Pokud se pokusí vložit vzorky tak brzy, že zmešká termín a způsobí podtečení, Pulse automaticky prodlouží nejkratší dobu, po kterou klient pošle aktualizaci zvuku na server. Dokumenty Pulse výslovně uvádějí, že ultra nízká latence – řekněme méně než 10 ms latence zpracování — není cílem návrhu. Vzhledem k tomu, že samotný Linux (a pravděpodobně váš hardware) nebyl navržen pro plánování zvuku v reálném čase, rád bych jim věřil.

Z hlediska uživatelské konfigurace je Pulse „lehký“. (Dá se říci, že Pulse má nízkou latenci konfigurace , což bohužel mnoho aplikací pro Linux Audio zjevně ignoruje.) Pokud jde o základní složitost ve srovnání s Jackem, Pulse je „tlustý“.

Chcete-li získat definitivní odpověď na to, co je rychlejší, budete si muset pořídit zařízení se zpětnou smyčkou a změřit zpáteční latenci na svém vlastním systému, abyste poznali pravdu. Zpáteční latence je doba, kterou váš systém potřebuje, aby zpracoval zvuk a přijal to, co zpracoval, zpět do systému. Existují online tutoriály, které vysvětlují, jak to udělat pod Linuxem. To vám dá představu o tom, co vlastně hledáte, což je vnímaná latence — doba, která uplyne od okamžiku spuštění události (např. brnkání na struny kytary) do okamžiku, kdy poprvé uslyšíte výsledný zvuk (např. poslech kytarového akordu).

Související:Je obecně rychlejší výběr do dočasné tabulky než výběr do skutečné tabulky?

Nakonec mějte na paměti, že Pulse i Jack jsou na většině distribucí GNU/Linux nad ALSA. Vím, že se ptáš jen na Jack vs. Pulse. Pokud ale používáte jedinou zvukovou aplikaci, která se může připojit přímo k ALSA, neexistuje žádný myslitelný způsob, jak přidáním Pulse nebo Jack snížit vnímanou latenci než samotná ALSA. V tomto smyslu jsou Pulse i Jack „tlustí“.

tldr; Samotná ALSA je nejrychlejší, Jack je užitečný pro řetězení více audio aplikací a Pulse je pravděpodobně nejjednodušší použít, když vás nezajímá ultra nízká latence. Ignorujte veškerou dokumentaci nebo diskuze, které používají výraz latence aniž by bylo vysvětleno, jaký typ latence je myšlen. (Do této kategorie bohužel spadají jak oficiální dokumenty Jacka, tak Lennartovy příspěvky na blogu o Pulse.)

Poznámka :Mohou existovat okrajové případy, kdy chcete použít jedinou zvukovou aplikaci a ta má mizerné rozhraní ALSA a slušné rozhraní Jack. V takovém případě vám Jack může snížit latenci. Ale pokud mluvíme o aplikacích navržených aby se minimalizovala latence, tyto případy by měly být vzácné. Ale připojte zařízení zpětné smyčky a otestujte moji hypotézu!


Linux
  1. Konektor pro sluchátka na notebooku nevydává žádný zvuk?

  2. Jak předem načíst program pro rychlejší start?

  3. Jak zrychlit načítání webu

  1. Proč je scp tak pomalý a jak jej urychlit?

  2. Jak vytvořit virtuální výstup v Pulseaudio?

  3. Jak se PulseAudio spouští?

  1. Jak povolit službu PipeWire Audio pro nahrazení PulseAudio v Ubuntu 21.04

  2. Pulseaudio Loopback Latence?

  3. Jak aktualizovat Pulseaudio na 12.x v Ubuntu 18.04?