GNU / Linuxにラジオステーションを展開します。 パートI

まず、ハブへの無線の展開に関する多くのトピックを読みましたが、網羅的な情報を提供してくれたものは1つもありません。

私はすべて自分でやることに決めました。 これはプロジェクトやスタートアップではなく、just4funです。 これはあなたの役に立つかもしれません。

そのため、ラジオストリームの展開にはフリーソフトウェアのみを使用したため、ユーザーウィンドウ$およびma o $はこれ以上読みません。 いいえ、それを読んで、多分それはあなたにGNU / Linuxを新しい視点から開くでしょう。







ブロードキャストストリームから必要なもの:





開始位置



スタジオマイク、1個

USBドライブ64 MB





まず、ルーターの標準ファームウェアが破壊され、トランクからのOpenWRTがその場所に落ちました。 OpenWRTの展開方法については説明しません。たとえば、 ここで読むことができます

内蔵メモリは4メガバイトで、busyboxビルドオプションのuseraddプログラムだけであるため、block-extrootを使用してFSルーターのルートを外部フラッシュドライブに転送する必要があるとしか言えません



ファームウェアがインストールされ、インターネットが機能し、SSHもそこにあります。SSHを経由してルーターに行き、理解し始めます。



I.アイスキャスト

質問は、「ストリームサーバーとして何を使用するか」です。 ありませんでした さらに、非常に安定しており、軽量です。



ルーターにicecastをインストールします。

opkg update opkg install icecast
      
      





なぜルーターに? もちろん、コンピューターは夜間にオフになり、24/7モードが計画されています。



サンドボックスでIcecastを使用するので、Icecastユーザーを作成します。

Icecast構成ファイルはXML形式です

 #   useradd   busybox,  : opkg install shadow-useradd useradd icecast -g nogroup cp /etc/icecast.xml /usr/share/icecast # vi /usr/share/icecast/icecast.xml #  nano
      
      







実際、私は一般的にこの設定を編集するためにケイト(kio-sftp)を使用しましたが、それは重要ではありません。



構成は十分に文書化されています。 セキュリティのために、chrootを1に設定し、所有者をユーザーに変更する必要があります。 また、この場合のパスは、basedirからの相対パスである必要がありますが、先頭にスラッシュが必要です。 そして、Icecastは本当に自分でパスを作成することを好みません。

例として、 ここに私の設定があります。



私の場合、Icecastユーザーのログファイルを作成する必要があります。

 cd /usr/share/icecast mkdir log cd log touch {error,access}.log cd - chown -R icecast log #  icecast -b -c icecast.xml
      
      







Webインターフェースは192.168.1.1で利用可能です:8000



ところで、次の行を追加します

icecast -b -c /usr/share/icecast/icecast.xml





/etc/rc.localで、ルーターの起動時にicecastを実行します。



II:フォールバックストリーム



私は24時間働けないので、最初のオフラインの場合、同じURLのメインストリームを置き換えるフォールバックストリームが必要です。

最後のフォールバックストリーム構成オプションは、2番目の部分で見つけることができますが、ここではMPDを使用します。



icecast用にMPDを設定するのに複雑なことは何もありませんが、ALSAとIceCastで同時に解釈できるようになりました。 mpdをインストールして〜/ .mpdconfを開くだけで、そこにALSAとIcecastの両方が設定されます。自分でパラメータをコメント解除して微調整するだけです。



メインストリームが/ liveと呼ばれ、フォールバックが/mpd.oggであるとします

次に、icecast.xmlに次を追加する必要があります。

  <mount> <mount-name>/live</mount-name> <fallback-mount>/mpd.ogg</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> </mount>
      
      







icecastを再起動し(killallがすべてです)、アドレスを開こうとします

192.168.1.1:8000 /プレーヤーでライブ。 動作しますか? さらに進みましょう。



III:インターネットを登る



外部からの接続を受け入れるようにファイアウォールを構成します。 ホワイトIPがない場合は、dyndns.orgを使用して、openwrtのドキュメントを参照してください。



/ etc / config / firewallで、次の行を入力します。

 #ICECAST config rule option src wan option dest_port 8000 option target ACCEPT option proto tcp
      
      





ファイアウォールを再起動します。

/etc/init.d/firewall restart





ところで、私にとって、チェックする最良の方法はisup.meではなく、携帯電話です:)。 一般的に、さらに進んでみましょう



IV:クライアントのセットアップ

クライアントマシン、つまり 投稿の冒頭で述べたように、デスクトップもLinuxです。

無線を制御するために、無料のオープンな、そして最も重要なのは、非ポータブル(Linuxのみ)プログラムidjcを使用します。 SourceForgeからのレビューを引用させてください。



過去に、SAMとShoutCastの両方を使用してWindows XPでストリーミングしました。 Ubuntu StudioでインターネットDJコンソールを試した後、私はそれが私の人生で最高のストリーミング体験だったと言わなければなりません。 6時間以上サーバーに接続しましたが、問題なく実行されました。 これをまとめた人たちへの称賛。





Gentoo Portagesにはありませんでしたが、たとえばUbuntuにあります。 ソースからプログラムをコンパイルしました。 また、「ジャック」USEフラグを/etc/make.confに追加して、インストールしてalsaと統合する必要がありました。



動作させるには、プログラムにJACKサウンドサーバーが必要です(Linuxで優れたプログラムがありますが、m $ではありません) と尋ねると、Rosegarden、Cinenelerra、JACK、Ardor、MythTVです!

その他の依存関係:GTK +、pygtk、およびヘッドフォンとマイク付きのサウンドカードの存在。



IV.1ジャックのセットアップ

JACKはリアルタイムモードで動作するため、スワップする場所を指定する必要があります。

オーディオグルー​​プに自分自身を追加し、/ etc / security.confに次を追加します。

 @audio - rtprio 99 @audio - memlock unlimited @audio - nice -10
      
      





そしてログインします。

たとえば、構成ファイルを作成する必要もあります。

echo "/usr/bin/jackd -d -r 44100 -p 256" > ~/.jackdrc

JACK, back-end' ( ):

jackd -d

.. alsa pulse



IV.2 idjc

idjc , . ( ):

画像



2 , ( ), ( ), , (), :

4 6 Icecast/Shoutcast MP3 OGG () FLAC

. Preferences Jingles , Output:



画像



, , .

, .



, Format ., .. , .

, IRC.



V. Skype

skype ☻ alsa-plugins. Gentoo:

emerge alsa-plugins # USE="jack"






~/.asoundrc :

# VoIP plugin for the IDJC default profile. pcm.idjcvoip { type plug slave.pcm { type jack playback_ports { 0 idjc-mx_default:voip_in_l 1 idjc-mx_default:voip_in_r } capture_ports { 0 idjc-mx_default:voip_out_l 1 idjc-mx_default:voip_out_r } } }





.

, idjrc JACK jackd -d alsa ( pulse, ). , qjackctl.



idjcvoip ( , Ekiga ):



画像



, , - .



, .








echo "/usr/bin/jackd -d -r 44100 -p 256" > ~/.jackdrc

JACK, back-end' ( ):

jackd -d

.. alsa pulse



IV.2 idjc

idjc , . ( ):

画像



2 , ( ), ( ), , (), :

4 6 Icecast/Shoutcast MP3 OGG () FLAC

. Preferences Jingles , Output:



画像



, , .

, .



, Format ., .. , .

, IRC.



V. Skype

skype ☻ alsa-plugins. Gentoo:

emerge alsa-plugins # USE="jack"






~/.asoundrc :

# VoIP plugin for the IDJC default profile. pcm.idjcvoip { type plug slave.pcm { type jack playback_ports { 0 idjc-mx_default:voip_in_l 1 idjc-mx_default:voip_in_r } capture_ports { 0 idjc-mx_default:voip_out_l 1 idjc-mx_default:voip_out_r } } }





.

, idjrc JACK jackd -d alsa ( pulse, ). , qjackctl.



idjcvoip ( , Ekiga ):



画像



, , - .



, .








   echo "/usr/bin/jackd -d -r 44100 -p 256" > ~/.jackdrc 
      

JACK, back-end' ( ):

jackd -d

.. alsa pulse



IV.2 idjc

idjc , . ( ):

画像



2 , ( ), ( ), , (), :

4 6 Icecast/Shoutcast MP3 OGG () FLAC

. Preferences Jingles , Output:



画像



, , .

, .



, Format ., .. , .

, IRC.



V. Skype

skype ☻ alsa-plugins. Gentoo:

emerge alsa-plugins # USE="jack"






~/.asoundrc :

# VoIP plugin for the IDJC default profile. pcm.idjcvoip { type plug slave.pcm { type jack playback_ports { 0 idjc-mx_default:voip_in_l 1 idjc-mx_default:voip_in_r } capture_ports { 0 idjc-mx_default:voip_out_l 1 idjc-mx_default:voip_out_r } } }





.

, idjrc JACK jackd -d alsa ( pulse, ). , qjackctl.



idjcvoip ( , Ekiga ):



画像



, , - .



, .








echo "/usr/bin/jackd -d -r 44100 -p 256" > ~/.jackdrc

JACK, back-end' ( ):

jackd -d

.. alsa pulse



IV.2 idjc

idjc , . ( ):

画像



2 , ( ), ( ), , (), :

4 6 Icecast/Shoutcast MP3 OGG () FLAC

. Preferences Jingles , Output:



画像



, , .

, .



, Format ., .. , .

, IRC.



V. Skype

skype ☻ alsa-plugins. Gentoo:

emerge alsa-plugins # USE="jack"






~/.asoundrc :

# VoIP plugin for the IDJC default profile. pcm.idjcvoip { type plug slave.pcm { type jack playback_ports { 0 idjc-mx_default:voip_in_l 1 idjc-mx_default:voip_in_r } capture_ports { 0 idjc-mx_default:voip_out_l 1 idjc-mx_default:voip_out_r } } }





.

, idjrc JACK jackd -d alsa ( pulse, ). , qjackctl.



idjcvoip ( , Ekiga ):



画像



, , - .



, .











All Articles