「PipeWire」の版間の差分
(→インストール: 情報を更新) |
(→使用方法: 情報を更新) |
||
19行目: | 19行目: | ||
== 使用方法 == |
== 使用方法 == |
||
+ | === WebRTC スクリーンの共有=== |
||
− | === ビデオ === |
||
+ | ほとんどのブラウザは、 WebRTC を使用しているとき (例えば Google Hongouts で) デスクトップ (または個々のアプリケーション) をキャプチャするために X11 に依存していました。 Wayland では、セキュリティ上の理由から、共有メカニズムは異なる方法で処理されます。 PipeWire は、アクセスコントロールを使用して、 Wayland の下のコンテンツを共有できます。 |
||
− | ソフトウェアはまだ実用段階とはいえませんが、問題なく使用することができます。PipeWire の GStreamer プラグインによって、[[GStreamer]] を使用して動画ストリームなどを処理しているほとんどのアプリケーションは特に設定をしなくても動作するはずです。例えば {{pkg|cheese}} などのアプリケーションで PipeWire を使って動画の入力を共有することができます。 |
||
+ | これには {{pkg|xdg-desktop-portal}} とそのバックレンドの1つが必要です [http://jgrulich.cz/2018/07/04/04/how-to-enable-and-use-screen-sharing-on-wayland] インストールする利用可能なバックエンドは次のとおりです。 |
||
− | GStreamer の autoplugging プロセスを使うには先に PipeWire プロセスを実行しておく必要があります。使用する前に {{ic|pipewire}} を起動してください。 |
||
+ | * {{pkg|xdg-desktop-portal-gtk}}} gnomeの場合。 |
||
− | === オーディオ (JACK) === |
||
+ | * {{pkg|xdg-Desktop-Portal-KDE}} KDEの場合。 |
||
+ | * {{pkg|xdg-desktop-portal-wlr}} wlroots ベースのコンポジター(例えば [[Sway]]、 [https://github.com/djpohly/dwl dwl]) |
||
+ | Firefox(84+)はデフォルトでこのメソッドをサポートしていますが、Chromium(73以降)では、[https://bugs.chromium.org/p/chromium/issues/detail?id=682122 WebRTC PipeWireサポート] を有効にする必要があります。次のURLの対応する(実験的)フラグ |
||
− | PipeWire 上での Jack プロトコルのサポートが実装されており、インターフェイスを使用するアプリケーションがテスト環境で動作します。[[プロオーディオ]]に必要な低遅延環境を PipeWire によって組み立てることが可能です。 |
||
+ | chrome://flags/#enable-webrtc-pipewire-capturer |
||
+ | {{ic|xdg-Desktop-Portal-WLR}} の作業には、 {{ic|xdg_current_desktop}} [https://github.com/emersion/xdg-desktop-portal-wlr#running] を設定する必要があります。 |
||
− | 有効化して使用する方法は [https://github.com/PipeWire/pipewire/wiki/JACK こちら] を参照してください。 |
||
+ | XDG_CURRENT_DESKTOP=SWAY をエクスポートします |
||
+ | Chromium は現在 PipeWire 0.2 を使用しているので、ArchはPipeWire 0.3 では、{{pkg|LibpipeWire02}} も作業するために {{pkg|libpipewire02}} をインストールする必要があります。 |
||
− | === ALSA/レガシーアプリケーション === |
||
+ | {{Tip|複数のモニタがある場合に {{ic|xdg-desktop-portal-wlr}} を使用して個々のモニタを共有するには、 {{ic|1=--output=''Monitor''}} フラグをユニットのサービスファイルの {{ic|1=ExecStart=} オプション [[Systemd#Editing_provided_units|editing]] で追加します。行全体は {{ic|1=ExecStart=@libexecdir@/xdg-desktop-portal-wlr--output=eDP-1}} のようになります。}}}} |
||
− | ALSA エミュレーションはまだ開発中ですが、動作するコードが出始めています。 |
||
+ | {{Accuracy|[https://github.com/flatpak/xdg-desktop-portal-gtk/pull/225 この要求] が統合されたため、{{Pkg|xdg-desktop-portal-gtk}} の特定のアプリケーション/ウィンドウの共有に関する次の注記が正しくない可能性があります。また、 [https://github.com/flatpak/xdg-desktop-portal-gtk/issues/204] のディスカッションの追跡チケットも参照してください。}} |
||
− | === Bluetooth === |
||
+ | 唯一サポートされている機能はデスクトップ全体を共有することであり、特定のアプリ/ウィンドウを共有することではありません [https://github.com/emersion/xdg-desktop-portal-wlr/wiki/FAQ#will-this-let-me-share-individual-windows] [https://github.com/KDE/xdg-desktop-portal-kde/blob/master/TODO] |
||
− | PipeWire は Bluez Bluetooth フレームワークに直接組み込むことができる bluetooth モジュールを提供しています。Paring and management hence works the same since it is handled by higher level interfaces. |
||
+ | |||
+ | === Video === |
||
+ | |||
+ | ソフトウェアはまだ製造済みではありませんが、[https://wiki.archlinux.jp/index.php/GStreamer GStreamer] に頼るほとんどのアプリケーション。 PipeWire GStreamer プラグインのおかげで、ビデオストリームはボックス外で機能するはずです。例えばの用途のような用途。そのため、 {{pkg|cheese}} したがって、すでにそれを使用してビデオ入力を共有できます。 |
||
+ | |||
+ | === audio === |
||
+ | |||
+ | PulseAudio と Jack と同様に、 PipeWire をオーディオサーバーとして使用できます。 PulseAudio 互換のサーバー実装と JACK クライアント用の ABI 互換ライブラリを提供することで、 PulseAudio と Jack の両方を置き換えることを目的としています。詳細については、[https://blogs.gnome.org/uraeus/2020/09/04/pipewire-late-summer-update-2020/ このブログエントリ] |
||
+ | |||
+ | ==== ALSA/レガシーアプリケーション ==== |
||
+ | |||
+ | {{pkg|pipewire-alsa}} をインストールして、 PipeWire を介して ALSA API を使用してすべてのアプリケーションをルーティングします。 |
||
+ | |||
+ | ==== PulseAudio クライアント ==== |
||
+ | |||
+ | {{pkg|pipewire-pulse}} をインストールします。通常、ユーザーサービス {{ic|pipewire-pulse.socket}} がパッケージによって自動的に有効にする必要があるため、それ以上の動作は不要です。システム起動時にPipeWireが正しく機能しない場合は、ユーザーサービス {{ic|pipewire-pulse.service}} と {{ic|pipewire.service}} が起動して実行されていることを検証します。 [[Systemd/ユーザー]]を参照してください。 |
||
+ | |||
+ | 再起動または再ログインして効果を確認してください。 |
||
+ | |||
+ | 交換が機能しているかどうかを確認するには、次のコマンドを実行して出力を参照してください。 |
||
+ | |||
+ | {{hc|1=$ pactl info|2= |
||
+ | ... |
||
+ | Server Name: PulseAudio (on PipeWire 0.3.16) |
||
+ | ... |
||
+ | }} |
||
+ | |||
+ | ==== JACK clients ==== |
||
+ | |||
+ | {{pkg|pipewire-jack}} をインストールし、 {{ic|PW-JACK}} を使用して、元の {{ic|libjack*}} ではなく互換性のあるライブラリを持つジャッククライアントを起動します。 |
||
+ | |||
+ | pw-jack ''application'' |
||
+ | |||
+ | BufferSize/SampLerate (秒単位でブロック待ち時間に等しい) を設定することで、カスタムバッファサイズを要求することも可能です。 |
||
+ | |||
+ | PIPEWIRE_LATENCY="128/48000" pw-jack ''application'' |
||
+ | |||
+ | あるいは、 {{aur|pipewire-jack-dropin}}} またはアンインストール {{pkg|jack2}}}/{{pkg|jack2}} を自動的にロードさせるために} |
||
+ | |||
+ | JACK アプリケーションが正しいライブラリにリンクしていることを確認するには、{{ic|LDD}} を使用します。 |
||
+ | |||
+ | {{hc|1=$ ldd /usr/bin/qjackctl {{!}} grep -i libjack|2= |
||
+ | libjack.so.0 => /usr/lib/pipewire-0.3/jack/libjack.so.0 (0x00007f7e5080a000) |
||
+ | }} |
||
+ | |||
+ | ==== Bluetooth デバイス ==== |
||
+ | |||
+ | PipeWire は、Bluetooth オーディオデバイスをハンドルします。 {{pkg|pipewire-pulse}} パッケージがインストールされている場合。具体的には、メディアセッションデーモンは {{ic|/etc/pipewire/media-session.d/with-pulseaudio}} をチェックし、ファイルが存在する場合は自動的にその {{ic|BLUEZ5}} モジュールを有効にします。 |
||
+ | |||
+ | ==== ネイティブジャックの上で PipeWire を実行します ==== |
||
+ | |||
+ | PipeWire は、必要に応じてネイティブジャックデーモンの上にあるジャッククライアントとして実行することもできます。詳細については、[https://gitlab.freedesktop.org/pipewire/pipewire//wikis/jack and pipewire] を参照してください。 |
||
== 参照 == |
== 参照 == |
2021年3月5日 (金) 14:11時点における版
pipewire.org より:
- PipeWire は Linux における音声と動画の取り回しを大幅に向上させることを目標とするプロジェクトです。現在 PulseAudio と JACK によって処理されているユースケースを同時にサポートして、強力な動画入出力処理を実現することを目指しています。また、コンテナ化されたアプリケーションからオーディオビデオデバイスを簡単に扱えるようなセキュリティモデルを導入し、Flatpak アプリケーションをサポートすることが念頭に置かれています。Wayland や Flatpak と一緒に未来の Linux アプリケーション開発の中心的な存在となるよう期待されています。特徴:
- 遅延を最小限に押さえた音声・動画再生と録画。
- リアルタイムの音声・動画マルチメディア処理。
- アプリケーションがマルチメディアコンテンツを共有できるマルチプロセスアーキテクチャ。
- 最新のアプリケーションで使いやすい統合を提供する GStreamer プラグイン。
- サンドボックス化されたアプリケーションのサポート。
目次
インストール
公式リポジトリの pipewire パッケージを インストール します。
Pipewire は systemd/ユーザー を使用してサーバーの管理と自動ソケット起動を行います。サービスの起動動作とログの詳細については、それぞれの systemd/ユーザー を参照してください。
必要に応じて、 pipewire-docs をインストールしてドキュメントを確認します。 pipewire-alsa、 pipewire-pulse、 pipewire-jack などの他のパッケージは、 PulseAudio/JACKの代わりにPipeWireを使用 したくない場合を除き、通常は必要ありません。 multilib をサポートするために、 lib 32-pipewireAUR、 lib 32-pipewire-jackAUR も利用できます。
使用方法
WebRTC スクリーンの共有
ほとんどのブラウザは、 WebRTC を使用しているとき (例えば Google Hongouts で) デスクトップ (または個々のアプリケーション) をキャプチャするために X11 に依存していました。 Wayland では、セキュリティ上の理由から、共有メカニズムは異なる方法で処理されます。 PipeWire は、アクセスコントロールを使用して、 Wayland の下のコンテンツを共有できます。
これには xdg-desktop-portal とそのバックレンドの1つが必要です [1] インストールする利用可能なバックエンドは次のとおりです。
- xdg-desktop-portal-gtk} gnomeの場合。
- xdg-Desktop-Portal-KDE KDEの場合。
- xdg-desktop-portal-wlr wlroots ベースのコンポジター(例えば Sway、 dwl)
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 をインストールする必要があります。
唯一サポートされている機能はデスクトップ全体を共有することであり、特定のアプリ/ウィンドウを共有することではありません [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.service
と pipewire.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 を参照してください。
参照
- Wiki — PipeWire Wiki on GitHub
- Pipewire Update Blog Post — PipeWire の2018年1月時点での進捗が書かれた記事