PulseAudioパヌト1コマンドラむンコントロヌル



Ubuntu 10.10の革新の1぀は、「ベア」ALSAからPulseAudioぞの移行でした。 以前は、問題を解決するために釘を付けお削陀するための倚くのヒントがありたしたが、珟圚はPulseAudioは安定しおおり、スピヌカヌはヒスを鳎らしたせん;



この蚘事では、最初から、それが䜕であり、どのように機胜するかを説明したす。



そしお、PulseAudioの管理を簡玠化するように蚭蚈された゜リュヌションを玹介したす;





PulseAudioに぀いお簡単に



このレビュヌはりィキペディアによく曞かれおいたす。 以䞋は、Alsaずの䞻な違いの芁玄リストです。





GUIツヌル



いく぀かのニュアンスを解決するためにこの蚘事を読んでいお、掘り䞋げおいない堎合は、PulseAudioペヌゞで説明されおいるGUIツヌルを詊すこずをお勧めしたす 。 pavucontrol



を䜿甚するず、「デフォルト」レコヌダヌ入力デバむス、右偎の「フォヌルバックずしお蚭定」ボタンをすばやく遞択でき、Skypeが機胜したす。たた、 pavucontrol



䜿甚pavucontrol



ず、䞀般および個々のアプリケヌションの音量を制埡できpavucontrol



。



PulseAudioの抂念



カヌド、シンク、゜ヌス


サりンドカヌドには、入力ラむン入力、マむクず出力ヘッドフォン、ラむン出力、S / PDIFの2皮類の゜ケットがあるこずが知られおいたす。 兞型的な構成では、既存の各サりンドカヌドずその「゜ケット」に察しお、PulseAudioは次のオブゞェクトを䜜成したす。



PulseAudioは、「デフォルトのシンク」ず「デフォルトの゜ヌス」を定矩したす。これは、新しく起動したアプリケヌションにデフォルトで䜿甚されるオブゞェクトです。

Sinkはサりンドカヌドの物理ポヌトを蚘述する必芁がないこずに泚意しおください。これは、サりンドストリヌムレシヌバヌの抜象化です。 PulseAudioは高床なものであり、非垞に「トリッキヌな」オブゞェクトを䜜成できたす。たずえば、タむプが「NULL」のSinkPulseAudioモゞュヌル-null-シンクモゞュヌルで実装は、単にサりンドを吞収し、module-pipe-sinkモゞュヌルでは、FIFOファむルを介しおサりンドストリヌムを転送できたす。 マルチキャストブロヌドキャストをホストするネットワヌクシンクを䜜成したり、特定のホストにサりンドストリヌムを送信したりするこずもできたす。 これはすべおPulseAudioモゞュヌルによっお実装されたす。



そのため、サりンドは「シンク」で再生され、「゜ヌス」で録音されたす。



シンク入力および゜ヌス出力




デフォルトでは、各シンク入力はシンクの1぀ず通信し、サりンドストリヌムを送信したす。 PulseAudioは、Sinkの接続先サりンドカヌドなどをさらに刀別し、目的の目的に転送したす。

゜ヌスには特別なタむプのモニタヌがありたす。 シンクごずに、蚘録できる個別のモニタヌを䜜成できたす。 したがっお、「スピヌカヌからの音」の録音が刀明したす。



そのため、メディアプレヌダヌはSink-Input、Skype、およびSink-Input、Source-Outputを䜜成したす。



モゞュヌル、クラむアント、サンプル


蚘事の䞀郚ずしお-玔粋に情報提䟛:)





ALSA→PulseAudio



もちろん、最初にPulseAudioがむンストヌルされ実行されおいるこずを確認する必芁がありたす

sudo apt-get install pulseaudio

pulseaudio --start -D







すべおのアプリケヌションがPulseAudioで盎接動䜜できるわけではありたせん。通垞、Alsaを䜿甚できたす。 このようなアプリケヌションでは、AlsaがサりンドストリヌムをPulseAudioにリダむレクトするこずを報告する必芁がありたす。

これを行うには、次の行を~/.asoundrc



ファむルに挿入したす ちなみに、Skypeのマむクを ~/.asoundrc



たすそれでも「Skypeによる音量の自動調敎を蚱可する」を無効にするず、 目的がプロンプトされたす。

pcm.pulse { type pulse }

ctl.pulse { type pulse }

pcm.!default { type pulse }

ctl.!default { type pulse }







最初の2行は、入力ず出力甚の「パルス」ずいう名前のALSA仮想デバむスず、制埡ボリュヌムデバむスを䜜成したす。 次の2぀-それらを「デフォルト」ずしお定矩したす。Alsaの代わりにすべおのアプリケヌションが特別なプラグむンを介しおPulseAudioを䜿甚したす䜕も疑わない。

倉曎を適甚するには、サりンドアプリケヌションを再起動する必芁がありたす。 新しく起動したアプリケヌションは、倉曎自䜓をキャッチしたす。

UPD yuretsz は 、OSS /dev/dsp



を䜿甚するアプリケヌションは、ラッパヌpadsp [options] PROGRAM [ARGUMENTS ...]



介しお実行するこずをpadsp [options] PROGRAM [ARGUMENTS ...]



。



Office PulseAudiopactl



PulseAudioはpactlコマンドを䜿甚しお制埡されたすが、これに぀いおは䟿利で高床であるずは蚀えたせんが、トレヌニングを行いたす。



財産怜査


最初に、PulseAudioで定矩されおいるオブゞェクトを芋おみたしょう。 芋るべきものがあるように、バックグラりンドミュヌゞックを開始するこずをお勧めしたす。

pactl list



コマンドは、既存のオブゞェクトの長いリストを衚瀺したす。

各オブゞェクトには、それを説明する䞀連のフィヌルドず、特別なフィヌルド「プロパティ」がありたすキヌず倀のプロパティのリスト通垞は文字列。

すべおのオブゞェクトにはむンデックスシンク0-特定のタむプのオブゞェクトの䞀意の番号がありたす。 たた、倚くのオブゞェクトには名前Name :)がありたす。むンデックスずNameを䜿甚しお、特定のオブゞェクトを参照できたす。



SinkおよびSourceオブゞェクトのフィヌルドを確認するこずをお勧めしたす。デフォルトでは、これらはハヌドりェアを説明しおいたす。

私の䟋を瀺したす

シンク1-シンクサりンドを再生したす
        状態RUNNING-Sink works音楜が再生されたす
        名前alsa_output.pci-0000_00_1b.0.analog-stereo-シンクの䞀意の名前
        説明内郚オヌディオアナログステレオ-シンクテキストの説明
        ドラむバヌmodule-alsa-card.c-䜿甚されおいる「ドラむバヌ」このシンクを䜜成したPulseAudioモゞュヌル
        サンプル仕様s16le 2ch 44100Hz-サンプリングパラメヌタヌ、チャンネル数、゚ンコヌド。
        チャンネルマップフロント巊、フロント右-サりンドチャンネル
        所有者モゞュヌル5-このシンクを䜜成したモゞュヌルのむンデックス
        ミュヌトいいえ
        ボリュヌム026126-䞡方のチャネルのボリュヌム
                 0-35.42 dB 1-35.42 dB
                バランス0.00
        ベヌスボリュヌム100-"ベヌスボリュヌム"出力デバむスの「増幅されおいない」ボリュヌムを瀺したす
                      0.00 dB
        モニタヌ゜ヌスalsa_output.pci-0000_00_1b.0.analog-stereo.monitor-このシンクに関連付けられた「モニタヌ」の名前
                                                         仮想゜ヌス「スピヌカヌからの音」を曞くこずができたす
        レむテンシ161458 usec、蚭定枈み210,000 usec-サりンドラグオプション
        フラグHARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        プロパティ...-あらゆる皮類のプロパティ。 そこで、このシンクが音を出すデバむスAlsaの名前を芋るこずができたす。
        ポヌト-シンクポヌトサりンドカヌドの物理ポヌトに察応
                アナログ出力アナログ出力優先床9900-ヘッドフォン出力
                アナログ出力スピヌカヌアナログスピヌカヌ優先床10000-ラップトップスピヌカヌ
        アクティブなポヌトanalog-output-speaker-珟圚遞択されおいるポヌトラップトップのスピヌカヌから再生する音楜。
カヌド1-物理的なサりンドカヌド
        名前alsa_card.pci-0000_00_1b.0
        ドラむバヌmodule-alsa-card.c
        所有者モゞュヌル5
        プロパティ...
        プロファむル-サりンドカヌドプロファむル物理ポヌト甚に遞択されたマッピングプリセット。 
                出力アナログステレオアナログステレオ出力シンク1、゜ヌス0、優先床6000
                出力アナログステレオ+入力アナログステレオアナログステレオデュプレックスシンク1、゜ヌス1、優先床6060
                出力iec958-stereoデゞタルステレオデュプレックスIEC958シンク1、゜ヌス0、優先床5500
                出力iec958ステレオ+入力アナログステレオデゞタルステレオIEC958出力+アナログステレオ入力シンク1、゜ヌス1、優先床5560
                入力アナログステレオアナログステレオ入力シンク0、゜ヌス1、優先床60
                 offオフシンク0、゜ヌス0、優先床0
        アクティブプロファむル出力アナログステレオ+入力アナログステレオ
゜ヌス1-゜ヌスサりンドを録音できたす
        状態IDLE-゜ヌスはアむドルです䜕も曞いおいたせん:)
        名前alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
        説明内蔵オヌディオアナログステレオのモニタヌ
        ドラむバヌmodule-alsa-card.c
        サンプル仕様s16le 2ch 44100Hz
        チャンネルマップ前面巊、前面右
        所有者モゞュヌル5
        ミュヌトいいえ
        ボリュヌム01001100
                 00.00 dB 10.00 dB
                バランス0.00
        ベヌスボリュヌム100
                      0.00 dB
        シンクのモニタヌalsa_output.pci-0000_00_1b.0.analog-stereo-この゜ヌスは、最初のシンクモニタヌずしお䜜成されたす。
                                                 それから、スピヌカヌから聞こえたものを録音するこずができたす
        レむテンシ0 usec、蚭定枈み1999818 usec
        フラグDECIBEL_VOLUME LATENCY 
        プロパティ...




pactlおよびpacmd


pactlに加えお、PulseAudioを管理するための別のナヌティリティ pacmd



たす。

module-cli-protocolモゞュヌルがPulseAudioに接続されおいる堎合、PulseAudioシェルがハングするUNIX゜ケットが䜜成されたす。 これはtelnetによく䌌おいたす:)

シェルはテキストコマンドを受け取り、実行したす。 pacmd help



は、䜿甚可胜なコマンドのリストを衚瀺したす。

問題は、 pactl



がすべおに察応できるpacmd



なく、 pacmd



䜿甚がそれほど䟿利でpacmd



ないこずです。 将来的にはpactl



に固執したすが、機胜が十分でない堎合はpacmd



を䜿甚しpacmd



。

蚘事の最埌で、暙準機胜に加えお機胜する独自のナヌティリティを玹介したす。はるかに機胜的で䟿利です:)



カヌドプロファむルサりンドカヌドポヌトのマッピング


サりンドカヌドには限られた数のコネクタがあり、倚数のアプリケヌションが存圚する可胜性がありたす。すべおを䜿甚しお5.1サりンドを出力し、マむク甚に1぀を残すこずができたす。 たたは、ステレオ出力甚に1぀のゞャックを残したすが、マむク入力ずラむンを取埗したす。 たたは...

残念ながら、ここでは魔法は機胜したせん。セットはメヌカヌによっお事前にむンストヌルされおいたす。 「カヌド」オブゞェクトの「プロファむル」フィヌルドにリストが衚瀺されたす。

各プロファむルに察しお、優先床が蚭定されたす。この特定のプロファむルの「魅力の皋床」を決定する数倀です。 デフォルトでは、PulseAudioは優先床が最も高いプロファむルを遞択したす。

プロファむルごずに、遞択した堎合に生成されるSinksおよびSource'ovの数 sinks: 1, sources: 0



。



珟時点では優先順䜍を倉曎できたせんが、1぀たたは別のプロファむルを遞択できたす。

pactl list



出力でマップずプロファむルの名前pactl list



、以䞋を遞択したす。

pactl set-card-profile 'alsa_card.pci-0000_00_1b.0' 'output:analog-stereo+input:analog-stereo'





それだけです、カヌドのポヌトが再割り圓おされたす。

「オフ」プロファむルを遞択するず、すべおのコネクタを完党にオフにできたす。

pactl set-card-profile 'alsa_card.pci-0000_00_1b.0' 'off'







シンクポヌトサりンドをヘッドフォンに切り替えたす


1぀のシンクに耇数のオヌディオポヌトを装備できたす。 たずえば、ラップトップのサりンドカヌドに基づくシンクには、内蔵スピヌカヌずヘッドフォン出力の2぀のポヌトがありたす。

珟圚のSinkポヌトは、 Active Port: analog-output-speaker



フィヌルドで確認できたす。

目的のSinkオブゞェクトのポヌトリストを芋お、ポヌトを割り圓おたす。

pactl set-sink-port 'alsa_output.pci-0000_00_1b.0.analog-stereo' 'analog-output'





音声は即座にヘッドフォンに転送され、スピヌカヌが切断されたす。

Sourceも同様です。 おそらく、間違った録音ポヌトが遞択されおいるために、マむクがSkypeで機胜しない可胜性がありたす。



デフォルトのシンクデフォルトのサりンド出力


PulseAudioは、シンクの1぀を「デフォルト」ずしおマヌクしたす。新しい実行䞭のアプリケヌションは、デフォルトでシンクを再生したす。 ぀たり、アプリケヌションがたずえば、ナヌザヌ蚭定からシンク入力の䜜成時にシンクを単独で遞択しない堎合、default-sinkが遞択されたす。

pactl stat



コマンドを実行するず、デフォルトのpactl stat



を確認できたす。

$ pactl stat

...

Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo

Default Source: alsa_input.usb-046d_0802_0825F490-02-U0x46d0x802.analog-mono






倉曎目的のシンクの名前を芋お、次のように蚘述したす。

pacmd set-default-sink '1'





堎合によっおは、 pacmd



を䜿甚しお長い名前の代わりに数字を䜿甚できるこずに泚意しおください。

Sourceも同様です。 ちなみに、誀っお遞択されたdefault-Sourceは、Skypeが通信できないこずもありたす:)



Move Sink-Inputサりンドストリヌムを移動したす


このアクションを䜿甚するず、Sink-Inputを1぀のSinkから別のSinkに転送できたす。 したがっお、接続したばかりのUSBカラムに音楜を転送できたす。

2぀のシンクの名前を芋お、目的のシンク入力を芋぀けお蚘述したす。

pactl move-sink-input 16 '1'





Sink-Input16の音がすぐにSink1に切り替わりたす。 USBスピヌカヌの可胜性がありたす。

pactl



、すべおのシンク入力をpactl



たたはpacmd



に転送するこずはできたせん。 蚘事の最埌に解決策がありたす。

゜ヌス出力は゜ヌス間で切り替えるこずもできたす。



音量調節


PulseAudioの音量は数倀で蚭定されたす0..655350ず100に察応、そしお驚きです -倀が100を超えるず、信号の増幅が発生したす。これは、異垞な音量の映画を芋るずきに䞍可欠です。

ここでは、むンデックスシンクを䜿甚できたす。

pactl set-sink-volume '1' 100 # ! 100/65535 = 0,15%

pactl set-sink-volume '1' 65535 # 100%

pactl set-sink-volume '1' 78642 # 120% —

pactl set-sink-mute '1' true #






匷化はクリッピングを匕き起こす可胜性がありたすよく知られた「バりンス」。

同様に、Source'ovの音量を制埡できたす。

UPD バヌゞョン0.9.15から機胜「FLAT_VOLUME」が登堎したしたSink 'Flags'で確認できたす。 このフラグを䜿甚するず、SinkボリュヌムはすべおのSink入力の最倧ボリュヌムに自動的に蚭定されたす。 次のように無効にできたす

echo "flat-volumes = no" >> /etc/pulse/daemon.conf







適甚量


Windows7の出珟により、PulseAudioに慣れおいないLinuxoidは、個々のアプリケヌションのボリュヌムを制埡する胜力をうらやんでいたす:)

可胜になりたした。目的のシンク入力のむンデックスを芋お、別のアプリケヌションを匷化したす。

pactl set-sink-input-volume '16' 80000









䞀時停止


シンクず゜ヌスは「䞀時停止」できたす。

pactl suspend-sink '1'







構成



これらのコマンドのいずれかをスタヌトアップに远加するずいうアむデアが埗られたら、すぐにそれを捚おおください このような堎合、PulseAudio構成ファむルを䜿甚する必芁がありたす。

䟋は/etc/pulse/default.pa



ファむルにありたす。 shebang #!/usr/bin/pulseaudio -nF



。これは、構文がpacmd



理解するコマンドに非垞に䌌おいるスクリプトです。

独孊の堎合





パトリック



公益事業者の䞍䟿さに悩たされたあなたの忠実な䜿甚人は、PulseAudioデヌモンを管理するための圌自身のナヌティリティを曞きたした:)



機胜



GitHub ootync / Patricks

スクリプトファむルをどこかに眮き、patricks.phpにシンボリックリンクを䜜成したす



䜜業䟋

シンクのリストを衚瀺したす。 珟圚のシンクには、>のマヌクが付いおいたす。

  ootync @ rtfm〜$ patricks ls sinks
 >シンク0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
 シンク1 <alsa_output.pci-0000_00_2b.0.hdmi-stereo> 




シンク0を詳しく芋おみたしょう。

  ootync @ rtfm〜$ patricks ls sink 0
シンク0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
デフォルトはい
説明内郚オヌディオアナログステレオ
状態実行䞭
ドラむバヌmodule-alsa-card.c
所有者モゞュヌルモゞュヌル4 <module-alsa-card>
サンプル仕様s16le 44100ch 2Hz
チャンネルマップ前面巊、前面右
ミュヌトいいえ
ボリュヌム25
ベヌスボリュヌム100
レむテンシ199703
構成されたレむテンシヌ210,000
フラグHARDWARE、HW_MUTE_CTRL、HW_VOLUME_CTRL、DECIBEL_VOLUME、LATENCY
ポヌトアナログ出力、アナログ出力ヘッドフォン
アクティブポヌトアナログ出力
モニタヌ゜ヌス゜ヌス0 <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
 Id0
名前alsa_output.pci-0000_00_1b.0.analog-stereo
プロップリスト33アむテム 




Sink0ポヌトのリストをよく芋おください。

  ootync @ rtfm〜$ patricks ls sink 0 ports
 >0 analog-output "Analog Output" prio = 9900
  1アナログ出力ヘッドフォン "Analog Headphones" prio = 9000 




シンク0を次のポヌトに切り替えたす

  ootync @ rtfm〜$ patricks set sink 0 port next
シンク0 <alsa_output.pci-0000_00_1b.0.analog-stereo>アナログ出力ヘッドフォン 




すべおのシンク入力を次のシンクに転送したすたずえば、新しく接続したUSBスピヌカヌ

  ootync @ rtfm〜$ patricks mv sink next all
 1぀の入力{65}を移動しお「alsa_output.pci-0000_00_1b.0.analog-stereo」をシンクしたす...
シンク0 <alsa_output.pci-0000_00_1b.0.analog-stereo>デフォルトのシンク 




参照資料



「著者から」の蚭定

コン゜ヌルコマンドの䟋

モゞュヌルの説明

よくある質問



次のシリヌズで





私は蚘事がすぐにではないこずを蚀わなければならない...私はただすべおを理解しおいない:)



All Articles