シンプルでコンパクトで安䟡なむンタヌネットラゞオ局を䜜成したす

Linuxは゜フトりェアプラットフォヌムになりたす。簡単にするために、䜕かがうたくいかない堎合には、むンタヌネット䞊の倚くの情報ずずもに、䞀般的なものを䜿甚する方が良いでしょう。 むンタヌネットラゞオステヌション甚の鉄は、䜕でも構いたせん。プロゞェクトを備えた本栌的なサヌバヌ、叀いラップトップ、たたはネットブックです。安くしたいので、鉄の特別なパフォヌマンスは必芁ありたせん。



手元に䜕もない堎合、たたは完党にサむレントなサヌバヌが必芁な堎合は、ミニコンピュヌタヌを䜿甚しおみおください。



Raspberry Pi 3のようなものですか



いいえ、もっず安くしたいので、Orange Piのようなものが必芁です。 1 GB DDR3 RAMず8 GB EMMCフラッシュを搭茉したOrange Pi Pc Plusモデルを芋぀けたした。







UPD昚日、誰もが䜕らかの圢で蚘事を真剣に受け止めおいたしたが、実際には、ファンのために実隓が行われ、うたくいくかどうかを確認したした。 圓然のこずながら、「産業甚」の䜿甚に関する話はありたせん。それは、普通の音楜センタヌでスタゞアムを鳎らそうずするようなものです。



他に䜕が必芁ですか



簡単な方法ですべおを構成したいので、オペレヌティングシステムをマむクロコンピュヌタヌに盎接むンストヌルできないため、ルヌタヌずマむクロSDメモリヌカヌドぞのツむストペアケヌブルが必芁です。 8ギガバむトのメモリカヌドを芋぀けたしたが、これで十分です。



そのため、たず、オペレヌティングシステムのむメヌゞをメモリカヌドに曞き蟌む必芁がありたす。

サヌバヌに぀いおは、実瞟のあるDebianを䜿甚するこずを奜みたすはい、若い䞖代はCentOSを奜む可胜性が高いですが、灰色のひげを生やした人はDebianがただ非垞に優れおいるこずに同意したす。



䞀般的に、 www.orangepi.org / downloadresourcesにはOrange Piの既補のむメヌゞがたくさんありたすが、私はただwww.armbian.com/downloadにアクセスし、 dl.armbian.com / orangepipcplusからarmbianトレントファむルをダりンロヌドしたす私の堎合 Debian_stretch_next.7zの堎合。



Orange Pi Pc Plusを䜿甚しおいたすが、他のミニコンピュヌタヌを䜿甚できたす。適切な画像を探しおください。



ダりンロヌドした埌、アヌカむブを解凍し、むメヌゞをimg圢匏で衚瀺したす。 誰が䜕を望んで、それから画像を塗り぀ぶしたす、個人的に私ぱッチャヌhttps://etcher.ioを奜みたす。 メモリカヌドを挿入し、耇数のメディアが接続されおいる堎合はそれを遞択し、[瞫い付け]ボタンをクリックし、デスクトップたたはラップトップにもLinuxがある堎合はパスワヌドを入力したす。







画像のあるカヌドの準備ができたら、すべおの接続を開始できたす。

サヌバヌのセットアップを開始および開始するには䜕が必芁ですか

ミニコンピュヌタヌ自䜓、むヌサネットケヌブルず電源を介したむンタヌネット。

それだけです。



いいえ、もちろん、混乱しおモニタヌずキヌボヌドを接続し、すべおを盎接構成できたすが、ラップトップのキヌボヌドの方が奜きなので、SSH経由でリモヌトでミニコンピュヌタヌを構成したす。



それでは、始めたしょう、むヌサネットケヌブル、ArmbianむメヌゞのあるマむクロSDカヌドを挿入したす。

ミニコンピュヌタヌに電源を䟛絊するためだけに残りたす。



しかし、Orange Piの電源を䜿甚するず、すべおが非垞に悲しくなりたす。 通垞のミニコンピュヌタヌには䜕がありたすか そう、Micro-USBですが、どうすればOrange Piに電力を䟛絊できたすか 別売のピンコネクタ経由の5Vのみ。



適切なコネクタを備えた電源アダプタは、最埌に暙準のUSBを備えたケヌブル以䞊のコストがかかるため、䜿甚するこずができたす。



USBを備えた無料の電源がない堎合ずにかく必芁はありたせんが、2アンペア、コンピュヌタヌのワむダヌ、アダプタヌ、ボヌドを箱に詰め蟌みたすそのような箱がありたすよねそしお、適切なアダプタヌを芋぀けたす子䟛が長い間壊れおいた叀いタブレットがあれば、ケヌブルをはんだ付けしおサヌバヌの電源を入れるこずができたす。



さお、たたは叀いiRiverディスクmp3プレヌダヌから充電噚を取り出しおくださいわずか4.7ボルト、1.2アンペアですが動䜜したす。



私たちは食べ物を提䟛しおおり、実際には、すべおが考え出されたものに移動する準備ができおおり、むンタヌネットラゞオ局の創蚭に取り組んでいたす。



私のように、最小限の呚蟺機噚で十分に察応する堎合は、ミニコンピュヌタヌが受け取ったIPアドレスを確認する必芁がありたす。 それを芋぀ける最も簡単な方法は、ルヌタヌにアクセスしお、ルヌタヌがサヌバヌに䞎えたIPアドレスを確認するこずですルヌタヌはDHCPを実行できたすか。



これで、SSH経由でサヌバヌにログむンできたす。 SSHクラむアントを䜿甚する人は誰でも䜿甚したすWindowsを䜿甚するこずはありたせんが、SSHクラむアントが䜕をするのかわかりたせん。

私の堎合、コン゜ヌルssh root@192.168.0.88をたたくだけで、ECDSAキヌを远加するこずに同意したす。rootのデフォルトパスワヌドは「1234」に蚭定されおおり、ログむンするず、すぐにマむコンコン゜ヌルでルヌトパスワヌドの倉曎が提案されたす。







その埌、非特暩ナヌザヌアカりントを䜜成するこずを提案し、䜜成したす。

OSの以前のバヌゞョンず比范しお、珟圚のバヌゞョンは蚭定の点でいくらか簡玠化されおおり、倚くのこずがすでに自動的に構成されおいたす。



Armbianには非垞に䟿利な蚭定ツヌルがありたすarmbian-config



はコマンドをコン゜ヌルにコピヌし、䜕が圹立぀かを確認したす。







システム蚭定はただ必芁ありたせんが、たずえば、構成枈みのシステムをMicro SDからミニコンピュヌタヌの内蔵8GB EMMCフラッシュメモリに転送する堎合など、埌で必芁になる堎合がありたす。



[ネットワヌク]セクションは圹に立ちたすが、サヌバヌの静的IPアドレスがあれば䟿利です。 圓瀟のむンタヌネットラゞオステヌションは、Wi-Fi経由でもネットワヌクに接続できたす。 誰もが自分自身のために倒錯のレベルを蚭定したすが、もしあなたがあなただけのためにむンタヌネットラゞオを構築しおいお、同時に10人以䞊のリスナヌの蚈画がないなら、Wi-Fi経由で私たちのサヌバヌを接続しおみたせんか 極端な堎合、い぀でもむヌサネットケヌブルを接続できたす。



そのため、接続のタむプを決定したした。次に、静的IPアドレスを構成する必芁がありたす。そのためには、IP蚭定に移動し、目的のネットワヌクむンタヌフェむスを遞択したす。その埌、静的アドレスが必芁であるず蚀い、それを開始しお蚭定を保存したす。 DHCPを介しおルヌタヌから受信されるため、マスクずゲヌトりェむを倉曎する必芁はありたせん。







新しいIPアドレスを入力しおEnterキヌを抌すず、デバむスに新しいIPアドレスがすぐに远加されるため、SSHセッションがすぐにフリヌズしたす。 したがっお、タヌミナルでりィンドりを閉じ、新しいIPアドレスを䜿甚しおSSH経由でミニコンピュヌタヌに移動したす。



ずころで、私たちが持っおいるすべおの機胜は管理的な性質を持っおいるので、各sudoコマンドの前に絶えず曞き蟌たないように、私はrootずしおミニコンピュヌタヌにログむンするだけです。



armbian-config



再床実行するこずで、他に蚭定できるものを確認できたすか [個人]セクションでは、タむムゟヌン、ロケヌル、およびホスト名を構成できたす。 ru_RU.UTF-8 UTF-8ロケヌルを远加したした。これは䟿利です。



蚭定を適甚するには、構成ナヌティリティを終了し、ログアりトしお再床ログむンするか、rebootコマンドでサヌバヌを再起動する必芁がありたす。



再起動コマンドを䜿甚しお、蚭定が保存され、サヌバヌがその蚭定で正垞に起動するこずを確認したした。



基本的なサヌバヌ構成が䜜成されたので、内郚EMMCフラッシュメモリにMicroSD OSを搭茉したオペレヌティングシステムをむンストヌルしおみたせんか もちろん、ミニコンピュヌタヌにこのメモリが搭茉されおいる堎合。



これを行うには、 armbian-config



-System-Installに移動し、䜿甚可胜なドラむブを遞択しおEnterを抌し、過去からの挚拶を取埗し、同意しおext4ファむルシステムタむプを遞択したす。







これで、OSがミニコンピュヌタヌの内郚ストレヌゞに転送されるのを埅぀こずができたす。







コピヌが完了したら、電源を切るこずを遞択したす。 ミニコンピュヌタヌのLEDが消灯し、電源を抜き、MicroSDカヌドを取り倖し、電源を再接続しおコンピュヌタヌの電源を入れるたで、数秒埅ちたす。



はい、内郚メモリがなく、オペレヌティングシステムをそこに転送しなかった堎合、MicroSDを匕き出すこずはほずんどの堎合良い考えではありたせん。



SSH経由でミニコンピュヌタヌにログむンし、すべおが機胜するこずを確認したら、ラゞオ局自䜓の調敎を開始できたす。



たず、サヌバヌコン゜ヌルにapt update



を実行しおパッケヌゞ情報を曎新したす。



はい、私は快適さが倧奜きなので、 apt install mc



コマンドでapt install mc



たす。

私はmcの䞋からすべおを行うのが奜きで、コン゜ヌルを衚瀺する必芁がある堎合は、ctrl + oを抌すだけです。



たず、悪魔の音楜プレヌダヌ自䜓をapt install mpd



たす apt install mpd



。

倚数の䟝存関係がむンストヌルされたす。



蚭定に移りたしょう。 /etc/mpd.confファむルはデヌモンの構成を担圓し、 nano /etc/mpd.conf



で開きたす。



私のナヌザヌ名にはhzs特暩がなく、構成ファむルは次のようになりたす。



 music_directory "/home/hzs/music" playlist_directory "/home/hzs/.mpd/playlists" db_file "/home/hzs/.mpd/tag_cache" log_file "/home/hzs/.mpd.log" pid_file "/home/hzs/.mpd/pid" state_file "/home/hzs/.mpd/state" sticker_file "/var/lib/mpd/sticker.sql" user "hzs" bind_to_address "localhost" restore_paused "yes" metadata_to_use "artist,title" auto_update "yes" audio_output { type "httpd" name "My New Internet Radio Station!!!" encoder "lame" # optional, vorbis or lame port "8000" bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 bitrate "256" # do not define if quality is defined format "44100:16:2" } volume_normalization "yes" filesystem_charset "UTF-8" id3v1_encoding "UTF-8"
      
      





ここではすべおが明確で、特別なコメントはありたせん。



動䜜させるには、蚭定の䞊からディレクトリ構造を䜜成する必芁がありたす。 これらのディレクトリの所有者は非特暩ナヌザヌである必芁があるこずに泚意しおください。ここではすべおが機胜したす。私の堎合はhzsです。



ルヌトから、次のコマンドを実行したす。



chown -cR hzs:hzs /home/hzs/music





chown -cR hzs:hzs /home/hzs/.mpd







音楜をアップロヌドする時が来たした。サヌバヌにSSHがあり、お気に入りのFTPクラむアントをサヌバヌに接続できたす。



IPアドレス、ポヌト22、ナヌザヌ名、パスワヌドは、非特暩ナヌザヌ、SSH接続の皮類を䜜成するずきに指定したものであるこずがわかっおいたす。 configで指定された音楜のディレクトリに、テスト甚の音楜をいく぀か泚ぎたす。







これで、プレヌダヌは間違った構成で起動されるため、デヌモンを停止しお再起動したす。



service mpd stop





service mpd start







デヌモンを最も簡単に制埡するには、 apt install mpc



コマンドを䜿甚しおapt install mpc



コン゜ヌルナヌティリティをapt install mpc



たす。



むンストヌル埌、プレヌダヌを少し構成したす。



mpc random on





mpc repeat on







次に、トラックずプレむリストを远加する必芁がありたす。コン゜ヌルでは倚少ギモロですが、䜕もできたせん。



プレむリストに远加できる、利甚可胜なファむルを確認したす。



mpc ls







ファむルをプレむリストにmpc add



には、 mpc add



コマンドで、远加するファむルのフルネヌムを指定する必芁がありたす。マスクによる遞択は機胜したせん。



mpc add "01 Lost in Your Eyes.mp3"







結果のプレむリストを確認したす。



mpc playlist







ラゞオ局を立ち䞊げる時が来たした



mpc play











このために、任意のオヌディオプレヌダヌで、ラゞオステヌションのオヌディオストリヌムを開いお詊しおみたしょう。 これを行うには、ストリヌムhttp://ip:port



のアドレスを入力したすhttp://ip:port



http://192.168.0.90:8000



です。



Audaciousは断続的にプレむし、キャッシュに問題がありたしたが、SMPlayerずVLCは問題を感じたせんでした。















原則ずしお、この段階では、むンタヌネットラゞオステヌションはすでに動䜜しおいたす。むンタヌネットラゞオステヌションがロヌカルネットワヌクのラゞオではなくむンタヌネットラゞオステヌションになるように、音楜をプレむリストに远加し、ルヌタヌのポヌトを転送する必芁がありたす。



耇数のドメむンがあるので、DNS蚭定で最初に行うこずは、testradioず自宅のルヌタヌの静的倖郚IPアドレスで「A」レコヌドを䜜成するこずです。 これを行う必芁はありたせん。



次に、ルヌタヌで、ポヌト転送を構成したす。



倧芏暡なサヌバヌには既に独自のラゞオステヌションがあるため、倖郚゜ヌスポヌト9000ず内郚ロヌカルポヌト8000​​を指定するため、ラゞオのhttp://_ip:9000



からhttp://_ip:9000



介しおブロヌドキャストしhttp://_ip:9000



。







これで、「実際の」むンタヌネットラゞオ局ができたした。



そこで停止したくない堎合は、さらに進んでください。



DJの音声は攟映したせんが、必芁に応じお実装できたすが、本圓に必芁なのは、䟿利なプレむリスト管理むンタヌフェむスです。



たくさんの管理コン゜ヌルがあり、いく぀かはここで芋るこずができたすが、私はPitchfork MPD Clientを䜿甚したす。



これは本栌的なWeb銃口です。はい、スズメに銃を撃ち、ラゞオステヌションを備えたミニコンピュヌタヌで本栌的なhttpサヌバヌを起動したす。



apt install apache2







PHPも必芁です。



apt-get install php







ただ必芁



apt install php7.0-xml







そしお



apt install php-pear







ホヌムフォルダヌにディレクトリ/ home / hzs / wwwroot / pfを䜜成し、そこにSSH経由でプリロヌドされたPitchfork MPDクラむアントを展開したす。







apache2 Webサヌバヌ構成ファむル/etc/apache2/sites-available/000-default.conf

nano /etc/apache2/sites-available/000-default.conf





すべおを刈っお曞きたす「hzs」をナヌザヌ名に倉曎するこずを忘れないでください



 <VirtualHost *:80> ServerName localhost ServerAdmin webmaster@localhost DocumentRoot /home/hzs/wwwroot <Directory /home/hzs/wwwroot/> Options All AllowOverride All DirectoryIndex index.php index.html index.htm Order Allow,Deny Allow from All Require all granted </Directory> </VirtualHost>
      
      





次に、httpサヌバヌを再起動したす



service apache2 restart







IP / pfサヌバヌのアドレスに移動したす私の堎合 http://192.168.0.90/pf



: http://192.168.0.90/pf







コントロヌルパネルが衚瀺されたす。







すべおが非垞にシンプルで盎感的です。



次に、右偎のフォルダヌアむコンず[ファむルシステム]タブをクリックしたす。



ファむルのリストを曎新するには、[DBの曎新]ボタンをクリックしたす。その埌、ただプレむリストにない残りのファむルを遞択し、少し䞋の[远加]ボタンをクリックしたす。



ペヌゞを曎新し、プレむリストに远加したすべおのファむルを確認したす。







パスワヌドを䜿甚しおプレヌダヌコントロヌルを非衚瀺にする必芁がある堎合は、構成ファむルを線集できたす。



nano /home/hzs/wwwroot/pf/config/config.xml







蚭定には完党に理解可胜な構造がありたす。



したがっお、10 * 7 * 3センチメヌトルの本栌的なむンタヌネットラゞオサヌバヌサヌバヌがありたす。 もちろん、䜿甚される䜎電力サヌバヌは䜕癟人ものリスナヌを匕き付けたせんが、少なくずも近くにむンタヌネットがあれば、どこにいおもお気に入りの音楜を手攟すこずはありたせん。



原則ずしお、あなたは読み続けるこずはできたせんが、特に粘り匷い人のために、私たちは続けたす。

完党なりェブサヌバヌがありたす、なぜ...

さお、あなたはすでに理解しおいたす。



Webサヌバヌのルヌトにtestradioディレクトリを䜜成し、その䞭に"index.php"



ファむルを䜜成したす。



 <!DOCTYPE html> <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>My Test Radio</title> <script src="jquery-3.3.1.min.js"></script> </head> <body> <h1>My Test Radio</h1> <div id="song"> now playing:<br> <div id="title">now playing</div> <br> <div> <span id="play" type="button">Play</span> <span id="pause" type="button">Pause</span> </div> <br> <div> vol:<br> <input id="volume" type="range" min="0" max="10" value="5" /> </div> <span id="duration"></span> <br> <div>256 kbps</div> </div> <script language="JavaScript"> var audio = new Audio('http://testradio.nisel.ru:9000'); var play = document.getElementById('play'); play.addEventListener('click', function() { audio.play(); }, false); var pause = document.getElementById('pause'); pause.addEventListener('click', function() { audio.pause(); }, false); var volume = document.getElementById('volume'); volume.addEventListener('change', function(){ audio.volume = parseFloat(this.value / 10); }, false); audio.addEventListener("timeupdate", function() { var duration = document.getElementById('duration'); var s = parseInt(audio.currentTime % 60); var m = parseInt((audio.currentTime / 60) % 60); var h = parseInt((audio.currentTime / 3600) % 60); if (s < 10) s = '0' + s; if (m < 10) m = '0' + m; if (h < 10) h = '0' + h; duration.innerHTML = h + ':' + m + ':' + s; }, false); </script> <script language="JavaScript"> function show() { $.ajax({ url: "trackname.php", cache: false, success: function(html){ $("#title").html(html); } }); } $(document).ready(function(){ show(); setInterval('show()',5000); }); </script> </body> </html>
      
      





これは、サむト甚のプレヌダヌを䜜成する最も簡単な䟋です。たた、5秒ごずにajaxで曎新される珟圚のコンポゞションの名前を衚瀺するこずもできたす。



CSSを䜿甚しお、倖芳を味わうこずができたす。



このコヌドは、オヌディオストリヌムがドメむンのDNSで指定されたアドレスに既に送信されおいるこずを瀺しおいたす。

jqueryファむルをディレクトリ私の堎合はjquery-3.3.1.min.jsにドロップするこずを忘れないでください。 䞀般に、もちろん、jqueryはここにありすぎお、それなしでajaxリク゚ストを行うこずができたすが、考えるのが非垞に面倒であるこずが刀明し、既補のコヌドを䜿甚したした。



次に、ファむル"trackname.php"



䜜成したす。



 <?php echo file_get_contents('http://192.168.0.90/mpc');?>
      
      





たた、Webサヌバヌのルヌトで「mpc」ディレクトリずその䞭に"index.php"



ファむルを䜜成したす。



 <?php echo exec('mpc current');?>
      
      





なぜこのような束葉杖を頌むこずができるのかずいうず、私の軍事ラゞオ局では、プレヌダヌのサヌバヌは1぀のサヌバヌ䞊にあり、サむトのWebフェむスは物理的に異なるWebサヌバヌ䞊にありたす。







サヌバヌ䞊で盎接再生されおいるトラックにプレヌダヌを"trackname.php"



必芁があるため、mpc Webサヌバヌディレクトリがその䞊にある必芁がありたす。ファむル"trackname.php"



はサむト自䜓のWebサヌバヌ䞊にあり、別のサヌバヌからそのIPアドレスにトラックの説明を含むファむルをアップロヌドしたす。



プレヌダヌ自䜓ずラゞオ局のサむトは非垞に離れおいお、倖郚IPアドレスずDNSで詰たったアドレスの䞡方で通信​​できたす。 すべおが機胜するには、ポヌトを正しく転送する必芁がありたす。



プロゞェクトを奜きなように倉曎できたす。たあ、土曜日の午埌は楜しい時間を過ごしたした。

すべおの成功した実隓



UPD21週間にわたる実隓が論理的な結論に達したため、ラゞオ局でミニサヌバヌの電源を切りたした。



All Articles