«前の日記(2014-09-14) 最新 次の日記(2014-09-19)» 編集

meta's blog - The Power To Serve

筆者について - No Unix, No Life

日本xrdpユーザ会発起人。

とある元大学院生の UNIX 系日記。FreeBSDを通じてOSSに囁かな貢献を。 FreeBSD ports contributor やってます。

For non Japanese native people:
If you are interested in my articles, please leave comments. I will do my best to give you articles in English.


2014-09-18 xrdpでオーディオリダイレクト可能なデスクトップ環境を構築する [長年日記]

xrdp でオーディオリダイレクト可能なデスクトップ環境を構築する (Xbuntu 14.04.1)

Ubuntu 16.10 にあわせた改訂版の記事を書きました。こちらも参照してください。

環境

Linux ディストリビューション
Xubuntu 14.04.1
xrdp
xrdp 0.9.0 beta (devel branch 316445c)

xrdp は開発版ブランチのコミット 316445c を使用しました。

今回は Xubuntu を使用しましたが、Ubuntu でもほぼ同じ手順でいけると思います。バージョンは 14.04.1 ですが、現時点での最新版の 14.10 でも基本的には同じです。

xrdp のインストール

まずは xrdp & x11rdp を X11RDP-o-Matic を使ってインストールします。

$ cd
$ git clone https://github.com/scarygliders/X11RDP-o-Matic.git
$ cd X11RDP-o-Matic
$ sudo ./X11RDP-o-Matic.sh --justdoit --withsound --withjpeg --branch devel

PulseAudio モジュールのビルド&インストール

xrdp のソースの中に含まれる pulse-notes.ubuntu.txt をベースにモジュールをインストールします。

dpkg-dev パッケージがインストールされていない場合は、あらかじめインストールしておきます。

$ sudo apt-get install dpkg-dev

PulseAudio のソースをダウンロードします。

$ cd /tmp
$ apt-get source pulseaudio

PulseAudio に依存するパッケージをインストールします。

$ sudo apt-get build-dep pulseaudio

PulseAudio をビルドします。

$ cd pulseaudio-4.0
$ dpkg-buildpackage -rfakeroot -uc -b

xrdp の PulseAudio モジュールをビルドします。これには xrdp のソースコードが必要ですが、このページの手順にしたがって xrdp をインストールした場合は ~/X11RDP-o-Matic/xrdp 以下にソースコードが存在するので、これを使います。

pulse モジュールのディレクトリに入ります。

$ cd ~/X11RDP-o-Matic/xrdp/sesman/chansrv/pulse

Makefile の PULSE_DIR の部分を、先ほどの pulseaudio-4.0 の場所を指すように書き換えます。差分はこのようになります。

diff --git a/sesman/chansrv/pulse/Makefile b/sesman/chansrv/pulse/Makefile
index da1a89a..59809f9 100644
--- a/sesman/chansrv/pulse/Makefile
+++ b/sesman/chansrv/pulse/Makefile
@@ -2,7 +2,7 @@
 # build xrdp pulseaudio modules
 #

-PULSE_DIR = /home/lk/pulseaudio-1.1
+PULSE_DIR = /tmp/pulseaudio-4.0
 CFLAGS    = -Wall -O2 -I$(PULSE_DIR) -I$(PULSE_DIR)/src -DHAVE_CONFIG_H -fPIC

 all: module-xrdp-sink.so module-xrdp-source.so

Makefile を書き換えたら make します。

$ make

make が終わると module-xrdp-sink.so, module-xrdp-source.so という2つのファイルができているので、これを /usr/lib/pulse-4.0/modules 以下にコピーします。

$ sudo cp module-xrdp-sink.so module-xrdp-source.so /usr/lib/pulse-4.0/modules/

これで終わりです。pulse-notes.ubuntu.txt に書かれている情報は少し古いので、316445c では /etc/pulse/default.pa の編集は不要です。

リモートデスクトップ接続して音を出してみる

ここまで来たら、あとは xrdp にリモートデスクトップで接続するだけです。

xrdp のデーモンを立ち上げておきます。

$ sudo service xrdp start

Windows のリモートデスクトップクライアントで接続し radiko などにアクセスして音を出してみると、リモートデスクトップ経由で音声が転送されて、クライアント側で音声が鳴っているのを確認できると思います。

本日のツッコミ(全2件) [ツッコミを入れる]
Σ Mike Platsidakis (2016-08-03 03:32)

I successfully used this document to get sound to work remotely. Thank you!!! Now, I need to get it to work more smoothly. It is very choppy. The sound and video stutter badly. Do you have any optimizations to get remote audio and video to work more smoothly?<br><br>Thanks<br>Mike@sourcetonuts.com

Σ meta (2016-08-03 18:04)

MP3 compression has been implemented. Try latest devel branch. It reduces network bandwidth<br>so you'll get more stability. Actually, sound redirection is not perfectly stable.<br><br>https://github.com/neutrinolabs/xrdp/commit/9ccbfb698530966ad51574a8e7e56991f6ef94bd