PipeWire

提供: ArchWiki
2021年3月5日 (金) 14:18時点におけるKgx (トーク | 投稿記録)による版 (オーディオの後処理の項目を翻訳して追加)
ナビゲーションに移動 検索に移動

pipewire.org より:

PipeWire は Linux における音声と動画の取り回しを大幅に向上させることを目標とするプロジェクトです。現在 PulseAudioJACK によって処理されているユースケースを同時にサポートして、強力な動画入出力処理を実現することを目指しています。また、コンテナ化されたアプリケーションからオーディオビデオデバイスを簡単に扱えるようなセキュリティモデルを導入し、Flatpak アプリケーションをサポートすることが念頭に置かれています。WaylandFlatpak と一緒に未来の Linux アプリケーション開発の中心的な存在となるよう期待されています。特徴:
  • 遅延を最小限に押さえた音声・動画再生と録画。
  • リアルタイムの音声・動画マルチメディア処理。
  • アプリケーションがマルチメディアコンテンツを共有できるマルチプロセスアーキテクチャ。
  • 最新のアプリケーションで使いやすい統合を提供する GStreamer プラグイン。
  • サンドボックス化されたアプリケーションのサポート。

インストール

公式リポジトリの pipewire パッケージを インストール します。

Pipewire は systemd/ユーザー を使用してサーバーの管理と自動ソケット起動を行います。サービスの起動動作とログの詳細については、それぞれの systemd/ユーザー を参照してください。

必要に応じて、 pipewire-docs をインストールしてドキュメントを確認します。 pipewire-alsapipewire-pulsepipewire-jack などの他のパッケージは、 PulseAudio/JACKの代わりにPipeWireを使用 したくない場合を除き、通常は必要ありません。 multilib をサポートするために、 lib 32-pipewireAURlib 32-pipewire-jackAUR も利用できます。

使用方法

WebRTC スクリーンの共有

ほとんどのブラウザは、 WebRTC を使用しているとき (例えば Google Hongouts で) デスクトップ (または個々のアプリケーション) をキャプチャするために X11 に依存していました。 Wayland では、セキュリティ上の理由から、共有メカニズムは異なる方法で処理されます。 PipeWire は、アクセスコントロールを使用して、 Wayland の下のコンテンツを共有できます。

これには xdg-desktop-portal とそのバックレンドの1つが必要です [1] インストールする利用可能なバックエンドは次のとおりです。

Firefox(84+)はデフォルトでこのメソッドをサポートしていますが、Chromium(73以降)では、WebRTC PipeWireサポート を有効にする必要があります。次のURLの対応する(実験的)フラグ

chrome://flags/#enable-webrtc-pipewire-capturer

xdg-Desktop-Portal-WLR の作業には、 xdg_current_desktop [2] を設定する必要があります。

XDG_CURRENT_DESKTOP=SWAY をエクスポートします

Chromium は現在 PipeWire 0.2 を使用しているので、ArchはPipeWire 0.3 では、LibpipeWire02 も作業するために libpipewire02 をインストールする必要があります。

ヒント: 複数のモニタがある場合に xdg-desktop-portal-wlr を使用して個々のモニタを共有するには、 --output=Monitor フラグをユニットのサービスファイルの ExecStart=} オプション editing で追加します。行全体は ExecStart=@libexecdir@/xdg-desktop-portal-wlr--output=eDP-1 のようになります。
この記事またはセクションの正確性には問題があります。
理由: この要求 が統合されたため、xdg-desktop-portal-gtk の特定のアプリケーション/ウィンドウの共有に関する次の注記が正しくない可能性があります。また、 [3] のディスカッションの追跡チケットも参照してください。 (議論: トーク:PipeWire#)

唯一サポートされている機能はデスクトップ全体を共有することであり、特定のアプリ/ウィンドウを共有することではありません [4] [5]

Video

ソフトウェアはまだ製造済みではありませんが、GStreamer に頼るほとんどのアプリケーション。 PipeWire GStreamer プラグインのおかげで、ビデオストリームはボックス外で機能するはずです。例えばの用途のような用途。そのため、 cheese したがって、すでにそれを使用してビデオ入力を共有できます。

audio

PulseAudio と Jack と同様に、 PipeWire をオーディオサーバーとして使用できます。 PulseAudio 互換のサーバー実装と JACK クライアント用の ABI 互換ライブラリを提供することで、 PulseAudio と Jack の両方を置き換えることを目的としています。詳細については、このブログエントリ

ALSA/レガシーアプリケーション

pipewire-alsa をインストールして、 PipeWire を介して ALSA API を使用してすべてのアプリケーションをルーティングします。

PulseAudio クライアント

pipewire-pulse をインストールします。通常、ユーザーサービス pipewire-pulse.socket がパッケージによって自動的に有効にする必要があるため、それ以上の動作は不要です。システム起動時にPipeWireが正しく機能しない場合は、ユーザーサービス pipewire-pulse.servicepipewire.service が起動して実行されていることを検証します。 Systemd/ユーザーを参照してください。

再起動または再ログインして効果を確認してください。

交換が機能しているかどうかを確認するには、次のコマンドを実行して出力を参照してください。

$ pactl info
...
Server Name: PulseAudio (on PipeWire 0.3.16)
...

JACK clients

pipewire-jack をインストールし、 PW-JACK を使用して、元の libjack* ではなく互換性のあるライブラリを持つジャッククライアントを起動します。

pw-jack application

BufferSize/SampLerate (秒単位でブロック待ち時間に等しい) を設定することで、カスタムバッファサイズを要求することも可能です。

PIPEWIRE_LATENCY="128/48000" pw-jack application

あるいは、 pipewire-jack-dropinAUR} またはアンインストール jack2}/jack2 を自動的にロードさせるために}

JACK アプリケーションが正しいライブラリにリンクしていることを確認するには、LDD を使用します。

$ ldd /usr/bin/qjackctl | grep -i libjack
libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000)

Bluetooth デバイス

PipeWire は、Bluetooth オーディオデバイスをハンドルします。 pipewire-pulse パッケージがインストールされている場合。具体的には、メディアセッションデーモンは /etc/pipewire/media-session.d/with-pulseaudio をチェックし、ファイルが存在する場合は自動的にその BLUEZ5 モジュールを有効にします。

ネイティブジャックの上で PipeWire を実行します

PipeWire は、必要に応じてネイティブジャックデーモンの上にあるジャッククライアントとして実行することもできます。詳細については、and pipewire を参照してください。

オーディオの後処理

パルス効果

PulseEffects は GTK ユーティリティで、個々のアプリケーション出力ストリームとマイク入力ストリームに多数のオーディオエフェクトとフィルタを提供します。注目すべきエフェクトには、入出力イコライザー、出力ラウドネスイコライゼーションとベースエンハンスメント、入力ディエッサーとノイズリダクションプラグインなどがあります。エフェクトの全リストについては、 GitHubページ を参照してください。

PipeWire で PulseEffects を使用するには、pulseeffects または pulseeffects-gitAUR をインストールします。

ノート: これにより、 pipewire-pulsePulseAudio を PipeWire に置き換えて インストールされます。詳細は、 FS#69437 を参照してください。レガシーバージョンについては、 PulseAudio#PulseEffects を参照してください。

プリセット設定のコレクションについては、Community Presets を参照してください。

参照