このページの目次
メディア操作マニュアル
オーディオ/ビデオ関連の操作。PipeWire の管理、音量制御、デバイスルーティング、録音、およびトラブルシューティングを含みます。
アーキテクチャ概要
重要概念:
- PipeWire = 統一されたオーディオ/ビデオサービス。PulseAudio と JACK を同時に置き換えます。
- WirePlumber = デバイスのホットプラグ/自動ルーティングポリシー (イヤホンが挿された場合や HDMI 出力への切り替えなど)
- pipewire-pulse = PulseAudio 互換層。PA アプリが PipeWire を透過的に使用できるようにします。
- pactl は pipewire-pulse を操作し、wpctl は PipeWire 原生層を操作します。
ステータス確認
# サービス状態
# PipeWire 原生情報
# WirePlumber デバイス
# PulseAudio 互換層
# ハードウェア
|
音量制御
# wpctl (推奨、PipeWire 原生)
# pactl (PulseAudio 互換層)
# amixer (ALSA 低レベル、ハードウェア直接制御)
オーディオルーティング (出力デバイスの切替)
# 利用可能な sink をリストして切替
# 現在の再生ストリームを指定された sink に移行
# 特定のデバイスに切替 (名前で指定)
SINK=
# サウンドカードのプロファイルを確認 (アナログ/デジタル/HDMI 切替)
WirePlumber / PipeWire の再起動
# 音声スタック全体の再起動 (ソフトリブート、アプリ側は気づかない)
# WirePlumber のみ再起動 (デバイスリストの更新)
# 完全リセット (一旦停止させてから再起動)
トラブルシューティング
# 1. 音声出力があるか確認
# 2. pipewire-pulse がハングしていないか確認 (よくあるケース: Chrome の動画が固まる)
# 修正: systemctl --user restart pipewire-pulse
# 3. プロセスがサウンドカードを独占していないか確認
# 4. ALSA 層が正常か確認
# ALSA 直接再生は正常だが PipeWire では音が出ない場合 → PipeWire 層の問題
# ALSA でもエラーが出る場合 → ドライバ/ハードウェアの問題
# 5. USB/HDMI のホットプラグで反応がない場合
# 6. Bluetooth オーディオ
# 接続後、wireplumber が BT sink を自動作成し、wpctl status で確認可能
# 表示されない場合: systemctl --user restart wireplumber
# 7. 同時複数出力 (必要な場合)
# アンロード: pactl unload-module module-combine-sink
よくある症状のクイックリファレンス
| 症状 | 考えられる原因 | コマンド |
|---|---|---|
| Chrome の動画のプログレスバーが進まない、バッファリング中 | pipewire-pulse のハング | systemctl --user restart pipewire-pulse |
| 完全に音が出ない | デフォルト sink が間違っている | wpctl status で default sink を確認 |
| イヤホンを挿しても自動切替されない | WirePlumber が反応していない | systemctl --user restart wireplumber |
| 一部のアプリからは音が出るが、一部は出ない | 異なる sink を経由している | pactl list sink-inputs でルーティングを確認 |
| Bluetooth ヘッドセットは接続されたが音が出ない | BT プロファイルが落ちている | pactl list cards でプロファイルを確認 |
録音
# スクリーン録画 (PipeWire + wf-recorder、Wayland 原生)
# オーディオ録音 (PipeWire)
# PulseAudio 互換
# スクリーンショット (Wayland/Hyprland)
|
音量/メディアキー
Hyprland のメディアキーバインド例 (hyprland.lua):
-- 音量制御 (wpctl)
hl.dsp.bind({"SUPER"}, "XF86AudioRaiseVolume", function() hl.exec("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+") end)
hl.dsp.bind({"SUPER"}, "XF86AudioLowerVolume", function() hl.exec("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-") end)
hl.dsp.bind({"SUPER"}, "XF86AudioMute", function() hl.exec("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle") end)
hl.dsp.bind({"SUPER"}, "XF86AudioMicMute", function() hl.exec("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle") end)
-- 再生制御 (playerctl、インストールが必要)
hl.dsp.bind({}, "XF86AudioPlay", function() hl.exec("playerctl play-pause") end)
hl.dsp.bind({}, "XF86AudioNext", function() hl.exec("playerctl next") end)
hl.dsp.bind({}, "XF86AudioPrev", function() hl.exec("playerctl previous") end)
playerctl のその他の使用方法:
ビデオ/コーデック情報
|
# ハードウェアエンコード/デコードのサポートを確認
| |
ファームウェア
# AMD GPU ファームウェア (エンコード/デコード/表示)
|
# SOF (Sound Open Firmware、Intel 音声 DSP)
|