Linux wird die Softwareplattform sein. Der Einfachheit halber ist es besser, etwas Gemeinsames mit vielen Informationen im Internet zu verwenden, wenn etwas schief geht. Eisen für einen Internetradiosender kann alles sein, ein vollwertiger Server mit Ihren Projekten, ein alter Laptop oder ein Netbook, wir wollen billig, und wir brauchen keine besondere Leistung von Eisen.
Wenn Sie nichts zur Hand haben oder wir einen völlig leisen Server benötigen, versuchen Sie es mit einem Mini-Computer.
So etwas wie der Raspberry Pi 3?
Nein, wir wollen billiger, also brauchen wir so etwas wie Orange Pi. Ich habe ein Orange Pi Pc Plus-Modell mit 1 GB DDR3-RAM und 8 GB EMMC-Flash gefunden.

UPD: Gestern haben alle den Artikel irgendwie zu ernst genommen, aber tatsächlich wurde das Experiment zum Wohle des Fans durchgeführt, um zu sehen, ob es funktioniert oder nicht. Natürlich ist von einer „industriellen“ Nutzung keine Rede, es ist wie der Versuch, das Stadion mit einem gewöhnlichen Musikzentrum zu erklingen.
Was können wir noch brauchen?
Ich möchte versuchen, alles auf einfache Weise zu konfigurieren. Daher benötige ich weiterhin ein Twisted-Pair-Kabel zum Router und eine Micro-SD-Speicherkarte, da ich das Betriebssystem nicht direkt auf dem Mikrocomputer installieren kann. Ich habe eine Speicherkarte für 8 Gigabyte gefunden, diese Menge ist völlig ausreichend.
Zunächst müssen Sie also das Image des Betriebssystems auf die Speicherkarte schreiben.
Für Server bevorzuge ich das bewährte Debian (ja, die jüngere Generation bevorzugt höchstwahrscheinlich CentOS, aber der Graubärtige wird mir zustimmen, dass Debian immer noch sehr gut ist).
Im Allgemeinen gibt es viele fertige Bilder für Orange Pi unter
www.orangepi.org/downloadresources , aber ich gehe immer noch zu
www.armbian.com/download und
lade die Torrent-Datei von armbian von dl.armbian.com/orangepipcplus (in meinem)
herunter Fall von Debian_stretch_next.7z).
Ich habe Orange Pi Pc Plus, Sie können jeden anderen Mini-Computer haben, suchen Sie also nach dem passenden Bild.
Entpacken Sie nach dem Herunterladen das Archiv und sehen Sie das Bild im IMG-Format. Wer will, womit er das Bild füllt, bevorzuge ich persönlich Etcher (https://etcher.io). Wir haben eine Speicherkarte eingelegt, sie ausgewählt, wenn Sie mehrere Medien angeschlossen haben, auf die Schaltfläche Nähen klicken und das Kennwort eingeben, wenn Sie auch Linux auf Ihrem Desktop oder Laptop haben.

Die Karte mit dem Bild ist fertig, Sie können alles verbinden.
Was brauchen wir, um unseren Server zu starten und einzurichten?
Der Mini-Computer selbst, Internet über Ethernet-Kabel und Stromversorgung.
Und alle.
Nein, natürlich können Sie verwirrt sein, den Monitor und die Tastatur anschließen und alles direkt konfigurieren, aber die Tastatur meines Laptops gefällt mir besser, daher werde ich meinen Mini-Computer über SSH remote konfigurieren.
Beginnen wir also mit dem Ethernet-Kabel, einer Micro-SD-Karte mit einem Armbian-Image.
Es bleibt nur die Stromversorgung des Minicomputers.
Aber mit der Leistung des Orange Pi ist alles sehr traurig. Was ist auf einem normalen Mini-Computer? Das stimmt, Micro-USB, aber wie kann ich den Orange Pi mit Strom versorgen? Nur 5V über einen Pin-Stecker, der separat erhältlich ist.
Ein Netzteil mit einem geeigneten Stecker kostet mehr als nur ein Kabel mit Standard-USB am Ende, sodass Sie es nehmen können.
Wenn es keine freie Stromversorgung mit USB gibt (und wir brauchen sowieso nicht, aber für 2 Ampere), stöbern wir in unserer Box mit Drähten, Adaptern und Platinen für Computer (Sie haben eine solche Box, oder?) Und finden einen geeigneten Adapter von Einige alte, lange von einem Kindertablett zerbrochene, löten das Kabel und die Stromversorgung für unseren Server ist bereit.
Oder nehmen Sie einfach das Ladegerät vom alten MP3-Player der iRiver-Festplatte (es ist nur 4,7 Volt und 1,2 Ampere, aber es funktioniert auch).
Wir servieren Essen und sind bereit, tatsächlich zu dem zu wechseln, für den alles konzipiert wurde, zur Schaffung eines Internetradiosenders.
Wenn Sie wie ich mit einem Minimum an Peripheriegeräten auskommen möchten, müssen wir herausfinden, welche IP-Adresse unser Mini-Computer erhalten hat. Der einfachste Weg, dies herauszufinden, besteht darin, zu Ihrem Router zu gehen und zu sehen, welche IP-Adresse der Router unserem Server gegeben hat (Ihr Router kann DHCP ausführen, oder?).
Jetzt können Sie sich über SSH bei unserem Server anmelden. Wer den SSH-Client verwendet, muss ihn verwenden (Sie haben nie Windows, aber ich weiß nicht, was SSH-Clients tun).
In meinem Fall hämmere ich einfach die Konsole ssh root@192.168.0.88 ein. Ich bin damit einverstanden, den ECDSA-Schlüssel hinzuzufügen. Das Standardkennwort für root ist "1234". Nach dem Anmelden befinden wir uns in der Konsole des Mikrocomputers, die sofort vorschlägt, das Root-Kennwort zu ändern.

Danach wird vorgeschlagen, ein nicht privilegiertes Benutzerkonto zu erstellen, wir erstellen es.
Im Vergleich zu früheren Versionen des Betriebssystems ist die aktuelle Version in Bezug auf die Einstellungen etwas vereinfacht und viele Dinge werden bereits automatisch konfiguriert.
Armbian hat ein sehr praktisches Konfigurationstool:
armbian-config
kopiert den Befehl auf die Konsole und sieht, was nützlich sein kann.

Wir benötigen die Systemeinstellungen noch nicht, sie können jedoch später benötigt werden, um beispielsweise das konfigurierte System von Micro SD auf den integrierten 8-GB-EMMC-Flash-Speicher eines Minicomputers zu übertragen.
Der Abschnitt Netzwerk wird für uns nützlich sein, aber es wäre schön, eine statische IP-Adresse für den Server zu haben. Unser Internetradiosender kann sogar über WLAN mit dem Netzwerk verbunden werden. Jeder legt das Maß an Perversität für sich selbst fest. Wenn Sie jedoch das Internetradio nur für sich selbst erstellen und nicht mehr als 10 Hörer gleichzeitig planen, können Sie unseren Server dann über WLAN nutzen. In extremen Fällen können Sie jederzeit ein Ethernet-Kabel anschließen.
Also haben wir uns für die Art der Verbindung entschieden, jetzt müssen wir eine statische IP-Adresse konfigurieren. Dazu gehen wir zu den IP-Einstellungen und wählen die gewünschte Netzwerkschnittstelle aus. Danach sagen wir, dass wir eine statische Adresse wollen, starten sie und speichern die Einstellungen. Maske und Gateway müssen nicht geändert werden, da sie von Ihrem Router über DHCP empfangen werden.

Nachdem Sie eine neue IP-Adresse eingegeben und die Eingabetaste gedrückt haben, wird Ihre SSH-Sitzung sofort eingefroren, da das Gerät sofort eine neue IP-Adresse hat. Deshalb schließen wir einfach das Fenster mit dem Terminal und gehen über SSH mit der neuen IP-Adresse zu unserem Mini-Computer.
Übrigens, da alle Funktionen, die wir haben, administrativer Natur sind, um nicht ständig vor jedem sudo-Befehl zu schreiben, melde ich mich einfach als root beim Mini-Computer an.
armbian-config
wir durch
armbian-config
Ausführen von
armbian-config
sehen, was noch konfiguriert werden kann? Im Bereich Persönlich können wir die Zeitzone, das Gebietsschema und den Hostnamen konfigurieren. Ich habe das Gebietsschema ru_RU.UTF-8 UTF-8 hinzugefügt, das sich als nützlich erweisen wird.
Damit die Einstellungen angewendet werden können, müssen Sie das Konfigurationsdienstprogramm beenden, sich abmelden und erneut anmelden oder den Server mit dem Befehl reboot neu starten.
Ich habe den Befehl reboot verwendet, um sicherzustellen, dass die Einstellungen gespeichert wurden und der Server erfolgreich mit ihnen gestartet wurde.
Die grundlegende Serverkonfiguration wurde vorgenommen und warum nicht das Betriebssystem mit MicroSD OS auf dem internen EMMC-Flash-Speicher installieren? Natürlich, wenn Ihr Mini-Computer diesen Speicher an Bord hat.
Gehen Sie dazu zu
armbian-config
- System - Install, wählen Sie das verfügbare Laufwerk aus, drücken Sie die Eingabetaste, holen Sie sich Grüße aus der Vergangenheit, stimmen Sie zu und wählen Sie den ext4-Dateisystemtyp aus.

Jetzt können wir uns zurücklehnen und warten, bis das Betriebssystem auf den internen Speicher des Mini-Computers übertragen wird.

Schalten Sie nach Abschluss des Kopiervorgangs die Stromversorgung aus. Wir warten einige Sekunden, bis die LED am Mini-Computer erlischt, ziehen Sie den Strom heraus, entfernen Sie die microSD-Karte, schließen Sie den Strom wieder an und schalten Sie den Computer ein.
Ja, wenn Sie keinen internen Speicher haben und das Betriebssystem nicht darauf übertragen haben, ist das Herausziehen einer MicroSD höchstwahrscheinlich keine gute Idee.
Nachdem Sie sich über SSH bei unserem Mini-Computer angemeldet und sichergestellt haben, dass alles funktioniert, können Sie den Radiosender selbst einstellen.
Zunächst aktualisieren wir die Paketinformationen, indem wir
apt update
in die Serverkonsole einbinden.
Ja, ich liebe Komfort, also installiere ich mc mit dem Befehl
apt install mc
.
Ich mache gerne alles unter mc und wenn ich die Konsole sehen muss, drücke ich einfach Strg + o.
Installieren Sie zuerst den Demon Music Player selbst:
apt install mpd
.
Damit werden eine Reihe von Abhängigkeiten installiert.
Fahren wir mit der Einrichtung fort. Die Datei /etc/mpd.conf ist für die Konfiguration des Dämons verantwortlich. Öffnen Sie sie mit dem
nano /etc/mpd.conf
.
Mein Benutzername hat keine hzs-Berechtigungen und meine Konfigurationsdatei sieht ungefähr so aus:
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"
Hier ist alles klar und ohne besondere Kommentare.
Um zu arbeiten, müssen Sie oben in den Einstellungen eine Verzeichnisstruktur erstellen. Bitte beachten Sie, dass der Eigentümer dieser Verzeichnisse ein nicht privilegierter Benutzer sein sollte, von dem aus alles funktioniert, in meinem Fall hzs.
Führen Sie von root aus die folgenden Befehle aus:
chown -cR hzs:hzs /home/hzs/music
chown -cR hzs:hzs /home/hzs/.mpd
Es ist Zeit, Musik hochzuladen. Wir haben SSH auf dem Server, damit wir unseren bevorzugten FTP-Client mit unserem Server verbinden können.
Wir wissen, dass die IP-Adresse, Port 22, der Benutzername und das Kennwort diejenigen sind, die Sie beim Erstellen des nicht privilegierten Benutzers angegeben haben, die Art der SSH-Verbindung. Gießen Sie Musik für den Test in das in der Konfiguration angegebene Musikverzeichnis.

Jetzt wird der Player mit der falschen Konfiguration gestartet, sodass wir den Daemon stoppen und erneut starten:
service mpd stop
service mpd start
Zur einfachsten Steuerung des Daemons
apt install mpc
wir
apt install mpc
Dienstprogramm
apt install mpc
console mit dem Befehl
apt install mpc
.
Nach der Installation werden wir den Player ein wenig konfigurieren:
mpc random on
mpc repeat on
Jetzt müssen Sie Titel und eine Wiedergabeliste hinzufügen, in der Konsole ist es etwas Gimmorro, aber nichts kann getan werden.
Wir sehen uns die uns zur Verfügung stehenden Dateien an, die wir der Wiedergabeliste hinzufügen können:
mpc ls
Um eine Datei zur Wiedergabeliste
mpc add
, müssen wir im Befehl
mpc add
den vollständigen Namen der hinzuzufügenden Datei angeben. Die Auswahl nach Maske funktioniert nicht:
mpc add "01 Lost in Your Eyes.mp3"
Wir sehen uns die resultierende Wiedergabeliste an:
mpc playlist
Es ist Zeit, unseren Radiosender zu starten:
mpc play

Versuchen wir zuzuhören, dafür öffnen wir den Audiostream unseres Radiosenders in einem beliebigen Audio-Player. Geben Sie dazu die Adresse des Streams
http://ip:port
, ich habe sie
http://192.168.0.90:8000
.
Audacious spielte zeitweise, es gab ein Problem mit dem Caching, aber SMPlayer und VLC hatten keine Probleme.



Im Prinzip funktioniert unser Internetradiosender zu diesem Zeitpunkt bereits. Sie müssen der Wiedergabeliste Musik hinzufügen und die Anschlüsse am Router weiterleiten, damit unser Internetradiosender zu einem Internetradiosender und nicht zu einem Radio im lokalen Netzwerk wird.
Ich habe mehrere Domänen, daher erstelle ich in den DNS-Einstellungen zunächst einen A-Eintrag mit Testradio und der statischen externen IP-Adresse meines Routers zu Hause. Sie müssen dies nicht tun.
Als nächstes konfiguriere ich auf meinem Router die Portweiterleitung.
Da ich bereits einen eigenen Radiosender auf einem großen Server habe, gebe ich den externen Quellport 9000 und den internen lokalen Port 8000 an, sodass das Radio von außerhalb über
http://_ip:9000
sendet.

Jetzt haben wir einen "echten" Internetradiosender.
Wenn Sie dort nicht anhalten möchten, gehen Sie weiter.
Wir senden nicht die Stimme des DJs, aber bei Bedarf kann sie implementiert werden. Was jedoch wirklich benötigt wird, ist eine praktische Oberfläche zur Verwaltung von Wiedergabelisten.
Es gibt Unmengen von Verwaltungskonsolen, einige können hier
angezeigt werden , aber ich werde den
Pitchfork MPD Client verwenden .
Dies ist eine vollwertige Web-Schnauze, und ja, wir werden eine Waffe auf die Spatzen schießen und mit unserem Radiosender einen vollwertigen http-Server auf einem Minicomputer anheben:
apt install apache2
Wir werden auch PHP brauchen:
apt-get install php
Noch brauchen
apt install php7.0-xml
und
apt install php-pear
Wir erstellen das Verzeichnis / home / hzs / wwwroot / pf im Home-Ordner und entpacken den zuvor geladenen MPH-Client auf der SSH Pitchfork.

In der Apache2-Webserver-Konfigurationsdatei /etc/apache2/sites-available/000-default.conf
nano /etc/apache2/sites-available/000-default.conf
wir mähen alles und schreiben (vergessen Sie nicht, "hzs" in Ihren Benutzernamen zu ändern):
<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>
Dann starten wir den http-Server neu
service apache2 restart
Gehen Sie zur Adresse Ihres IP / pf-Servers (in meinem Fall:
http://192.168.0.90/pf
)
Wir werden das Bedienfeld sehen:

Alles ist ganz einfach und intuitiv.
Klicken Sie anschließend auf das Ordnersymbol rechts und auf die Registerkarte Dateisystem.
Um die Liste der Dateien zu aktualisieren, klicken Sie auf die Schaltfläche DB aktualisieren, wählen Sie die verbleibenden Dateien aus, die noch nicht in der Wiedergabeliste enthalten sind, und klicken Sie etwas tiefer auf die Schaltfläche Hinzufügen.
Wir aktualisieren die Seite und sehen, dass alle Dateien, die wir zur Wiedergabeliste hinzugefügt haben:

Wenn Sie das Player-Steuerelement mit einem Kennwort ausblenden müssen, können Sie die Konfigurationsdatei bearbeiten:
nano /home/hzs/wwwroot/pf/config/config.xml
Es gibt eine völlig verständliche Struktur der Einstellungen.
Wir haben also einen vollwertigen Internetradioserver mit einer Größe von 10 * 7 * 3 Zentimetern. Natürlich zieht der verwendete Server mit geringem Stromverbrauch nicht Hunderte von Hörern an, aber zumindest lässt er Sie nicht ohne Ihre Lieblingsmusik zurück, wo immer Sie sind, wenn Internet in der Nähe ist.
Grundsätzlich können Sie nicht weiterlesen, aber für diejenigen, die besonders hartnäckig sind, fahren wir fort.
Wir haben einen vollständigen Webserver, warum ...
Nun, du verstehst schon.
Erstellen Sie das Verzeichnis testradio im Stammverzeichnis unseres Webservers und erstellen Sie die Datei
"index.php"
darin:
<!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>
Dies ist das einfachste Beispiel für das Erstellen eines Players für eine Site. Außerdem kann der Name der aktuellen Komposition angezeigt werden, die alle 5 Sekunden mit Ajax aktualisiert wird.
Das Aussehen kann mit CSS nach Geschmack beendet werden.
Der Code zeigt an, dass der Audiostream bereits an die im DNS meiner Domain angegebene Adresse gesendet wird.
Vergessen Sie nicht, die jquery-Datei in das Verzeichnis zu legen (in meinem Fall jquery-3.3.1.min.js). Im Allgemeinen ist jquery hier natürlich zu viel und man könnte eine Ajax-Anfrage ohne sie stellen, aber es stellte sich als zu faul zum Nachdenken heraus und ich verwendete einen vorgefertigten Code.
Als nächstes erstellen Sie die Datei
"trackname.php"
:
<?php echo file_get_contents('http://192.168.0.90/mpc');?>
Ebenfalls im Stammverzeichnis des Webservers erstellen wir das Verzeichnis "mpc" und die Datei
"index.php"
darin:
<?php echo exec('mpc current');?>
Warum manche solche Krücken fragen, ist die Tatsache, dass sich in meinem Militärradiosender der Server des Spielers auf einem Server befindet und sich das Webface der Website auf einem physisch anderen Webserver befindet.

Da Sie den Titel, der direkt auf dem Server abgespielt wird, mit dem Player abfragen müssen, sollte sich das mpc-Webserververzeichnis darauf befinden. Die Datei
"trackname.php"
befindet sich auf dem Webserver der Site selbst und lädt die Datei mit der
"trackname.php"
von einem anderen Server auf ihre IP-Adresse
"trackname.php"
.
Der Player selbst und der Standort des Radiosenders können sehr weit voneinander entfernt sein und sowohl über externe IP-Adressen als auch über mit DNS verstopfte Adressen kommunizieren. Damit alles funktioniert, müssen Sie nur die Ports korrekt weiterleiten.
Sie können das Projekt nach Ihren Wünschen ändern. Nun, ich hatte einen angenehmen Samstagnachmittag.
Alle erfolgreichen Experimente!
UPD2: Ein einwöchiges Experiment kam zu seinem logischen Abschluss und ich schalte meinen Miniserver mit einem Radiosender aus.