web-dev-qa-db-ja.com

AzuraCast:Icecast設定を変更してイントロソングを有効にする

AzuraCastは、Icecast(現在はIcecast 2.4.0-kh10-ac4)を使用してライブラジオを放送しています。

Icecastには、新しいリスナーが接続したときにメディアファイルをライブストリームの前に追加するオプションがあります。

これは Icecast Documentation<intro>オプション(私の太字)について言わなければならないことです:

これらのコンテンツが接続時に新しいリスナーに送信されるが、通常のストリームが送信される前にファイルを指定するオプションの値。 指定されたファイルの形式がストリーミング形式と一致するであることを確認してください。指定されたファイルは、開かれる前にwebrootに追加です。

同じフォーマット

イントロファイルがストリームとまったく同じエンコード形式であることを完全に確認するために、テスト用のイントロファイルとして使用するストリームの短いダンプ(mplayer -dumpstream <mountpoint_url>)を使用しました。

Icecast.xmlを直接編集しますか?番号。

現在、ステーションのIcecast構成ファイルは、通常、AzuraCastが実行されているサーバーの/var/azuracast/stations/<station_slug>/config/icecast.xmlにあります(デフォルト設定)。

私が最初に遭遇した問題は、AzuraCastがIcecastを起動または再起動するたびにicecast.xmlファイルを上書きするため、直接編集できないことです。

AzuraCast内からIcecast設定を変更する

幸運にも、カスタム構成フィールド(プロファイルの編集>の下にあります)にJSONを入力して、Icecast設定(の一部)をオーバーライドすることができました。 ブロードキャスト)。次に例を示します。

{
  "location" : "Overrides location",
  "mount" : [{
    "intro" : "/intro-128.mp3"
  },{
    "intro" : "/intro-64.aac"
  }],
  "paths" : {
    "webroot" : "/usr/local/share/icecast/web"
  },
  "directory" : {
    "yp-url-timeout" : "15",
    "yp-url" : "http://dir.xiph.org/cgi-bin/yp-cgi"
  }
}

そしてこれは、Icecastが再起動されたときにicecast.xml内のXMLに正常に変換されます(関連するタグを保持するだけです)。

<icecast>
    <location>Overrides location</location>
    ...
    <mount type="normal">
        <mount-name>/radio.mp3</mount-name>
        ...  
        <intro>/intro-128.mp3</intro>
    </mount>
    <mount type="normal">
        <mount-name>/radio.aac</mount-name>
        ...
        <intro>/intro-64.aac</intro>
    </mount>
    <paths>
        <basedir>/usr/local/share/icecast</basedir>
        <webroot>/usr/local/share/icecast/web</webroot>
        ...
    </paths>
    ...
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    </directory>
</icecast>

しかし、いいえ、それは再生されません...

しかし、それを機能させるための<intro><webroot>の設定の組み合わせを理解することはできません。

ねえ! Webrootは存在しません!

奇妙なことに、デフォルトの<webroot>値はサーバーにも存在しません。パスを作成してイントロファイルをそこに配置しようとしましたが、再生されず(Icecastを再起動した後でも)、http://<Host:port>/intro-128.mp3を直接リクエストしたときに表示されません(Webに直接配置されているため期待できます)ルート)。

また、<webroot>の値を別のディレクトリに変更すると、Icecast Webフロントエンドが機能しなくなり(ストリームは引き続き機能しましたが)、イントロファイルを直接要求しても機能しませんでした。

AzuraCastが何らかの方法でIcecastのリクエストをファイルシステムに「リダイレクト」しているのではないかと思われます。

Docker?インまたはアウト?

私のAzuraCastは、VPS内のDockerインストールで実行されています。もちろん、これらすべてのパスとファイルdoはDockerボリュームの内部にあります。しかし、念のため、私ホストサーバー上に直接パスを作成しようとしましたが、これまでのところ成功していません。

(はい、変更は有効です。)

Icecastでオーバーライドされた場所を確認でき、ストリームが dir.xiph.org に登録されるため、icecast.xmlの変更が有効になっていることを確認します。

何か手がかりはありますか?

1
Bigue Nique

とった!

マウントのイントロファイルを設定するには、最初にIcecastのウェブルート内のどこかで利用できるようにする必要があります。これは事実上/usr/local/share/icecast/webinsidestationsDockerサービス。これを行うには、AzuraCastのドキュメントで説明されている方法を使用してファイルを カスタムのデフォルトトラックを使用 にマップする必要があります。

Docker-compose.override.ymlを編集します

AzuraCastの更新時にdocker-compose.ymlが上書きされる可能性があるため、docker-compose.override.ymlを作成(または編集)してマッピングを追加します。

ホストサーバーのシェルからdocker-compose.override.ymlを作成または編集するには、次のように入力します。

# cd /var/azuracast
# nano docker-compose.override.yml

次のYAMLコンテンツを貼り付けます(フィッティングへのパスを調整します)。

version: '2.2'

services:
    stations:
        volumes:
            - /path/to/your/file.mp3:/usr/local/share/icecast/web/intro.mp3 

(nanoでは、^ Oを押して保存し、^ Xを押して終了します。)

AzuraCastを再起動します

新しいマッピングを有効にするには、Dockerサービスを(完全に)再起動する必要があります。シェルで:

# docker-compose down
# docker-compose up -d
# docker-compose start

Icecastのマウントポイント設定を編集します

貧弱なOPのようにステーションのIcecast設定を編集する代わりに、マウントポイントの設定でイントロ設定を指定する方がはるかに簡単です。

Mount Pointsをクリックしてから、特定のマウントポイントのEditボタンをクリックします。 カスタムフロントエンド構成(一番下)の下に、次の行を追加します。

{ "intro" : "intro.mp3" }

また、ファイル名がdocker-compose.override.ymlで設定したものと一致していることを確認してください。

変更を保存をクリックしてから、オレンジ色変更の適用を再開をクリックしてIcecastを再開します。

イントロをお楽しみください!

あなたの美しいイントロを聞くためにあなたのステーションにチューニングしてください。

1
Bigue Nique