Web開発
Webradioサーバー – クライアントに音声ソースをブロードキャストする
Webradio server – broadcasts audio source to clients (github.com)
要約
tau-towerは、tau-radioという付属ソフトウェアからの音声ストリームを世界中にライブストリーミングするためのWebラジオサーバーです。Icecastソフトウェアをモデルにしており、Webサイトのaudioタグで使用できるHTML音声ストリームを提供します。本プロジェクトは、NGI Zero Coreからの資金提供を受けており、設定ファイルや依存関係、ストリーミングパイプラインに関する詳細な情報が提供されています。
全文翻訳
検索…Control⌃KニュースレターRSS
このプロジェクトは、NLnetが欧州委員会の次世代インターネットプログラムからの財政支援を受けて設立した基金であるNGI Zero Coreを通じて資金提供されています。詳細については、NLnetプロジェクトページをご覧ください。 使用方法: このツールは、付属ソフトウェアであるtau-radioのインスタンスからのオーディオストリームを世界中のウェブにライブストリーミングし、オーディオストリームをブロードキャストするために構築されています。Icecastソフトウェアをモデルにしており、他のウェブサイトのaudioタグで使用できるhtmlオーディオストリームを提供します。これは、AWS、Digital Ocean、または適切な権限を持つ任意のVPSなどのリモートサーバーで実行する必要があります。なお、利用可能な最小のDigital Ocean「Droplet」には、このプロジェクトをローカルでビルドするのに十分なRAMがありません。回避策としては、ex: cargo build --target x86_64-unknown-linux-gnuを使用して、そのアーキテクチャ用にビルドすることです。
インストール方法:
$ cargo install --git https://github.com/tau-org/tau-tower
このツールを初めて使用すると、システムで設定ファイルが検索されます。以下のパスで検索されます。
$HOME/.config/tau/tower.toml # macOSの場合
$XDG_CONFIG_HOME/tau/tower.toml # Linuxの場合
そこに設定ファイルがない場合、作成するよう促されます。
# ユーザー名とパスワードは安全ではありません。これらは
# tauradioサービスとtautowerサービスをリンクするだけです。
username = "username"
password = "emanresu"
# 接続ポートを設定します。ソースストリームがここに送信されます。
listen_port = 8000
# ブロードキャストポートを設定します。ストリームはこのポートからアクセス可能になります。
broadcast-port = 8001
# サーバーのHTTPエンドポイントを設定します - http://localhost:8001/tau.ogg
broadcast-endpoint = "tau.ogg"
# オプション:
# ストリームを再ブロードキャストできる他のサイトを設定します。
# "*"はすべてを許可し、"http://localhost:4000"をリストに追加するのは冗長です。
cors_allow_list = ["*", "http://localhost:4000"]
一時的に設定を上書きしたい場合は、引数を渡すことができます。
# 例:一時的な認証情報を使用し、ローカル録画を無効にします。
$ tau-tower \
--listen-port <listen-port> \
--broadcast-port <broadcast-port> \
--cors-allow-list "*"
依存関係
Linux(aptを使用):
$ sudo apt update
$ sudo apt install build-essential
ストリーミングパイプライン
tau-radioはローカルマシンで実行され、システム上のオーディオデバイスからサウンドをキャプチャします。デフォルトはmacOSではBlackHole 2ch、Linuxではpipewireですが、これらは設定またはCLI引数で上書きできます。キャプチャされたオーディオは、リモートサーバーで実行されるtau-towerにストリーミングされます。このサーバーアプリケーションは、多くのクライアントがWebラジオとして利用できるオーディオメディアストリームを公開します。tau-towerと並行して、Asciinemaのインスタンスが実行され、ストリーム設定でブロードキャストエンドポイントURLをメディアソースとして設定することで、ライブオーディオストリームをライブターミナルストリームのバックグラウンドとして使用できます。
https://example.com:8002/tau.ogg
これを機能させるには、Asciinemaのオリジンをtower.tomlのcors_allow_listに追加する必要があります。
cors_allow_list = ["https://example.com:4000"]
あなたのコンピューター
リモートサーバー
(オーディオキャプチャ)
(オプションのtls/ssl)
(プロキシ)
(ブロードキャスター)
(オプションのストリームホスト)
tau-radio -> インターネット -> Caddy -> tau-tower -> Asciinema
TLS終端とリバースプロキシの設定については、プロキシ設定(Caddy)を参照してください。