オーディオ・キャスト(またはオーディオ・ストリーミング)により、あるデバイスで再生されたオーディオを別のデバイスで再生することができます。ライブ・オーディオ、ファイル、あるいはマイク入力のいずれでも可能だ。多くの技術大手は、独自のオーディオキャスティングのバージョンを持っています。AppleにはAirPlayがあり、GoogleにはChromecastがあります。Linuxの場合、オープンソースであるため、様々なオーディオキャスティングの方法に恵まれています。

技術的な観点

メーカーによって若干プロトコルが異なりますが、ほぼすべてのオーディオキャストはピアツーピア(P2P)ネットワークを使っています。P2P は torrenting での使用でかなり高い評価を得ていますが、ネットワーク方式はそれほど悪名高いものではあり ません。

基本的にP2Pは、あなたのデバイスとあなたが接続しているデバイスの両方がデータの許可を共有することを意味し、両方が望むようにデータを受信および送信することができます。オーディオキャストの場合、送信側はオーディオデータをバイナリに変換し、受信側はそれをオーディオデータに戻すことになります。圧縮、ビットレート、バッファリングもこのプロセスで役割を果たしますが、今回ご紹介するものとは別のウサギの穴に潜るようなものです。

オーディオキャスティングに必要なもの

これらは、オーディオキャストに使用される主なアプリケーションです。他にもインストールが必要な方法がありますが、これらは Pulseaudio とやりとりするために使用する主なものです。

Pulseaudioの環境設定

Paprefs (pulseaudio preferences) は、すべての pulseaudio モジュールにアクセスするための素晴らしい方法です。これらを実装するためには、通常、ドキュメントを渉猟し、ターミナルを叩く必要がありますが、便利なGUIにより、はるかに容易になります。以下のコマンドでPaprefsをインストールします。

sudo apt install paprefs

Paprefsの問題の一つは、Pulseaudioのデフォルトのフォルダ名を使っていることです。Pulseaudioを起動したり、モジュールをインストールしようとすると、そのデフォルトのフォルダに移動してしまいます。Pulseaudioがアップデートされた場合、このフォルダは存在しません。

これを解決するには、以下のようにpaprefsに正しいフォルダを指し示すシンボリックリンクを作成します。

実際のフォルダーは “pulse-15.99.1+dfsg1” です。シンボリックリンクフォルダは “pulse-13.99 “です。Paprefsはそのように登録しますが、それ自体で新しいフォルダになるのではなく、実際のフォルダを指します。シンボリックリンクを作成するには、ターミナルコマンドで次のようにします。

sudo ln -s '/usr/lib/pulse-15.99.1+dfsg1' '/usr/lib/pulse-15.99'.

Pulseaudio ボリュームコントロール

このアプリケーションを使うと、pulseaudio のシンクやモニターと対話することができます。このアプリケーションは、オーディオが希望する場所で再生されているかどうかを確認するのに役立つだけでなく、複数のシンクやコンピュータで作業する場合、視覚的なインタフェースは常に便利です。

次のターミナルコマンドは Pavucontrol をインストールします。

sudo apt install pavucontrol

How to Enable Audio Casting

Linuxでオーディオキャストを有効にする方法は、簡単なものから非常に難しいものまで様々です。私のテストと方法は Ubuntu に焦点を当てていますが、Arch や他のディストロを動かしているのであれば、手順は似ているはずです。

RTP オーディオキャスト

RTP (Real-time Transport Protocol) を使用するのが、私がテストした中で最も簡単な方法です。ここでは、Pulseaudioを使用しています。

    1. PaprefsのMulticast/RTPタブに移動し、両方のデバイスの「Enable Multicast/RTP receiver」と「Enable Multicast/RTP sender」ボックスにチェックを入れます。どちらかを有効にすることも可能ですが、私は両方の端末から送受信できるようにしたいので、両方を有効にしています。

2. シンクを別に作るか、スピーカーからもう一方のデバイスに直接音声を送るか、どちらかを選択します。別のシンクを作成すると、送信する音声の音量や形式を制御することができます。Pavucontrol の入力デバイスセクションに、もう一方のデバイスからのオーディオモニターストリームが表示されるはずです。 3. 3. もしあなたがもっと端末を使う人なら、以下のモジュールを “/etc/pulse” にある “default.pa” ファイルに追加することも可能です。これらはPaprefsでレシーバとセンダーを有効にするのと同じことをします。

load-module module-null-sink sink_name=rtp
load-module module-rtp-send source=rtp.monitor
set-default-sink rtp
load-module module-rtp-recv

手動で行う場合は、chmod を使って default.pa ファイルのパーミッションを変更する必要があるかもしれません。

直接接続によるオーディオキャスティング

両方のコンピュータの “/etc/pulse/default.pa” ファイルに以下の行を追加してください。これらのモジュールは、サーバとクライアント間の認証のためのものです。

load-module module-esound-protocol-tcp auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24

さらに、"/etc/pulse/client.conf” ファイルに default-server パラメータを設定します。これは、サーバのIPアドレスまたはホスト名(PC名)のいずれかを指定します。

WindowsからLinuxへのオーディオキャスティング

Windowsコンピュータを使用していて、Linuxデバイスにストリーミングしたい場合、Pulseaudioは、LinuxからWindowsへ、またはその逆を確実にストリーミングすることができません。Screamは、WindowsからLinuxへのオーディオキャストを可能にする数少ない代替手段の1つです。この方法は、Windows 11ではテストされていないことに注意してください。

インストールは、GithubのリンクからWindows 10のアプリケーションを、リポジトリからLinuxのレシーバーをダウンロードするのと同じくらい簡単です。以下のターミナルコマンドでレシーバーがインストールされ、レシーバーのリンク先でも利用可能です。

# Redhat, CentOS, etc.
sudo yum install pulseaudio-libs-devel です。
 
# Debian, Ubuntu, etc.
sudo apt-get install libpulse-dev # Debian, Ubuntu, その他

Pulseaudioを使用しない場合、JackはWindowsからLinuxにオーディオをストリーミングするための確実な方法を提供します。この方法は、JACK を Windows コンピュータのオーディオシンクに接続する ASIO ブリッジを使うことを含みます。

あなたのLinuxとWindowsの両方のコンピュータにJACKをインストールします。Windowsでは、以下のリンクからダウンロードしてインストールすることができます。Linux では、パッケージマネージャからそれをインストールする必要があります。私の場合、aptと以下のコマンドを使いました。

sudo apt install jackd

また、WindowsマシンにはASIO Bridgeをインストールしておく必要があります。インストールが完了したら、Windowsのコマンドラインから以下のコマンドを実行してください。

regsvr32 32bits Independent JackRouter.dll
regsvr32 64bits FilterJackRouter.dll

Linux マシンでは、ターミナルに jack_load netmanager と入力するか、qjackctl (Cadence と Catia も素晴らしいパッチベイです) を使って、同じコマンドで自動的に有効にするように設定します。オプションタブに移動して、“スタートアップ後にスクリプトを実行する “にチェックを入れて、コマンドを追加してください。

最後のステップは、あなたのWindowsデバイス上でJACK NetDriverを開始することです。あるいは、コマンドラインに jackd -R -d net を入力し、ASIO Bridge を開始し、ASIO デバイスを JackRouter に設定します。qjackctlまたはあなたが選んだパッチベイにWindowsのホスト名が表示されるはずです。このステップでは、qjackctlを再起動する必要がある場合がありますので、初回でうまくいかなくても気にしないでください。

Frequently Asked Questions (よくある質問)

Linux でオーディオをキャストするのに使える代替アプリケーションはありますか?

Linux にはたくさんのメディアサーバやキャスト用アプリケーションがあります。そのすべてを説明し実行することは不可能ですが、代表的なものとして、Mkchromecast と Soundwire があります。

オーディオキャストを有効にすると、私のPCはサイバー攻撃に弱くなりますか?

ネットワーク関連の作業をする際に気になるのが、セキュリティです。オーディオキャストの中には、コンピュータが脆弱になるものもありますが、閉じたLANネットワーク内で作業している限り、実際に危険な状態になることはないと思われます。

これらの方法で、テレビにオーディオをキャストできますか?

残念ながら、VLC や mkchromecast などの外部アプリケーションを使用しない場合、RTP や直接接続を使用してテレビに直接オーディオを送信することはできません。しかし、ほとんどのスマートテレビでは、アプリケーションをインストールしたり、他のデバイスからオーディオを受信して送信したりすることができます。

画像クレジット:Freepik上のノイズの多い大きなメガホン

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。