「PipeWire」の版間の差分
Oriaca372m (トーク | 投稿記録) (翻訳の調整) |
Oriaca372m (トーク | 投稿記録) 細 |
||
2行目: | 2行目: | ||
[[en:PipeWire]] |
[[en:PipeWire]] |
||
[[fi:PipeWire]] |
[[fi:PipeWire]] |
||
− | |||
[http://pipewire.org PipeWire] は新しい低レベルマルチメディアフレームワークです。 |
[http://pipewire.org PipeWire] は新しい低レベルマルチメディアフレームワークです。 |
||
− | 映像と音声を最小の遅延で再生/キャプチャすることを目的としていて、PulseAudio、JACK、ALSA、 |
+ | 映像と音声を最小の遅延で再生/キャプチャすることを目的としていて、PulseAudio、JACK、ALSA、GStreamer をベースとしたアプリケーションと互換性があります。 |
− | このフレームワークのデーモンは (PulseAudio と JACKの機能を持った) オーディオサーバーとしても、ビデオキャプチャサーバーとしても設定できます。 |
+ | このフレームワークのデーモンは (PulseAudio と JACK の機能を持った) オーディオサーバーとしても、ビデオキャプチャサーバーとしても設定できます。 |
− | また PipeWire は [[Flatpak]] のようなコンテナをサポートしており、''audio'' や ''video'' [[ユーザーとグループ#グループ管理|ユーザーグループ]] |
+ | また PipeWire は [[Flatpak]] のようなコンテナをサポートしており、''audio'' や ''video'' [[ユーザーとグループ#グループ管理|ユーザーグループ]]に依存するのではなく、Flatpak や Wayland にスクリーンや音声を録音する許可を求める [[Polkit]] のようなセキュリティモデルを使用しています。 |
== インストール == |
== インストール == |
||
− | 公式リポジトリの {{pkg|pipewire}} パッケージを |
+ | 公式リポジトリの {{pkg|pipewire}} パッケージを[[インストール]]します。 |
− | + | PipeWire は [[systemd/ユーザー]] を使用してサーバーの管理とソケットアクティベーションを行います。起動時の動作やログの確認方法などの詳細は [[systemd/ユーザー]] を参照してください。 |
|
− | 必要に応じて {{pkg|pipewire-docs}} をインストールしてドキュメントを確認することもできます。 |
+ | 必要に応じて {{pkg|pipewire-docs}} をインストールしてドキュメントを確認することもできます。{{pkg|pipewire-alsa}}、{{pkg|pipewire-pulse}}、{{pkg|pipewire-jack}} などの他のパッケージは [[#音声|PulseAudio/JACKの代わりに PipeWire を使用]]したい場合を除き必要ありません。multilib サポートのために {{aur|lib32-pipewire}}、{{aur|lib32-pipewire-jack}} も利用できます。 |
== 使用方法 == |
== 使用方法 == |
||
22行目: | 21行目: | ||
=== WebRTC 画面共有=== |
=== WebRTC 画面共有=== |
||
− | ほとんどのブラウザは WebRTC を使用しているとき (例えば Google ハングアウトで) デスクトップ (や個々のアプリケーション) をキャプチャするのに X11 に依存していました。 |
+ | ほとんどのブラウザは WebRTC を使用しているとき (例えば Google ハングアウトで) デスクトップ (や個々のアプリケーション) をキャプチャするのに X11 に依存していました。Wayland ではセキュリティ上の理由から画面共有は異なる方法で処理されます。PipeWire はきめ細かなアクセス制御を使用して Wayland 上のコンテンツを共有できます。 |
− | これには {{pkg|xdg-desktop-portal}} とそのバックエンドの1つが[http://jgrulich.cz/2018/07/04/04/how-to-enable-and-use-screen-sharing-on-wayland 必要です]。 |
+ | これには {{pkg|xdg-desktop-portal}} とそのバックエンドの1つが[http://jgrulich.cz/2018/07/04/04/how-to-enable-and-use-screen-sharing-on-wayland 必要です]。利用可能なバックエンドは次のとおりです: |
* GNOME の場合、{{pkg|xdg-desktop-portal-gtk}} |
* GNOME の場合、{{pkg|xdg-desktop-portal-gtk}} |
||
* KDE の場合、{{pkg|xdg-desktop-portal-kde}} |
* KDE の場合、{{pkg|xdg-desktop-portal-kde}} |
||
− | * wlroots ベースのコンポジター ( |
+ | * wlroots ベースのコンポジター ([[Sway]] や [https://github.com/djpohly/dwl dwl] など) の場合、{{pkg|xdg-desktop-portal-wlr}} |
− | Firefox (バージョン84以降) はデフォルトでこの方法をサポートしていますが、Chromium (バージョン73以降) では、[https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWireサポート] |
+ | Firefox (バージョン84以降) はデフォルトでこの方法をサポートしていますが、Chromium (バージョン73以降) では、[https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWireサポート]を次のURLの実験的機能の設定を変更して有効にする必要があります: |
chrome://flags/#enable-webrtc-pipewire-capturer |
chrome://flags/#enable-webrtc-pipewire-capturer |
||
36行目: | 35行目: | ||
export XDG_CURRENT_DESKTOP=sway |
export XDG_CURRENT_DESKTOP=sway |
||
− | Chromium は |
+ | Chromium は現在 PipeWire 0.2 を使っていますが、Arch Linux では PipeWire 0.3 を提供しているので、画面共有を行うには {{pkg|libpipewire02}} もインストールする必要があります。 |
{{Tip|複数のモニタがある場合に {{ic|xdg-desktop-portal-wlr}} を使用してそれぞれのモニターを共有するには、ユニットのサービスファイルの {{ic|1=ExecStart=}} オプションを[[Systemd#Editing_provided_units|編集]]して {{ic|1=--output=''Monitor''}} フラグを追加してください。行全体は {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}} のようになります。}} |
{{Tip|複数のモニタがある場合に {{ic|xdg-desktop-portal-wlr}} を使用してそれぞれのモニターを共有するには、ユニットのサービスファイルの {{ic|1=ExecStart=}} オプションを[[Systemd#Editing_provided_units|編集]]して {{ic|1=--output=''Monitor''}} フラグを追加してください。行全体は {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1}} のようになります。}} |
||
48行目: | 47行目: | ||
=== 音声 === |
=== 音声 === |
||
− | PulseAudio や |
+ | PulseAudio や JACK と同様に PipeWire をオーディオサーバーとして使用できます。 PulseAudio サーバーの互換実装と JACK クライアント用の ABI 互換ライブラリを提供することで PulseAudio と JACK の両方を置き換えることを目的としています。詳細については[https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ この記事]を参照してください。 |
==== ALSA/レガシーアプリケーション ==== |
==== ALSA/レガシーアプリケーション ==== |
||
56行目: | 55行目: | ||
==== PulseAudio クライアント ==== |
==== PulseAudio クライアント ==== |
||
− | {{pkg|pipewire-pulse}} をインストールします。このパッケージは {{pkg|pulseaudio}} と {{pkg|pulseaudio-bluetooth}} を置き換えます。パッケージがユーザーサービス {{ic|pipewire-pulse.socket}} を自動的に有効化するので、通常それ以上の操作は不要です。システム起動時に PipeWire が正しく機能しない場合は、ユーザーサービス {{ic|pipewire-pulse.service}} と {{ic|pipewire.service}} が起動して実行されているか確認します。 |
+ | {{pkg|pipewire-pulse}} をインストールします。このパッケージは {{pkg|pulseaudio}} と {{pkg|pulseaudio-bluetooth}} を置き換えます。パッケージがユーザーサービス {{ic|pipewire-pulse.socket}} を自動的に有効化するので、通常それ以上の操作は不要です。システム起動時に PipeWire が正しく機能しない場合は、ユーザーサービス {{ic|pipewire-pulse.service}} と {{ic|pipewire.service}} が起動して実行されているか確認します。[[Systemd/ユーザー]]を参照してください。 |
変更を適用するには、再起動または再ログインしてください。 |
変更を適用するには、再起動または再ログインしてください。 |
||
78行目: | 77行目: | ||
PIPEWIRE_LATENCY="128/48000" pw-jack ''application'' |
PIPEWIRE_LATENCY="128/48000" pw-jack ''application'' |
||
− | また {{aur|pipewire-jack-dropin}} をインストールするか、{{pkg|jack}} か {{pkg| |
+ | また {{aur|pipewire-jack-dropin}} をインストールするか、{{pkg|jack}} か {{pkg|jack2}} をアンインストールして JACK クライアントが互換ライブラリを自動的に読み込むようにもできます。 |
{{ic|ldd}} を使用して JACK アプリケーションが正しいライブラリにリンクしていることを確認します。 |
{{ic|ldd}} を使用して JACK アプリケーションが正しいライブラリにリンクしていることを確認します。 |
||
98行目: | 97行目: | ||
=== PulseEffects === |
=== PulseEffects === |
||
− | PulseEffects は |
+ | PulseEffects は多数のエフェクトとフィルタを個々の入出力ストリーム (アプリケーションの音声出力やマイクの入力など) に提供する GTK 製のユーティリティです。注目すべきエフェクトには、入出力イコライザー、出力ラウドネス等化、ベースエンハンスメント、入力ディエッサー、ノイズ抑制プラグインなどがあります。[https://github.com/wwmm/pulseeffects GitHub ページ]にエフェクトの一覧があります。 |
PipeWire で PulseEffects を使用するには、{{pkg|pulseeffects}} または {{AUR|pulseeffects-git}} をインストールします。 |
PipeWire で PulseEffects を使用するには、{{pkg|pulseeffects}} または {{AUR|pulseeffects-git}} をインストールします。 |
||
− | {{Note|これにより、{{pkg|pipewire-pulse}} がインストールされ [[#PulseAudio クライアント|PulseAudio が PipeWire に置き換えられます。]] |
+ | {{Note|これにより、{{pkg|pipewire-pulse}} がインストールされ [[#PulseAudio クライアント|PulseAudio が PipeWire に置き換えられます。]]詳細は {{Bug|69437}} を参照してください。古いバージョンについては [[PulseAudio#PulseEffects]] を参照してください。}} |
− | プリセット設定のコレクションについては、[https://github.com/wwmm/pulseeffects/wiki/Community-presets コミュニティープリセット] |
+ | プリセット設定のコレクションについては、[https://github.com/wwmm/pulseeffects/wiki/Community-presets コミュニティープリセット]を参照してください。 |
== トラブルシューティング == |
== トラブルシューティング == |
||
130行目: | 129行目: | ||
=== Bluetooth デバイスに接続しても音が出ない === |
=== Bluetooth デバイスに接続しても音が出ない === |
||
− | 2020-12-07 の時点で、Bluetooth デバイスを接続しても音が出ない場合は、デフォルトのシンクに切り替えるか、シンク入力を正しいシンクに移動する必要があります。 |
+ | 2020-12-07 の時点で、Bluetooth デバイスを接続しても音が出ない場合は、デフォルトのシンクに切り替えるか、シンク入力を正しいシンクに移動する必要があります。{{ic|pactl list sinks}} で使用可能なシンクの一覧を表示し、{{ic|pactl set-default-sink}} でデフォルトのシンクを Bluetooth デバイスに切り替えます。これは[https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e このようなスクリプト]を使って [[udev]] で自動化できます。 |
− | この問題については、この [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit スレッド] |
+ | この問題については、この [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 Reddit スレッド]を参照してください。スクリプトの作成者によると、ヘッドセットプロファイル (HSP) にまだ問題がある可能性があります。 |
=== 音量が小さい === |
=== 音量が小さい === |
||
− | PulseAudio を |
+ | PulseAudio を PipeWire で置き換えた後、正しく音が出ても、再起動後に音量が極端に小さくなることがあります。 |
− | {{ic|alsamixer}} を開き、{{ic|F6}} を押して適切なサウンドカードを選び ALSA のボリュームが100%であることを確認してください。 |
+ | {{ic|alsamixer}} を開き、{{ic|F6}} を押して適切なサウンドカードを選び ALSA のボリュームが100%であることを確認してください。{{ic|alsactl}} は再起動後もこの設定を維持するはずです。 |
=== increasing RLIMIT_MEMLOCK === |
=== increasing RLIMIT_MEMLOCK === |
||
156行目: | 155行目: | ||
=== 音が出ないまたは pactl info が Failure: Connection refused と表示する === |
=== 音が出ないまたは pactl info が Failure: Connection refused と表示する === |
||
− | これはアプリケーションが PipeWire-Pulse サービスに接続できていないことを意味します。{{ic|/etc/pipewire/pipewire-pulse.conf}} が存在し空でないことを確認し、{{ic|systemctl --user restart pipewire-pulse.service}} で PipeWire-Pulse を再起動して |
+ | これはアプリケーションが PipeWire-Pulse サービスに接続できていないことを意味します。{{ic|/etc/pipewire/pipewire-pulse.conf}} が存在し空でないことを確認し、{{ic|systemctl --user restart pipewire-pulse.service}} で PipeWire-Pulse を再起動してください。 |
それでも解決しない場合は {{ic|strace -f -o /tmp/pipe.txt pactl info}} を実行し、pastebin に {{ic|/tmp/pipe.txt}} を貼り付けて、IRC (Freenode '''#pipewire''') かメーリングリストで相談してください。 |
それでも解決しない場合は {{ic|strace -f -o /tmp/pipe.txt pactl info}} を実行し、pastebin に {{ic|/tmp/pipe.txt}} を貼り付けて、IRC (Freenode '''#pipewire''') かメーリングリストで相談してください。 |
||
200行目: | 199行目: | ||
pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940 |
pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940 |
||
− | [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#underrununderflow-and-broken-pipe-errors 公式 PipeWire トラブルシューティングガイド] |
+ | [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#underrununderflow-and-broken-pipe-errors 公式 PipeWire トラブルシューティングガイド]によると、この問題を解決するには {{ic|/etc/pipewire/media-session.d/alsa-monitor.conf}} を編集し、{{ic|1=api.alsa.headroom = 0}} という行のコメントを外し、値を {{ic|1024}} に変更します。 |
== 参照 == |
== 参照 == |
2021年3月20日 (土) 22:20時点における版
PipeWire は新しい低レベルマルチメディアフレームワークです。 映像と音声を最小の遅延で再生/キャプチャすることを目的としていて、PulseAudio、JACK、ALSA、GStreamer をベースとしたアプリケーションと互換性があります。
このフレームワークのデーモンは (PulseAudio と JACK の機能を持った) オーディオサーバーとしても、ビデオキャプチャサーバーとしても設定できます。
また PipeWire は Flatpak のようなコンテナをサポートしており、audio や video ユーザーグループに依存するのではなく、Flatpak や Wayland にスクリーンや音声を録音する許可を求める Polkit のようなセキュリティモデルを使用しています。
目次
- 1 インストール
- 2 使用方法
- 3 音声のポストプロセッシング
- 4 トラブルシューティング
- 4.1 PipeWire にマイクが検出されない
- 4.2 Bluetooth デバイスに接続しても音が出ない
- 4.3 音量が小さい
- 4.4 increasing RLIMIT_MEMLOCK
- 4.5 外付けサウンドカードが再接続後に有効にならない
- 4.6 音が出ないまたは pactl info が Failure: Connection refused と表示する
- 4.7 Bluetooth の音声の品質が低い
- 4.8 PipeWire の更新 (git / >=0.3.23) と再起動後デバイスが検出されない
- 4.9 再生開始時に音声に遅延が発生する
- 4.10 複数のストリームの再生開始時に音声が途切れる
- 5 参照
インストール
公式リポジトリの pipewire パッケージをインストールします。
PipeWire は systemd/ユーザー を使用してサーバーの管理とソケットアクティベーションを行います。起動時の動作やログの確認方法などの詳細は systemd/ユーザー を参照してください。
必要に応じて pipewire-docs をインストールしてドキュメントを確認することもできます。pipewire-alsa、pipewire-pulse、pipewire-jack などの他のパッケージは PulseAudio/JACKの代わりに PipeWire を使用したい場合を除き必要ありません。multilib サポートのために lib32-pipewireAUR、lib32-pipewire-jackAUR も利用できます。
使用方法
WebRTC 画面共有
ほとんどのブラウザは WebRTC を使用しているとき (例えば Google ハングアウトで) デスクトップ (や個々のアプリケーション) をキャプチャするのに X11 に依存していました。Wayland ではセキュリティ上の理由から画面共有は異なる方法で処理されます。PipeWire はきめ細かなアクセス制御を使用して Wayland 上のコンテンツを共有できます。
これには xdg-desktop-portal とそのバックエンドの1つが必要です。利用可能なバックエンドは次のとおりです:
- GNOME の場合、xdg-desktop-portal-gtk
- KDE の場合、xdg-desktop-portal-kde
- wlroots ベースのコンポジター (Sway や dwl など) の場合、xdg-desktop-portal-wlr
Firefox (バージョン84以降) はデフォルトでこの方法をサポートしていますが、Chromium (バージョン73以降) では、WebRTC PipeWireサポートを次のURLの実験的機能の設定を変更して有効にする必要があります:
chrome://flags/#enable-webrtc-pipewire-capturer
xdg-desktop-portal-wlr
を動かすには pipewire-media-session をインストール[1]して XDG_CURRENT_DESKTOP
環境変数を設定[2]する必要があります:
export XDG_CURRENT_DESKTOP=sway
Chromium は現在 PipeWire 0.2 を使っていますが、Arch Linux では PipeWire 0.3 を提供しているので、画面共有を行うには libpipewire02 もインストールする必要があります。
唯一サポートされている機能はデスクトップ全体の共有で、特定のアプリケーション/ウィンドウの共有はサポートされていません。[3][4]
映像
ソフトウェアはまだ商業利用には適していませんが、試す分には問題ありません。GStreamer を使用して映像ストリームを処理するほとんどのアプリケーションは PipeWire GStreamer プラグインにより設定なしで動作するはずです。そのため既に cheese のようなアプリケーションは PipeWire を使用して映像入力を利用できます。
音声
PulseAudio や JACK と同様に PipeWire をオーディオサーバーとして使用できます。 PulseAudio サーバーの互換実装と JACK クライアント用の ABI 互換ライブラリを提供することで PulseAudio と JACK の両方を置き換えることを目的としています。詳細についてはこの記事を参照してください。
ALSA/レガシーアプリケーション
pipewire-alsa をインストールして ALSA API を使用するすべてのアプリケーションが PipeWire を使用するよう設定できます。
PulseAudio クライアント
pipewire-pulse をインストールします。このパッケージは pulseaudio と pulseaudio-bluetooth を置き換えます。パッケージがユーザーサービス pipewire-pulse.socket
を自動的に有効化するので、通常それ以上の操作は不要です。システム起動時に PipeWire が正しく機能しない場合は、ユーザーサービス pipewire-pulse.service
と pipewire.service
が起動して実行されているか確認します。Systemd/ユーザーを参照してください。
変更を適用するには、再起動または再ログインしてください。
置き換えが機能しているかどうかを確認するには、次のコマンドを実行して出力を確認してください:
$ pactl info
... Server Name: PulseAudio (on PipeWire 0.3.16) ...
JACK クライアント
pipewire-jack をインストールします。pw-jack
を使用して JACK クライアントを起動すると、元の libjack*
ではなく PipeWire が提供する互換ライブラリが使用されます:
pw-jack application
カスタムバッファサイズを要求することもできます。PIPEWIRE_LATENCY
環境変数を バッファサイズ/サンプルレート
(ブロックのレイテンシ(秒)を意味します) に設定します:
PIPEWIRE_LATENCY="128/48000" pw-jack application
また pipewire-jack-dropinAUR をインストールするか、jack か jack2 をアンインストールして JACK クライアントが互換ライブラリを自動的に読み込むようにもできます。
ldd
を使用して JACK アプリケーションが正しいライブラリにリンクしていることを確認します。
$ ldd /usr/bin/qjackctl | grep -i libjack
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)
Bluetooth デバイス
PipeWire は pipewire-pulse パッケージがインストールされている場合 Bluetooth オーディオデバイスを制御します。具体的には、メディアセッションデーモンは /etc/pipewire/media-session.d/with-pulseaudio
が存在する時に自動的にその bluez5
モジュールを有効にします。
ネイティブ JACK 上で PipeWire を実行する
PipeWire はネイティブ JACK デーモン上の JACK クライアントとして実行することもできます。詳細は JACK and PipeWire を参照してください。
音声のポストプロセッシング
PulseEffects
PulseEffects は多数のエフェクトとフィルタを個々の入出力ストリーム (アプリケーションの音声出力やマイクの入力など) に提供する GTK 製のユーティリティです。注目すべきエフェクトには、入出力イコライザー、出力ラウドネス等化、ベースエンハンスメント、入力ディエッサー、ノイズ抑制プラグインなどがあります。GitHub ページにエフェクトの一覧があります。
PipeWire で PulseEffects を使用するには、pulseeffects または pulseeffects-gitAUR をインストールします。
プリセット設定のコレクションについては、コミュニティープリセットを参照してください。
トラブルシューティング
PipeWire にマイクが検出されない
PipeWire の alsa-monitor
モジュールは、デフォルトで alsa-card-profiles を使用してデバイスを検出します。これでうまくいかない場合は、/etc/pipewire/media-session.d/alsa-monitor.conf
の rules
-> 最初のルール -> actions
-> update-props
の api.alsa.use-acp
を false
にするか、または api.alsa.use-ucm
を true
にしてみてください:
... update-props = { api.alsa.use-acp = false ...
次に PipeWire を再起動し使用可能なデバイスを確認します:
$ pw-record --list-targets
Available targets ("*" denotes default): 62 58: description="Built-in Audio" prio=1872 60: description="Built-in Audio" prio=2000 * 62: description="Built-in Audio (Loopback PCM)" prio=1984
Bluetooth デバイスに接続しても音が出ない
2020-12-07 の時点で、Bluetooth デバイスを接続しても音が出ない場合は、デフォルトのシンクに切り替えるか、シンク入力を正しいシンクに移動する必要があります。pactl list sinks
で使用可能なシンクの一覧を表示し、pactl set-default-sink
でデフォルトのシンクを Bluetooth デバイスに切り替えます。これはこのようなスクリプトを使って udev で自動化できます。
この問題については、この Reddit スレッドを参照してください。スクリプトの作成者によると、ヘッドセットプロファイル (HSP) にまだ問題がある可能性があります。
音量が小さい
PulseAudio を PipeWire で置き換えた後、正しく音が出ても、再起動後に音量が極端に小さくなることがあります。
alsamixer
を開き、F6
を押して適切なサウンドカードを選び ALSA のボリュームが100%であることを確認してください。alsactl
は再起動後もこの設定を維持するはずです。
increasing RLIMIT_MEMLOCK
Dec 13 11:11:11 HOST pipewire-pulse[99999]: Failed to mlock memory 0x7f4f659d8000 32832: This is not a problem but for best performance, consider increasing RLIMIT_MEMLOCK
realtime-privileges をインストールし realtime
グループに自分のユーザーを追加します。
あるいは memlock を 64kB から 128kB に増やすことで、この問題を解決できるようです。systemd/ユーザー で pipewire-pulse
を実行している場合は /etc/security/limits.d/username.conf
に次の行を追加します:
username soft memlock 64 username hard memlock 128
外付けサウンドカードが再接続後に有効にならない
~/.config/pipewire-media-session/default-profile
にデフォルトプロファイル off のエントリがあれば削除します。それでも解決しない場合は ~/.config/pipewire-media-session/
からすべてのファイルを削除し、systemctl --user restart pipewire.service
で PipeWire を再起動します。
音が出ないまたは pactl info が Failure: Connection refused と表示する
これはアプリケーションが PipeWire-Pulse サービスに接続できていないことを意味します。/etc/pipewire/pipewire-pulse.conf
が存在し空でないことを確認し、systemctl --user restart pipewire-pulse.service
で PipeWire-Pulse を再起動してください。
それでも解決しない場合は strace -f -o /tmp/pipe.txt pactl info
を実行し、pastebin に /tmp/pipe.txt
を貼り付けて、IRC (Freenode #pipewire) かメーリングリストで相談してください。
Bluetooth の音声の品質が低い
Feb 17 18:23:01 HOST pipewire[249297]: (bluez_input.18:54:CF:04:00:56.a2dp-sink-60) client too slow! rate:512/48000 pos:370688 status:triggered
Bluetooth で再生が途切れる場合は systemctl --user status pipewire.service
を実行してみてください。このようなエラーが表示される場合は pactl list sinks
で現在選択されているコーデックを確認し、/etc/pipewire/media-session.d/bluez-monitor.conf
の bluez5.codecs
を sbc aac ldac aptx aptx_hd
のいずれかに変更してみてください。変更を適用するには systemctl --user restart pipewire.service
で PipeWire を再起動する必要があります。
/etc/pipewire/media-session.d/bluez-monitor.conf
... properties = { ... bluez5.codecs = [sbc] ...
PipeWire の更新 (git / >=0.3.23) と再起動後デバイスが検出されない
コミット 012a68f8[5] の時点で新しい systemd サービスが追加されデフォルトでは無効になっています。これはシステムの再起動時に pipewire-media-session
が実行されないことを意味します。サービスを有効にするには systemctl --user enable --now pipewire-media-session.service
を実行します。
システムの管理者やパッケージマネージャが更新後に設定ファイルの変更を整理していない場合、pipewire.service
によって pipewire-media-session
の別のプロセスが実行されている可能性があります。確認するには systemctl --user status pipewire.service
を実行してください。
pipewire および pipewire-media-session が実行中と表示される場合は、システム設定かユーザ設定、あるいは両方を更新します。
/etc/pipewire/pipewire.conf または ~/.config/pipewire/pipewire.conf
context.exec = { ... # 次の行はコメントアウトする必要があります #"/usr/bin/pipewire-media-session" = { args = "" } ... }
再生開始時に音声に遅延が発生する
これは非アクティブ時のノードのサスペンドが原因です。遅延が発生する領域に応じて /etc/pipewire/media-session.d/*-monitor.conf
を編集し、プロパティ session.suspend-timeout-seconds
を 0
に変更してサスペンドを無効にするか、他の値を試して動作を確認してみてください。/etc/pipewire/media-session.conf
の suspend-node
の行をコメントアウトすることもできます。変更を適用するには pipewire
と pipewire-pulse
systemd サービスの両方を再起動するか、システムを再起動してください。
複数のストリームの再生開始時に音声が途切れる
この問題は通常 journalctl -b
を実行し、次のような行を探すことで診断できます:
pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940
公式 PipeWire トラブルシューティングガイドによると、この問題を解決するには /etc/pipewire/media-session.d/alsa-monitor.conf
を編集し、api.alsa.headroom = 0
という行のコメントを外し、値を 1024
に変更します。
参照
- Wiki — PipeWire Wiki on Freedesktop GitLab
- Pipewire Update Blog Post — PipeWire の2018年1月時点での進捗が書かれた記事
- PipeWire Late Summer Update 2020 — 2020年9月からの記事