PulseAudio (Česky) - ArchWiki

# PulseAudio (Česky)

From ArchWiki
Jump to navigation Jump to search

PulseAudio je univerzální zvukový server pro systémy POSIX a WIN32, jehož základním rysem je mixování zdrojů zvuku což umožňuje přehrávat na zvukovém zařízení více zvukových zdrojů najednou.

## Instalace

Všechny potrebné balíčky se nacházejí v repozitáři community, který by měl být povolen. Pro instalaci :

    # pacman -S pulseaudio

Volitelně lze nainstalovat GTK aplikace, které umožní nastavovat vstupní a výstupní zařízení apod. :

    # pacman -S paprefs pavucontrol

## Spuštění

Pulseaudio potřebuje pro svou činnost spuštěný dbus daemon. Proto ho spusťte pokud ještě neběží:

    # /etc/rc.d/dbus start

Start pulseaudia lze provést příkazem:

    $ pulseaudio --start

Pokud spouštíme pulseaudio v grafickém prostředí:

    $ start-pulseaudio-x11

Pulseaudio lze zastavit příkazem:

    $ pulseaudio --kill

Nutno upozornit, že některá X11 prostředí startují Pulseaudio automaticky při přihlášení uživatele, proto zkontrolujte pro jistotu wiki sekci pro dané desktopové prostředí.

## Konfigurace backendů

Slouží pro nastavení podpory pro mixování audio streamu od aplikace, která nepodporuje přímo PulseAudio.

### ALSA

Pro aplikace, které nepodporují PulseAudio, ale podporují ALSA je doporučeno nainstalovat ALSA plugin pro PulseAudio:

    # pacman -S pulseaudio-alsa

Tento balíček obsahuje i nezbytný konfigurační soubor `/etc/asound.conf` pro nastavení ALSA výstupu na PulseAudio server. Pokud používáte x86_64 Archlinux a požadujete fungující zvuk i pro 32bit aplikace (jako Wine), musíte mít nainstalované i 32bit verze knihoven lib32-libpulse and lib32-alsa-plugins. Některé aplikace, keré používají ALSA OSS emulaci by mohly PulseAudio obejít. Pro tento případ je dobré odstranit `snd_pcm_oss` modul jádra:

    # rmmod snd_pcm_oss

Poté je vhodné daný modul zakázat, což se provede v souboru `/etc/rc.conf` v sekci MODULES přídáním `!snd_pcm_oss`.

### OSS

Existuje několik cest jak donutit OSS programy hrát přes PulseAudio:

#### osspd

Nejjednodušší metoda.

Nainstalujte ossp a spusťte daemona příkazem:

    /etc/rc.d/osspd start

Nezapomeňte přidát osspd do sekce DAEMONS v souboru rc.conf pro automatické spouštění při startu.

#### padsp wrapper

Pokud máte program užívající OSS, můžete ho donutit pracovat s PulseAudiem spuštěním přes wrapper padsp:

    $ padsp OSSprogram

Několik příkladů:

    $ padsp aumix
    $ padsp sox foo.wav -t ossdsp /dev/dsp

Pokud preferujete jednoduché spouštění, je možné použít script jako například tento, kde původní program byl přejmenován (přidána koncovka -bin) a takto vytvořený script pojmenovaný dle programu je pak spouštěn jako aplikace. Nutno podotknout, že tato metoda selže v případě aktualizace daného programu balíčkovacím systémem, který tento skript přepíše. Proto ji berte pouze jako příklad:

    /usr/bin/OSSProgram

    #!/bin/sh
    if test -x /usr/bin/padsp; then
        exec /usr/bin/padsp /usr/bin/OSSprogram-bin "$@"
    else
        exec /usr/bin/OSSprogram "$@"
    fi

### GStreamer

Abychom přiměli GStreamer používat PulseAudio, nastavíme gconf proměnné `/system/gstreamer/0.10/default/audiosink` na 'pulsesink a `/system/gstreamer/0.10/default/audiosrc` na pulsesrc následujícími příkazy:

     $ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
     $ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc

Některé aplikace (jako Rhythmbox) ignorují audiosink nastavení a používají musicaudiosink. Proto musíme musicaudiosink přenastavit pro tyto aplikace také:

     $ gconftool-2 -t string --set /system/gstreamer/0.10/default/musicaudiosink pulsesink

### OpenAL

OpenAL software využívá defaultně PulseAudio, ale můžeme ho také explicitně nastavit :

    /etc/openal/alsoft.conf

    drivers=pulse,alsa

### libao

Editací libao konfiguračního souboru nastavíme pulse:

    /etc/libao.conf

    default_driver=pulse

### PortAudio

Aktuální verze PortAudio v community repozitáři nedpodporuje PulseAudio a non-mmap audio zařízení. Pro podporu PulseAudia lze překompilovat balíček z ABS aplikováním patche.

### ESD

PulseAudio je v podstatě náhrada za zvukový daemon ESD, proto pokud běží PulseAudio, klienti ESD hrají automaticky přes PulseAudio bez nutné ruční konfigurace.

## Desktopová prostředí

### Obecné X11

Spusťte PulseAudio po startu X11 příkazem:

    $ start-pulseaudio-x11

Pokud používáte GNOME nebo KDE, PulseAudio se spouští automaticky s příhlášením uživatele a není třeba nic dělat.

#### X11 zvonek

Pokud požadujete, aby PulseAudio zahrálo zvuk generovaný X11 zvonkem či pípnutím při nějaké akci (například v terminálu), přidejte následující nastavení do `/etc/pulse/default.pa`:

    load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/dialog-error.oga
    load-module module-x11-bell sample=x11-bell

Samozřejmě si můžete nastavit použití i jiného zvukového vzorku než `dialog-error.oga`, který je částí balíčku sound-theme-freedesktop.

### GNOME

Úplná integrace PulseAudia do GNOME vyžaduje speciální nahrazující balíčky:

- gnome-media-pulse
- gnome-settings-daemon-pulse
- libcanberra-pulse

Tyto jsou součástí skupiny balíčků pulseaudio-gnome.

### KDE 3

Pokud používáte KDE 3, nelze provozovat PulseAudio jakož náhradu za aRts.

### KDE 4 a Qt4

Pulseaudio lze používat pro KDE4/Qt4 aplikace. Více informací lze nalézt na PulseAudio wiki stránce věnované KDE. Pro KDE existuje také jakási alternativa za pavucontrol veromix plasmoid, kterou lze nalézt v AURu.

## Aplikace

### Audacious

Audacious nativně podporuje PulseAudio takže stačí najít v nastavení Preferences -> Audio -> Current output nastavit na 'PulseAudio Output Plugin'.

### mpd

Je nutno nakonfigurovat mpd dle návodu pro nastavení výstupu na PulseAudio. Na multimediálním zařízení spusťte PulseAudio jako mpd uživatele. Na běžném PC spouštějte mpd i PulseAudio pod vlastním účtem a nepoužívejte mpd uživatele.

### MPlayer

MPlayer nativně podporuje PulseAudio výstup s volbou "`-ao pulse`". Toto lze také nastavit jako výchozí v konfiguračním souboru pro každého uživatele `~/.mplayer/config` nebo pro celý systém `/etc/mplayer/mplayer.conf`:

    /etc/mplayer/mplayer.conf

    ao=pulse

### "Flashový" obsah

Pokud neslyšíte žádný zvukový výstup z multimediálního obsahu typu flash, můžete zkusit nainstalovat z AURu libflashsupport-pulseAUR[broken link: package not found].

### Flashplugin (pouze pro x86_64)

Pokud používáte flashplugin z multilib repozitáře, který je 32bit, je nutno nainstalovat také lib32-alsa-plugins a lib32-libcanberra-pulse pokud chcete mixování zvuku. Jinak nebude možné přehrávat jiný zvuk pokud zrovna přehráváte flash.

    # pacman -S lib32-alsa-plugins lib32-libcanberra-pulse

## Alternativní konfigurace

### Surround sound systémy

Pro povolení všech zvukových výstupů vaší karty editujte `/etc/pulse/daemon.conf` kde odkomentujte default-sample-channels řádek a nastavte na potřebnou hodnotu (6 5.1 8 7.1):

    # Výchozí 2 kanály
    default-sample-channels=2
    # nebo pro 5.1 výstup
    default-sample-channels=6
    # nebo pro 7.1 výstup
    default-sample-channels=8

Po editaci je nutné restartovat PulseAudio.

### Rozšířená konfigurace ALSA

Někdy je nutno nastavit ručně soubor `/etc/asound.conf` (systémové nastavení) nebo `~/.asoundrc` (pro každého uživatele), aby ALSA používala PulseAudio:

    /etc/asound.conf

    pcm.pulse {
        type pulse
    }
    ctl.pulse {
        type pulse
    }
    pcm.!default {
        type pulse
    }
    ctl.!default {
        type pulse
    }

Pokud vynecháte poslední dvě skupiny nastavení, pak budete muset konfigurovat každou ALSA aplikaci zvlášť v jejím nastavení, aby použila "pulse" výstup.

#### ALSA zvukový monitor

Pro možnost záznamu ze zvukového monitoru (př. Monitor pro to co slyším, Stereo Mix, .. ) musíte použit `pactl list` pro nalezení názvu zvukového zdroje PulseAudia (př. `alsa_output.pci-0000_00_1b.0.analog-stereo.monitor`). Pak přidat tyto do `/etc/asound.conf` nebo `~/.asoundrc`:

    pcm.pulse_monitor {
      type pulse
      device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
    }

    ctl.pulse_monitor {
      type pulse
      device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
    }

Nyní můžete vybrat `pulse_monitor` jako zdroj nahrávání zvuku.

### PulseAudio přes síť

Jedna z předností PulseAudia je možnost streamování audia pomocí clientů a serveru s běžícím pulseaudio daemonem přes vaší LAN. Pro tuto možnost musíte povolit module-native-protocol-tcp a zkopírovat pulse-cookie do klientů v síťi.

### TCP podpora (zvuk po síti)

This article or section is out of date.

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:PulseAudio (Česky)#)

Pro povolení TCP modulu přidejte či odkomentujte `/etc/pulse/default.pa`:

    load-module module-native-protocol-tcp

Pro povolení vzdáleného připojení na TCP modul musíte odblokovat službu v `/etc/hosts.allow`:

    pulseaudio-native: ALL

Pozor: Pokud máte problém s připojením, zkuste na serveru:

    pacmd>> list-modules

(zde můžete také nahrávat moduly!)

#### Zeroconf (Avahi) publiskování

Je možné že pro nastavení vzdáleného přístupu na server přes (`padevchooser`) budete potřebovat také nainstalovaný a spuštěný `avahi-daemon` přidaný v sekci DAEMONS v rc.conf na serveru tak i na klientských stanicích.

### Přepínání PulseAudio serverů lokálními klienty

Pro přepínání serveru na klientské stanici lze použít příkaz `pax11publish`. Pro příklad přepnutí z výchozího serveru na server s názvem (hostname) foo:

    $ pax11publish -e -S foo

Nebo přepnutí zpět na výchozí server:

    $ pax11publish -e -r

Pozor při přepnutí musejí být programy používající Pulse pravděpodobně restartovány.

### Pulseaudio přes JACK

Je podobný PulseAudiu, ale je více zaměřen na profesionální práci s audiem. Pulseaudio používá modul module-jack-source a module-jack-sink což mu umožňuje běžet jako zvukový server nad JACK démonem. Takto je pulseaudiem umožněno nastavení zesílení pro každou běžnou aplikaci zvlášť, přehrávání filmů písniček apod., zatímco je také umožněno nízkolatenční nahrávání a přehrávání a zpracování zvuku aplikacemi napojenými na JACK. Toto však zabrání PulseAudiu přímý zápis do bufferů zvukové karty, což má za následek zvýšení vytížení CPU. Pro vyzkoušení běhu PA s JACK stačí načíst nezbytné moduly při startu:

    pulseaudio -L module-jack-sink -L module-jack-source

Pro použití Pulseaudia s JACK musí být JACK spuštěn před startem PA. PulseAudio vyžaduje pro běh 2 moduly, které změníme editováním `/etc/pulse/default.pa`:

    ### Load audio drivers statically (it is probably better to not load
    ### these drivers manually, but instead use module-hal-detect --
    ### see below -- for doing this automatically)
    #load-module module-alsa-sink
    #load-module module-alsa-source device=hw:1,0
    #load-module module-oss device="/dev/dsp" sink_name=output source_name=input
    #load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
    #load-module module-null-sink
    #load-module module-pipe-sink

    ### Automatically load driver modules depending on the hardware available
    .ifexists module-udev-detect.so
    load-module module-udev-detect
    .else
    ### Alternatively use the static hardware detection module (for systems that
    ### lack udev support)
    load-module module-detect
    .endif

na následující podobu:

    ### Load audio drivers statically (it is probably better to not load
    ### these drivers manually, but instead use module-hal-detect --
    ### see below -- for doing this automatically)
    #load-module module-alsa-sink
    #load-module module-alsa-source device=hw:1,0
    #load-module module-oss device="/dev/dsp" sink_name=output source_name=input
    #load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
    #load-module module-null-sink
    #load-module module-pipe-sink
    load-module module-jack-source
    load-module module-jack-sink

    ### Automatically load driver modules depending on the hardware available
    #.ifexists module-udev-detect.so
    #load-module module-udev-detect
    #.else
    ### Alternatively use the static hardware detection module (for systems that
    ### lack udev support)
    #load-module module-detect
    #.endif

Tohle zamezí načtení module-udev-detect, který se snaží převzít zvukovou kartu což již provedl JACK. Explicitně načten musí být také JACK source a sink modul což je patrné z úpravy.

#### QjackCtl se Start/Stop Skripty

Po provedení nastavení probraných výše lze použít QjackCtl pro spouštění skriptu během startu a vypnutí pro start/stop PulseAudia. Proč tohle dělat? Protože změny provedené při zprovoznění JACK nám zakázaly automatickou detekci hardware pomocí modulu pulseaudia. Pomocí těchto skriptů lze patřičná nastavení aplikovat jen pokud zrovna vyžadujeme pro práci JACK.

Následující příklad může být použitý jakož startovací skript, který démonizuje pulseaudio a spouští padevchooser. Tento skript nutno upravit pro volby konfigurace pulseaudia, které zde nejsou uvedeny `jack_startup`:

    #!/bin/bash
    #Load PulseAudio and PulseAudio Device Chooser

    pulseaudio -D
    padevchooser&

příklad skriptu pro vypnutí pulseaudia `jack_shutdown`:

    #!/bin/bash
    #Kill PulseAudio and PulseAudio Device Chooser

    pulseaudio --kill
    killall padevchooser

Oběma skriptům nutno povolit spouštění:

    chmod +x jack_startup jack_shutdown

Pak po načtení QjackCtl přejdeme do Setup a v Options je tab "Execute Script after Startup:" a "Execute Script on Shutdown:" kde zadáme cestu ke skriptům.

### Pulseaudio zkrz OSS

Přidejte následující do `/etc/pulse/default.pa`:

     load-module module-oss

Pak spusťte Pulseaudio jako obvykle. Měli by jste mít zdroje vstupu a vystupů pro vaše OSS zařízení.

### Pulseaudio z chroot (př. 32-bit chroot v 64-bit instalaci)

Protože chroot nastavuje alternativní root, musí být puselaudio nainstaované také uvnitř chroot prostředí.

Pokud se PA nepřipojí na specifikovaný server v konfiguračním souboru `/etc/pulse/client.conf` nebo přes X11 nastavení používající modul module-x11-publish, pak začne hledat lokální server a pokud ho nenalezne tak si vytvoří nový server. Každý server má unikátní ID založené na id stroje z `/var/lib/dbus`. Pro umožnění aplikací pod chroot k přístupu na server je nutno připojit následující adresáře pod chroot:

    /var/run
    /var/lib/dbus
    /tmp
    ~/.pulse

`/dev/shm` měl by být pro dobrý výkon taktéž připojen. Nutno podotknout, že pokud připojujete /home, pak je i .pulse adresář již připojen.

Pro další upřesnění a možnosti navštivte tuto wiki stránku.

## Rady při potížích

### Žádný zvuk po instalaci

#### Žádné zvukové karty

Když PulseAudio nastartuje, spusťte `pacmd list`. Jestliže zde nejsou žádné zvukové karty, ujistěte se, že ALSA zařízení nejsou v používání tj blokovány jiným programem:

    $ fuser -v /dev/snd/*
    $ fuser -v /dev/dsp

Ujistěte se, že všechny aplikace používající pcm nebo dsp jsou ukončeny před restartem PA.

#### KDE4

Je možné, že máte nastavené jiné výstupní zařízení v phonon nastavení. Ujistěte se tedy, že máte nastavené správné výstupní zařízení na vrchu seznamu a zkontrolujte přes pavucontrol, že spuštěné aplikace používají Pulseaudio a zároveň PulseAudio používá správný zvukový výstup.

#### Ztlumené audio zařízení

Pokud neslyšíte zvuk ani defaultně pod ALSAou, pak patrně máte ztlumený výstup což ověříte přes alsamixer, kde nesmí mít výstup zesílení 00 nebo m ( stiskem m lze aktivovat/deaktivovat mute)

    $ alsamixer -c 0

Někdy se stane, že snd_pcsp je v konfliktu s modulem snd_hda_intel (Intel zvukové karty). Pak je nutno zakázat snd_pcsp v souboru `/etc/rc.conf` v sekci MODULES přidáním `!snd_pcsp`.

### Daemon nenastartuje

Zkuste resetovat PulseAudio:

    $ pulseaudio --kill
    $ killall pulseaudio
    $ killall -9 pulseaudio
    $ rm -rf ~/.pulse*
    $ rm -rf /tmp/pulse*

Pak zkuste znovu spustit.

### padevchooser

Pokud nemůžete spustit PulseAudio Device Chooser - padevchooser program pro výběr zařízení, pak zkuste restartovat Avahi démona:

    $ /etc/rc.d/avahi-daemon restart

### Škubání zvuku a vysoké vytížení CPU od verze 0.9.14

PulseAudio bylo přepsáno pro využívání časově založeného audio plánování místo tradičního přerušením řízeného. To může způsobovat problémy v některých Alsa ovladačích. Pro vypnutí časového plánování změnit:

    load-module module-udev-detect

v `/etc/pulse/default.pa` na:

    load-module module-udev-detect tsched=0

### Nekvalitní zvuk

Může být způsoben špatným nastavením vzorkovací frekvence zvuku v /etc/pulse/daemon.conf. Zkuste odkomentovat nebo změnit řádek:

    ; default-sample-rate = 44100

na

    default-sample-rate = 48000

a restartujte PulseAudio:

    pulseaudio --kill && pulseaudio --start

44100Hz je dobré pro kvalitní přehrávání audio souborů bez převzorkování, tyto jsou v drtivé většině právě v 44100Hz. 48000Hz je vhodné pro drtivou většinu zvukových karet.

### Nefunkční nastavení hlasitosti

Zkontrolujte

    /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common

Pokud hlasitost nejde měnit použitím `alsamixer` nebo `amixer`, může to být kvůli větším hodnotám, které PulseAudio používá ( 65537 ). Zkuste proto větší hodnoty př. `amixer set Master 655+` nebo použijte vyjádření v %.

### Hlasitost je vyšší po každém spuštění aplikace

Můžete zkusit odkomentovat.

    flat-volumes = no

v

    /etc/pulse/daemon.conf

### Realtime plánování

Pokud rtkit nepracuje, zkuste ručně nastavit PulseAudio s realtime časováním v `/etc/security/limits.conf`:

    @pulse-rt - rtprio 9
    @pulse-rt - nice -11

Nezapomeňte se přidat jakož uživatel do skupiny `pulse-rt`:

    # gpasswd -a <user> pulse-rt

## Viz také

- Allow multiple programs to play sound at once

## Externí odkazy

- http://www.pulseaudio.org/wiki/PerfectSetup - Pokud chcete mít své nastavení perfektní, následujte tento odkaz
- http://www.alsa-project.org/main/index.php/Asoundrc - Alsa wiki na .asoundrc
- http://www.pulseaudio.org/ - Oficiální stránka PulseAudia
- http://www.pulseaudio.org/wiki/FAQ - PulseAudio FAQ

Category:

- Sound (Česky)

Hidden categories:

- Pages with broken package links
- Pages or sections flagged with Template:Out of date