はじめに
SSHでログインできるLinuxマシンのデスクトップ音声を聴く方法を説明する。
X11VNCを使うとデスクトップを操作することが可能だ。しかしながら、VNCには音声を転送する機能が付いていない。このようなとき、音声を圧縮してSSH経由で送ることで、やや遅延があるが、音声を一緒に聴くことができるようになる。
環境
接続先は、Pulse Audioが動いており、オーディオデバイスが接続されていることが必要である。
以下の手順は、遠隔ホストとしてScientific Linux 7を使用した。
手順
- まず、出力デバイスのモニターを確認する。最後に
.monitor
と名前が着いているものが出力デバイスのモニター (出力中の音を入力できる) である。
$ LANG=C pactl list sources | grep Name
- 予め、無音の音声を再生しておく。
$ ffplay -loglevel error -vn -nodisp -f s16le /dev/zero &
- SSHで接続した先でffmpegによりモニターをmp3に変換し、ローカルへパイプして、ffplayで再生する。
$ input=alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo.monitor # 上記で取得したモニターの名前
$ ssh user@example.com ffmpeg -fflags nobuffer -flags low_delay -loglevel error -f pulse -ac 2 -i ${input} -c:a aac -f flv - | ffplay -fflags nobuffer -flags low_delay -nodisp -loglevel error -f flv -
ここで重要なのは、ffmpegとffplayそれぞれに
-fflags nobuffer -flags low_delay
を付けることだ。これらのオプションがなくても機能するが、段々と音声のバッファリングが増え、徐々に遅れが目立ち始める。
0 件のコメント:
コメントを投稿