2012年8月27日 星期一

利用 PulseAudio 將聲音轉送到另一台電腦

PulseAudio 為目前許多 Linux 系統採用為預設音效系統,「使用者」平常的使用、操作多未直接接觸到它。所以,大部分的使用者都不清楚它的能耐。
    其實它能做的事情很多,例如:將聲音從一部電腦送到另一部電腦,必要時,將其混音後再播出。或是將兩部電腦的音效卡結合,使成為更多聲道的音效系統(兩個單聲道組成雙聲道,兩個雙聲道組成環場音效)。
    接下來將說明這些步驟:如何在兩台 Fedora 系統的電腦間,建立連線、傳送聲音。

1. 切換成 root 身份

以下操作中有關:安裝套件、設定「防火牆」皆需先切換成 root 身份,請參考 "在 Linux 中,切換為 root 身分以操作、設定系統" 一文。其它操作皆以「使用者」身份設定,即不同「使用者」可有不同之設定。

:PulseAudio 的官方文件有用 root 身份,將 PulseAudio 設定為整個系統的操作。筆者認為這種設定在將來的使用上可能較不方便,故僅介紹個別「使用者」分別設定的過程。

2. 伺服器端(「受音端」)的安裝、設定

PulseAudio 的伺服器端或「受音端」,就是指有接喇叭、要用於播出聲音的那部電腦。PulseAudio 為這個介面定了一個名稱,叫「Sink」。

安裝套件

先安裝幾個未預設安裝的套件,包含:padevchooser(受音端選擇)、paprefs(偏好設定)、pavucontrol(音源音量個別控制)、pavumeter(音響強度指示)、pulseaudio-module-zeroconf(接收連線)這幾個套件,
[root@Celeron-D ~]# yum install padevchooser paprefs pavucontrol pavumeter pulseaudio-module-zeroconf
Fedora 17 裏套件有些改變,padevchooser 這個套件被 paman 所取代,
[root@Celeron-D ~]# yum install paman paprefs pavucontrol pavumeter pulseaudio-module-zeroconf
註:這種改變套件中程式的情形在「開放原始碼 (Open Source)」軟體中很常見,一般而言,取而代之的套件,是技術比較新、功能較強大者。

2015-12-20 增加內容:
  經過幾年的使用,上述的說明中需安裝的套件有些並不常用。整理出最少安裝套件的命令為,
[root@Celeron-D ~]# dnf install paprefs pavucontrol pulseaudio-module-zeroconf
上例中,已經用 dnf 取代 yum 為安裝命令,因 Fedora 22 版以後已建議使用 dnf。【以上

設定「防火牆」

接著是設定,要在「防火牆」上開幾個「通訊埠」:4713/TCP、16001/TCP、5353/UDP(接收提供服務詢問)。為節省篇幅,設定方法請參考 " Fedora 之「圖形使用介面」的「防火牆」設定程式 " 一文。

設定 PulseAudio 偏好

在 Fedora 17 裏是從「程式選單」的「系統」→「偏好設定」→「PulseAudio Perferences」啟動設定視窗。點選「Network Server」,將前三個 □ 打勾,使其可在不需認證的情形下,接收另一台電腦的 PulseAudio 連線。如圖:
按「Close」鈕即完成設定。

註:在 Fedora 14 裏是從「程式選單」的「應用程式」→「其它」→「PulseAudio Perferences」

3. 客戶端(「音源端」)的安裝、設定

PulseAudio 的客戶端或「音源端」,就是指送出聲音、要將聲音送出到別台電腦的那台電腦。PulseAudio 為這個介面定了一個名稱,叫「Source」。

安裝套件

先安裝兩個未預設安裝的套件,包含:paprefs、pulseaudio-module-zeroconf,
[root@Celeron-D ~]# yum install paprefs pulseaudio-module-zeroconf

設定「防火牆」

接著是設定,要在「防火牆」上開一個「通訊埠」:5353/UDP(接收「受音端」提供服務的廣播) 。

設定 PulseAudio 偏好

在 Fedora 17 裏是從「程式選單」的「系統」→「偏好設定」→「PulseAudio Perferences」啟動設定視窗。點選「Network Access」,將第一個 □ 打勾,使其可以將網路上開放分享的 PulseAudio 提供的服務納入本機裝置使用。如圖:
按「Close」鈕即完成設定。
註:在 Fedora 14 裏是從「程式選單」的「應用程式」→「其它」→「PulseAudio Perferences」

4. 連線使用

在 PulseAudio 未設定之前,「音源端」的電腦並無聲音輸出的裝置,如圖所示,Dummy Output 即為「假音效輸出」。
在 PulseAudio 設定完成後,經一小段時間(接受「受音端」提供服務的廣播,建立連線),可以見到已經出現聲音輸出的裝置,而且是連到「受音端」的音效裝置。

注意:如果「受音端」是別人的電腦,最好先預告一下,免得嚇到人

後記:

  • 2015-12-20 : 在「伺服器端」(「受音端」),加入最少套件安裝的命令。

已測試連線版本:

  • Fedora: (14 → 14), (17 → 14)

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)