PulseAudio (Česky)

From ArchWiki
Revision as of 13:32, 5 February 2011 by Luta (Talk | contribs) (Created page with "Category:HOWTOs (Česky) Category:Audio/Video (Česky) {{i18n|PulseAudio}} '''PulseAudio''' je univerzální zvukový server pro systémy POSIX a WIN32, jehož základn...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

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 spoš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

For the applications that do not support PulseAudio and support ALSA it is recommended to install the PulseAudio plugin for ALSA. The simplest way of doing this is installing the pulseaudio-alsa package: 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 Template:Filename 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 Template:Codeline modul jádra:

# rmmod snd_pcm_oss

Poté je vhodné daný modul zakázat, což se provede v souboru Template:Filename v sekci MODULES přídáním Template:Codeline.

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: Template:File

GStreamer

Abychom přiměli GStreamer používat PulseAudio, nastavíme gconf proměnné Template:Codeline na 'pulsesink a Template:Codeline 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 : Template:File

libao

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

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 a patch.

ESD

PulseAudio je v podstatě náhrada za zvukový daemon ESD, proto pokud běží PulseAudio, clienti 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

If you use GNOME or KDE, Pulseaudio may already launch on login automatically. 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 Template:Filename:

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ž Template:Filename, 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

If you've installed PulseAudio, it will be used by KDE4/Qt4 applications. For more information see the KDE pages in the PulseAudio wiki. 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

You will need to configure mpd to use PulseAudio. 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 "Template:Codeline". Toto lze také nastavit jako výchozí v konfiguračním souboru pro každého uživatele Template:Filename nebo pro celý systém Template:Filename: Template:File

"Flashový" obsah

Pokud neslyšíte žádný zvukový výstup z multimediálního obsahu typu flash, můžete zkusit nainstalovat z AURu libflashsupport-pulse.

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 Template:Filename 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 Template:Filename (systémové nastavení) nebo Template:Filename (pro každého uživatele), aby ALSA používala PulseAudio: Template:File

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 Template:Codeline pro nalezení názvu zvukového zdroje PulseAudia (př. Template:Codeline). Pak přidat tyto do Template:Filename nebo Template:Filename:

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 Template:Codeline 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íťi)

Pro povolení TCP modulu přidejte či odkomentujte Template:Filename:

load-module module-native-protocol-tcp

Pro povolení vzdáleného připojení na TCP modul musíte odblokovat službu v Template:Filename:

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 (Template:Filename) budete potřebovat také nainstalovaný a spuštěný Template:Filename 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 Template:Codeline. 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 Template:Filename:

### 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 with Startup/Shutdown Scripts

Using the settings listed above you can use QjackCtl to execute a script upon startup and shutdown to load/unload PulseAudio. Part of the reason you may wish to do this is that the above changes disable PulseAudio's automatic hardware detection modules. This particular setup is for using PulseAudio in an exclusive fashion with JACK, though the scripts could be modified to unload and load an alternate non-JACK setup, but killing and starting PulseAudio while programs might be using it would become problematic.

The following example could be used and modified as necessary as a startup script that daemonizes PulseAudio and loads the padevchooser program (optional, needs to be built from AUR) called Template:Filename:

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

pulseaudio -D
padevchooser&

as well as a shutdown script to kill PulseAudio and the Pulse Audio Device Chooser, as another example called Template:Filename also in the home directory:

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

pulseaudio --kill
killall padevchooser

Both scripts need to be made executable:

chmod +x jack_startup jack_shutdown

then with QjackCtl loaded, click on the Setup button and then the Options tab and tick both "Execute Script after Startup:" And "Execute Script on Shutdown:" and put either use the ... button or type the path to the scripts (assuming the scripts are in the home directory) Template:Filename and Template:Filename making sure to save the changes you have made.

Pulseaudio through OSS

Add the following to Template:Filename:

 load-module module-oss

Then start Pulseaudio as usual. You should have sinks and sources for your OSS devices.

Pulseaudio from within a chroot (ex. 32-bit chroot in 64-bit install)

Since a chroot sets up an alternative root for the running/jailing of applications, pulseaudio must be installed within the chroot itself (Template:Codeline within the chroot environment).

Pulseaudio, if not set up to connect to any specific server (this can be done in Template:Filename, through the PULSE_SERVER environment variable, or through publishing to the local X11 properties using module-x11-publish), will attempt to connect to the local pulse server, failing which it will spawn a new pulse server. Each pulse server has a unique ID based on the machine-id value in Template:Filename. To allow for chrooted apps to access the pulse server, the following directories must be mounted within the chroot:-

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

Template:Filename should also be mounted for efficiency and good performance. Note that mounting /home would normally also allow sharing of the Template:Filename folder.

For specific direction on accomplishing the appropriate mounts, please refer to the wiki on installing a bundled 32-bit system, especially the additional section specific to Pulseaudio.

Troubleshooting

No sound after install

No cards

If PulseAudio starts, run Template:Codeline. If no cards are reported, make sure that your ALSA devices are not in use:

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

Make sure any applications using the pcm or dsp files are shut down before restarting PulseAudio.

KDE4

It may be that you have another output device set as preferred in phonon. Make sure that every setting has your preferred output device at the top, and check pavucontrol (install using pacman) to make sure that applications are using the device for output.

Muted audio device

If you experience no audio output via any means while using ALSA as your default device, you may have to unmute your sound card. To do this, you will want to launch alsamixer and make sure each column has a green 00 under it (this can be toggled by pressing 'm')

$ alsamixer -c 0

Sometimes the snd_pcsp driver conflicts with the snd_hda_intel driver (for those of you using Intel cards) and no sound output is experienced. To fix this, you can blacklist the snd_pcsp driver in the MODULES array of Template:Filename (by appending Template:Codeline).

Daemon startup failed

Try resetting PulseAudio. To do that:

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

Afterwards, start PulseAudio again.

padevchooser

If you cannot launch the PulseAudio Device Chooser, first (re)start the Avahi daemon as follows:

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

Glitches and high CPU usage since 0.9.14

The PulseAudio sound server has been rewritten to use timer-based audio scheduling instead of the traditional interrupt-driven approach. Timer-based scheduling may expose issues in some Alsa drivers. To turn timer-based scheduling off, replace the line:

load-module module-udev-detect 

in Template:Filename by:

load-module module-udev-detect tsched=0

Choppy sound

Choppy sound in pulsaudio can result from wrong settings for the sample rate in /etc/pulse/daemon.conf. Try changing the line

; default-sample-rate = 44100

to

default-sample-rate = 48000

and restart the pulsaudio server by executing

pulseaudio --kill && pulseaudio --start

Volume adjustment doesn't work properly

You might wan't to check

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

If the volume does not appear to increment/decrement properly using Template:Codeline or Template:Codeline, it may be due to pulseaudio having a larger number of increments (65537 to be exact). Try using larger values when changing volume (e.g. Template:Codeline).

Volume gets louder every time a new application is started

If you encounter this issue, you can fix it by uncommenting

flat-volumes = no

in

/etc/pulse/daemon.conf

Realtime scheduling

If rtkit doesn't work, you can manually set up your system to run PulseAudio with realtime scheduling, which can help performance. To do this, add the following lines to Template:Filename:

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

Afterwards, you need to add your user to the Template:Codeline group:

# gpasswd -a <user> pulse-rt

See also

External links