インターネットラジオストリーミングを有効にするために、Icecast-2.3.2およびices-0.4.0を使用してUbuntuサーバー環境を実行しています。
音楽ファイル(ほとんどがMP3)のディレクトリがあります。/PATH/TO/MUSIC
と呼びましょう。ジングルとポッドキャストのあるディレクトリもあります。 /PATH/TO/JINGLES
および/PATH/TO/PODCASTS
。
これまでのところ、私のサーバーは稼働しています。
機能するもの:
私の質問は今:
私はこのトピックでインターネットを検索しようとしましたが、この無線自動化の問題に対する「最後の解決策」はないようです。また、多くの解決策がかなりハッキングされているようです。
これはサーバー環境であることに留意してください。GUIを使用したソリューションは役に立ちません。
このトピックに関するヒントや経験に感謝します!
答えは:liquidsoapです。
liquidsoap 、マルチメディアストリーミング用のスイス軍ナイフ。特にnetradiosおよびwebtvで使用されます。たくさんの機能があり、無料でオープンソースです!
ストリームの生成方法を理解するのに数日かかりました。 liquidsoapは、ストリームパラメータを記述する小さなスクリプトで構成されています。 mp3プレイリストを読み込んで再生する簡単なスクリプト、basic.liq
と呼びましょう。以下に示します。
#!/usr/bin/liquidsoap
# load a playlist file
stream = playlist("/path/to/playlist.pls")
# output the playlist to icecast
source = output.icecast(%mp3, Host="localhost", port="8000",
mount="listen.m3u", password="hackme")
source(stream)
次を使用してスクリプトをテストします。
$ liquidsoap --check ./basic.liq
そして、次を使用してスクリプトを開始します。
$ liquidsoap ./basic.liq &
しかし、液体石鹸ははるかに強力です。たとえば、1時間ごとにジングルを再生するには、次のように追加します。
# add a jingle every full hour
jingle = single("/path/to/jingle.mp3")
add([stream,switch([({0m0s},jingle)])])
ただし、ホームページにはさらに多くの機能が記載されています。
- 静的または動的プレイリスト
- オーディオソースの時間ベースの選択
- 割り当てベースまたは時間ベースの挿入またはジングルの混合
- ライブDJの介入
- インタラクティブなユーザーリクエスト
- 完全にカスタマイズ可能なトランジション、例:クロスフェード
- トラックメタデータの音声合成
- リモートファイルへの簡単なアクセス
- などなど
ソース: https://github.com/AzuraCast/AzuraCast
Azuracastは、ターンキーインストーラーツールとステーションを管理するための使いやすいWebアプリを含む、自己ホスト型のWeb無線管理スイートです。 http://azuracast.com/
AzuraCastを使用すると、次のことができます。
AzuraCastは、LiquidSoapを「AutoDJ」として使用して、曲とプレイリストをシャッフルし、常にオンラインのラジオストリームを提供します。 LiquidSoapに接続して、独自のライブイベントをDJとしてブロードキャストすることもできます。
ラジオステーションを一般に放送するために、AzuraCastはWebラジオのゴールドスタンダードであるIceCast(v2.4)とShoutCast(v2)の両方をサポートしています。これらのステーションのどれを使用するかはいつでも切り替えることができます。
AzuraCastは、AzuraCastが管理していないステーションに関するリスナー統計やその他のデータを中継または収集するためのツールとして使用することもできます。
AzuraCastをインストールする方法は2つあります。
DockerおよびDocker Composeの使用(推奨):このメソッドには、事前作成されたコンテナーイメージ内のすべてのAzuraCast依存関係が含まれます。更新とインストールは高速で、ソフトウェアの互換性に関する問題ははるかに少ないです。この方法は、最新バージョンのDocker EngineおよびDocker Composeをサポートするコンピューターで機能します。どちらもAzuraCastインストーラースクリプトの一部としてインストールできます。
従来のインストール(Ubuntu 16.04のみ):Ubuntuのクリーンイメージから、付属のインストーラースクリプトを使用してAzuraCastをサーバーに直接インストールできます。インストーラースクリプトは、Ansibleを使用して依存関係を管理します。この方法を使用すると、インストールと更新が遅くなりますが、インストールしたソフトウェアをより詳細に制御できます。サーバーに他のソフトウェアがインストールされている場合、AzuraCastと競合する可能性があるため、常にこの方法を使用してクリーンインストールから開始してください。
ホストオペレーティングシステムとの互換性を常に拡大することを検討しており、他の環境用の新しい展開スクリプトを構築する際の支援を歓迎します。
従来のインストーラーを使用する場合でも、Dockerコンテナーを使用する場合でも、AzuraCastは同じソフトウェアスタックに依存して動作します。
Docker経由でAzuraCastをインストールして使用することを強くお勧めします。必要なソフトウェアパッケージはすべて自動化されたツールによって構築されているため、プリコンパイルされたイメージをプルダウンするだけで簡単にインストールできます。ホストのオペレーティングシステムとの互換性について心配する必要はありません。そのため、ホスト(WindowsやMacOSを含む)はそのまま使用できます。
DockerおよびDocker Composeをインストールするコンピューターまたはサーバーは、最新バージョンのDockerおよびDocker Composeを実行している必要があります。最初から始める場合は、以下の簡単なスクリプトを使用して両方をインストールできます。
wget -qO- https://get.docker.com/ | sh
COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | tail -n 1`
Sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
Sudo chmod +x /usr/local/bin/docker-compose
Sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
ルートとしてインストールしていない場合は、現在のユーザーをDockerグループに追加する指示が表示される場合があります(つまり、usermod -aG docker $user
)。以下に進む前に、これを行った後、ログアウトするか再起動する必要があります。
AzuraCast Docker Composeファイルをプルする
AzuraCastの構成ファイルをホストコンピューターのどこに配置するかを選択します。
そのディレクトリ内で、このコマンドを実行してDocker Compose構成ファイルをプルします。
curl -L https://raw.githubusercontent.com/AzuraCast/AzuraCast/master/docker-compose.yml > docker-compose.yml
AzuraCast Dockerインストーラーを実行する
YML設定ファイルを含むディレクトリから、次のコマンドを実行します。
docker-compose pull
docker-compose run --rm cli azuracast_install
docker-compose up -d
LetsEncryptを使用したHTTPSのセットアップ
AzuraCastはLetsEncryptによる完全暗号化をサポートするようになりました。 LetsEncryptは、検証と更新が簡単な無料のSSL証明書を提供します。
まず、AzuraCastインスタンスがセットアップされ、使用するドメインから提供されていることを確認します。次に、次のコマンドを実行して、新しいLetsEncrypt証明書を生成します。
docker-compose run --rm letsencrypt certonly --webroot -w /var/www/letsencrypt
電子メールアドレスとドメイン名を指定するように求められます。検証は自動的に行われます。完了したら、次のコマンドを実行して、nginxに新しいLetsEncrypt証明書を使用するように指示します。
docker-compose run --rm nginx letsencrypt_connect YOURDOMAIN.example.com
以下のコマンドを使用してnginxをリロードします。
docker-compose kill -s SIGHUP nginx
LetsEncrypt証明書は3か月間有効です。証明書を更新するには、次のコマンドを実行します。
docker-compose run --rm letsencrypt renew --webroot -w /var/www/letsencrypt
Dockerで更新する
AzuraCastがコピーされるベースディレクトリ内から、次のコマンドを実行します。
docker-compose down
docker-compose pull
docker-compose run --rm cli azuracast_update
docker-compose up -d
Dockerボリュームのバックアップと復元
AzuraCastには、Dockerボリュームの簡単なバックアップと復元を可能にするユーティリティスクリプトがあります。
Docker-backup.shを使用して、既存のボリュームをバックアップできます。スクリプトの引数としてカスタムパスを指定できます。デフォルトでは、スクリプトはアプリのルートにbackup.tar.gzというファイルを作成します。
この圧縮ファイルからアプリケーションの状態を復元するには、docker-restore.shを使用し、既存のバックアップファイルのパスを指定します。
復元プロセスは、Dockerボリューム内に存在する既存のAzuraCastデータベースまたはメディアを置き換えることに注意してください。
注:一部のWebホストは、異なるソフトウェアリポジトリを含むカスタムバージョンのUbuntuを提供しています。これらは、AzuraCastとの互換性の問題を引き起こす可能性があります。多くのVPSプロバイダーはAzuraCast(OVH、DigitalOcean、Vultrなど)ですぐに使用できることがわかっているため、従来のインストーラーを使用する場合は強くお勧めします。
AzuraCastは速度とパフォーマンスが最適化されており、Raspberry Pi 3からほとんどのプロバイダーが提供する最低レベルのVPSまで、非常に安価なハードウェアで実行できます。
AzuraCastは独自のラジオツール、データベース、およびWebサーバーをインストールするため、以前に他のWebまたはラジオソフトウェアがインストールされていない「クリーンな」サーバーインスタンスに常にAzuraCastをインストールする必要があります。
ルートユーザーとしてこれらのコマンドを実行して、AzuraCastサーバーをセットアップします。
apt-get update
apt-get install -q -y git
mkdir -p /var/azuracast/www
cd /var/azuracast/www
git clone https://github.com/AzuraCast/AzuraCast.git .
chmod a+x install.sh
./install.sh
サーバーのルートアカウントとして直接ログインできない場合は、上記のコマンドを実行する前にSudo suを実行してください。
インストールプロセスは、インターネット接続に応じて5〜15分かかります。
端末ベースのインストールが完了したら、サーバーのパブリックIPアドレス( http://ip.of.your.server/ )にアクセスして、Webベースのセットアップを完了できます。
更新中
AzuraCastには、Gitからコードベースの最新コピーを取得し、サイトキャッシュをフラッシュし、必要なデータベース更新を行う便利なアップデータスクリプトも含まれています。 Sudo権限を持つ任意のユーザーとしてこれらのコマンドを実行します。
cd /var/azuracast/www
Sudo chmod a+x update.sh
Sudo ./update.sh