every new beginning comes from some other beginning's end だなぁ

iPadでDVD&Blu-rayの映像を見たいのでUbuntuへxrdp使ってリモートデスクトップして尚且つ音声もリダイレクトしてみる

せっかく持ってる円盤(ブルーレイとかDVDのことね)をお風呂でも見たいわー、という妻からのリクエストがあったので色々方法を考えた結果、円盤再生サーバーを作ってお風呂からそれをiPhoneなりAndroidスマホなりでリモートデスクトップ使って操作すれば良いんじゃね?

という結論に至ってその準備をしてみたのでメモ書きです。

リモートデスクトップする以外に方法は無いんか?

過去にスマホやPCから直接ブルーレイプレーヤーに無線接続して視聴できるシステムをパイオニアが売っていたらしいんだけど、なんか評判がイマイチだったみたいでもう売っていないんだとか。

DVDプレーヤーならアイオーデータから同じような仕組みの製品がまだ売ってるんだけどね(ブルーレイは非対応)。

あとは、防水対応のディスプレイ一体型ブルーレイプレーヤーを買うとか。んだけど良さそうなものは¥30,000近くするし、てかそもそもあんまりモノ増やしたくないし。

ってことでリモートデスクトップを試してみることにしたのであーる。

リモートデスクトップのサーバーとクライアントを準備

Windows 10 Proならばリモートデスクトップのサーバー機能が標準搭載なんだけど、生憎手元のPCはWindows 10 Homeなのだ。このWindowsマシンの他にはmacOSがあるのみ。

macOSもリモートデスクトップのサーバー機能が標準で付いているんだけど、プロトコルにVNC(というものがある)を使っているので、これだと音声を飛ばすことに対応していない。WindowsはRDPというプロトコルでこれなら音声の転送も可能。

と言う事でLinuxディストリビューションの一つ、UbuntuでRDPを無料で使えるxrdpという機能をインストールして試してみることにした。いきなりサーバー機を用意する前に、手元のパソコンにUbuntuを仮想インストールしてこれにリモートデスクトップ出来るか試してみた。

環境としては手元の

Windows 10 Home+VM Wareプレーヤー+Ubuntu 18.04

macOS 10.14 Mojave+Virtual Box+Ubuntu 18.04

という感じ。

リモートデスクトップのためにxrdpをインストール

それぞれの仮想マシンプレーヤーにUbuntuをインストール(手順は省略!)して、まずはxrdpのインストールから。下記のコマンドを叩く。

sudo apt install -y xserver-xorg-core xorgxrdp xrdp

これを実行すると

lock-frontend が取得できない

とかいうエラー。下記を実行。

sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend

再び

sudo apt install -y xserver-xorg-core xorgxrdp xrdp

実行後再起動する。

shutdown -r now

リモートデスクトップクライアントにはiPadを使用、クライアントアプリとしてMicrosoft作の「RD Client」をインストールしておきました。仮想マシン内のUbuntuのIPアドレスを入力してアクセスすると…

ウブンツのデスクトップ
スマホからRD Client経由でアクセスしてみた

おお、ユーザー名とパスワードを聞かれて入力を完了すると一瞬黒い画面が表示された後にUbuntuのデスクトップを表示する事ができたー!

しかしxrdpをインストールしただけでは音声のリダイレクトは出来ないのでした…

音声をリダイレクトする準備

続いて「Pulseaudio」っつーソフトウェアをインストールします。ログイン中のユーザーディレクトリ内にて下記を実行。

wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-14.0.tar.gz

さらに下記を実行。

mkdir dev
mkdir dev/pulse
mv pulseaudio-14.0.tar.gz dev/pulse
cd dev/pulse
tar xf pulseaudio-14.0.tar.gz
cd pulseaudio-14.0

次にインストール作業。

sudo ./bootstrap.sh

そしたら

  • pkg-configがない
  • autopointがない
  • m4がない
  • libtoolがない
  • libcap-devがない
  • libsndfile-devがない

とかいうエラー。下記を実行。

sudo apt install -y pkg-config autopoint m4 libtool libcap-dev libsndfile-dev

再び

sudo ./bootstrap.sh

Warningでdbus, udev, speexを入れとくの推奨と表示されたので

sudo apt install -y dbus udev speex

を実行。次に

sudo ./configure
sudo make install

これでPulseaudioのインストール完了。次にxrdp sound moduleのインストール作業をする。まずはユーザーディレクトリ/dev/pulseに戻る。

cd ../

次に以下

sudo apt install -y git
sudo git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
cd pulseaudio-module-xrdp
sudo ./bootstrap

をすると

autoconfがない

というエラー。下記を実行。

sudo apt install -y autoconf

再び下記。

sudo ./bootstrap

続いて

sudo ./configure PULSE_DIR=“/home/yohei/dev/pulse/pulseaudio-14.0”
sudo make
cd ./src/.libs
sudo install -t "/var/lib/xrdp-pulseaudio-installer" -D -m 644 *.so

んで再起動。

shutdown -r now

ここまでするとmacOSのVirtual Boxでは音を出すことができた。が、WindowsのVM Wareでは音が出なかった。以下、追加で実施。

Ubuntuの標準リポジトリからソースコードをダウンロードしてインストール

まずソースコードリポジトリを有効にする。ウブンツにてアプリケーション一覧を表示し、ソフトウェアアップデートを選択。

ソースコードにチェックを入れて日本のサーバーを選ぶ。

これで準備OK!下記コマンドを叩きましょう。

sudo apt install xrdp-pulseaudio-installer -y
sudo xrdp-build-pulse-modules
cd /tmp
sudo apt source pulseaudio
cd /tmp/pulseaudio-11.1
sudo ./configure
cd /usr/src/xrdp-pulseaudio-installer
sudo make PULSE_DIR="/tmp/pulseaudio-11.1"
sudo install -t "/var/lib/xrdp-pulseaudio-installer" -D -m 644 *.so

と、ここまでやるとVM Wareでも音声をリダイレクトさせることが出来た!

サウンドデバイスとしてxrdp sinkってのが出来てます!

ここまでやって音声リダイレクト出来なくても、Pulseaudioのインストールからの手順を何度か繰り返すと謎にxrdp sinkが出来上がっていたりします(よく分からん😫)

DVDをリモートデスクトップで再生してみる

実はブルーレイを再生できるドライブを持ったPCって持ってないんすようち。WindowsマシンのノートPCにはDVDドライブが装備されているので、これ使ってDVD映像をリモートデスクトップで鑑賞してみようと思います。

まずはDVD再生ソフトとしてVLCをインストール。

sudo apt install vlc
sudo apt install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg

インストール完了。アプリケーション一覧にVLCが追加されました。

ちなみに、ローカルネットワークでサーバー&クライアントはそれぞれ5GHzの無線LANで接続されています。

ショーシャンクの空にのキャプチャ画面
ショーシャンクの空に

iPadのRD Clientで見てみた。

映像カクカク

音声ブツブツ

ダメだこりゃ😅

しかしポッドキャストやYoutubeの音声(あまり動きの無い動画)はくっきりと再生されたし、ホストOSのWindowsからリモートデスクトップでアクセスして見てみるとDVDもまぁまぁスムーズに再生できました。無線LANルーターがボトルネックになってるのかしら?🤔もうちょっと調べてみようと思います。

上手く再生できない原因は何だろう?

無線ネットワークの問題なんかなー?ってことで少し調べてみることに。はてどうやって調べるか…

無線LANルーターの速度は?

とりあえず無線LANルーター経由でローカルネットワーク外とはどれぐらいの速度で通信出来ているのか調べてみることに。通信速度計測アプリでお馴染みの「Speedtest」がコマンドラインからも利用出来るとのことでインストールしてみた。

sudo apt install python-pip
pip install speedtest-cli

これでインストール完了。speedtest-cliコマンドを使うのに下記を実行。

source ~/.bashrc

もしくはシステム再起動でもOK。

で、

speedtest-cli

したところ

アップロードで71.83MB/s出ている事が分かります。これ結構速いっすね。

で次にローカルネットワーク内での速度を測ります。Ubuntu内に3GB程度のファイルを置いてこれをFTPで送信する速度を取得します。まずはUbuntuにVsftpdをインストール。

sudo apt install vsftpd

送信速度はdstatコマンドで計測できます。まずはこれをインストール。

sudo apt install dstat

普通にdstatだけだと色々項目が表示されるので

dstat -n

でネットワークの送受信速度だけを表示します。FTPで送信した結果はこんな感じ。

AndroidスマホにFTP転送

ひじょーに分かりづらいが左側にずらずらと表示されているものがそれ。

左列が受信速度。右列が送信速度。さらに赤文字が単位B/s、白文字がKB/s、緑文字がMB/sだ。計測結果は下から上へと古いものになる(一番下が新しい。これは一秒おきに計測したもの)。

おおよそ安定して16MB/s出ているみたい。何でローカル通信の方が遅くなるんだ、ってのはさておき、リモートアクセスでYoutubeを見た時の速度を見てみましょう。

この動画は映像がカクカク音声がブツブツのもので、当初は「ルーターがボトルネックになってんのかな?」と思ってたんだけど、dstatの結果を見ると送信が大体3MB/sとなっていてローカル通信で16MB/sは出せるはずだからルーターが原因じゃないのか…

結局原因は?

とか思ったら、画像左下。Ubuntuのシステムモニター(わざわざdstatで確認しなくてもよかったのか!)を見てみるとCPU使用率が100%!メモリも余裕なし…

ってことで原因は単純にマシンパワーっぽいってことが分かりました😓

ちなみにWebブラウザをスクロールして動画部分を隠すとCPU使用率はガクッと下がって音声がスムーズに再生されました。やっぱ動画ってキツいんやな…てか仮想マシン上で動かしているUbuntuなので余計にリソース消費が激しいのかもしれません。

やはりここはUbuntu専用機を準備してさらに試してみようと思います😤

続く!

追記:Ubuntu専用パソコンを用意した

昔使ってたWindowsデスクトップパソコンを引っ張り出してきてこれにUbuntuをクリーンインストールしてみた(レッツノートあるからデスクトップPCはいらない😗)

このPCのスペックはこう。

  • CPU:AMD A8-3870K
  • メモリ:8GB
  • ストレージ:1TB HDD

当時(6〜7年まえ?)としては中々良いスペックのものでした。これにVLCをインストールしてDVDを入れ、リモートで見てみた。

仮想マシンの時よりはマシになったけど若干動画がカクつくのと音声がズレる。システムモニターでリソースを監視してみると、うーん、CPUがキッツイなぁ💦

そう言えばグラボも持ってたんだった。それ使ったらどうなるか近いうちに試してみます。

続く!

追記:グラボを追加してみた

こちらも結構前に買ったRadeon R7 260X搭載、Gigabyteのグラボです。こいつを棚奥から引っ張り出してきてUbuntuマシンに装着し、リモートデスクトップでの動画再生がどうなるか実験です!

マザボのPCI Express x16スロットに装着し6ピン電源コネクタを挿入。これを使うにはさらにUbuntu 18.04用のドライバをインストールしなければなりません。

ドライバのインストール

AMD公式に置いてあるのでまずはそれをダウンロード。

https://www.amd.com/ja/support/previous-drivers/graphics/amd-radeon-r7-series/amd-radeon-r7-200-series/amd-radeon-r7-260x

ダウンロード後は解凍。

tar -Jxvf ダウンロードしたファイル.tar.xz

解凍後、展開先ディレクトリに移動。下記コマンドでインストール開始。

./amdgpu-install

インストール後再起動してみると

「あれ、リモートデスクトップ出来なくなってる!」

なんでやねん!

リモートデスクトップ出来なくなった…

どうやらドライバのインストールでxorgxrdpとxserve-xorg-coreが勝手に削除されたようでした。というわけでSSHでアクセスしてこれらを再インストール。

無事にリモートアクセスが復活しました。

グラボを追加した結果

ドライバをインストールしたところでこれが本当に有効なのか?ってことで、ベンチマークソフトをインストールして確認しようと思った。

が、イマイチ使い方が分からなかったからやめたw

とりあえずYoutubeを再生してCPU利用率をモニタリングしてみよう。

お、動画再生中もCPU使用率がそんなに上がってないぞ(同じ動画でグラボ導入前は100%だった)。ということはグラボのドライバがちゃんと動いているってことかな!いや〜よかったよかった(^_^)

と、思ったら、前よりはマシだけどやっぱり映像カクカク音声ブツブツという感じ。ネットワークはUPが5MB/s。帯域的にはまだまだ余裕があるはずなんだけど…

もしかするとRDPの仕様で1クライアントあたりの利用可能帯域幅に上限を設けているのかもしれんなぁ🤔(未確認)

いちおうDVDの再生も確認しておこう。ディスクを入れてVLC起動。ディスクの読み込みっと…

なぜかVLCが落ちる

はぁ、もうだめだ😩色々と訳が分からなすぎる😩という訳で

iPadでDVD・Blu-rayを見るのは諦めました!w

内容確認するだけならカクついてても問題無いんだけどさぁ…

本体はせっかくなのでSambaをインストールしてファイルサーバーとして活用することにしました😬

参考サイト

xrdp関係

https://qiita.com/MHANAYAMA/items/ea8e6e4295ce5ead17aa

xRDP – How to redirect Sound on Ubuntu 18.04

VLC関係

https://qiita.com/ekzemplaro/items/75e6f3a9ca327b6c4115

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です