- 利用 PulseAudio 將聲音轉送到另一台電腦
- 限制 PulseAudio 的「非授權」聲音轉送
- 解決「PulseAudio 在 Fedora 19 的授權轉送」問題
- 解決「PulseAudio 在 Fedora 的『多認證』切換」問題
最近在試著將不同子網路的兩台電腦建立連線,想知道 PulseAudio 是否仍能夠補償線路的延遲。使用的測試網路架構如下:
- 兩部電腦 PC_A 及 PC_B 分別位於 A、B 兩個子網路。
- 子網路 B 是透過分享器接上子網路 A,且分享器無特別設定。
- PC_A 無法連線 PC_B,而 PC_B 則可以連線 PC_A。
在介紹步驟之前,先說明測試的電腦名稱及 IP 位址等資訊,方便讀者看懂步驟內容。
文章名稱 | 測試電腦的名稱 | 使用帳號 | IP 位址 | SSH 埠號 |
---|---|---|---|---|
PC_A | Celeron-D | SiB | 192.168.10.13 | 5566 |
PC_B | M2400 | SiB | 192.168.20.24 | 6677 |
一、由內部電腦(PC_B)向外部電腦(PC_A)傳送聲音
因為 PC_B 可以直接連線 PC_A,只要手動將『音源端』(位在 PC_B)連上『伺服端』(位在 PC_A)即可,[SiB@M2400 ~]$ pacmd load-module module-tunnel-sink server=192.168.10.13『音源端』的 PulseAudio 系統就會看到『伺服端』所提供的音效服務了。其它操作與平常 PulseAudio 無異,不再敘述。
註:如果『音源端』(即 PC_B)用『pulseaudio --kill』命令重啟 PulseAudio 音效系統,則手動連線的命令要再重下一次。
如果這個使用情況是固定的,每次手動下命令是有些麻煩。可以將這個設定放在『音源端』的 PulseAudio 之設定檔『~/.config/pulse/default.pa』(位於使用者根目錄之下,可複製自 /etc/pulse/default.pa),在其中加入一列命令,
load-module module-tunnel-sink server=192.168.10.13存回,再用『pulseaudio --kill』重啟 PulseAudio 音效系統即可。
註:如果是聲音傳輸方向改變,即『音源端』及『受音端』角色變換,有時要將電腦重新開機才行。
二、由外部電腦(PC_A)向內部電腦(PC_B)傳送聲音
因為 PC_A 不能直接連線 PC_B,所以要從 PC_B 這一端,先用 SSH 建立由 PC_A 到 PC_B 的逆向通道,[SiB@M2400 ~]$ ssh 192.168.10.13 -p 5566 -R 4713:127.0.0.1:4713 -R 16001:127.0.0.1:16001命令中的『-R ...』是 SSH 建立逆向通道的參數,『127.0.0.1』是指 PC_A 電腦的本地網路位址。這樣可以將 PC_A 的 4713, 16001 這兩個 PulseAudio 連線所需的埠號,由 PC_A 轉送到 PC_B。接下來,還要在 PC_A 電腦用手動將『音源端』(現在是 PC_A)連上『伺服端』(現在是 PC_B),
[SiB@Celeron ~]$ pacmd load-module module-tunnel-sink server=127.0.0.1上個命令中的 IP 位址『127.0.0.1』就是前個命令中 PC_A 電腦的本地網路位址。接下來的操作與平常的 PulseAudio 無異,不再敘述。
已測試版本:
- Fedora: (20 → 19), (20 → 19)
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)