Софтовой платформой будет Linux, для простоты лучше использовать что-то распространённое, с кучей информации в интернете, если вдруг что-то пойдёт не так. Железом для интернет радиостанции может быть что угодно, полноценный сервер с вашими проектами, какой-нибудь старый ноутбук, или нетбук, мы же хотим дёшево, а особой производительности от железа нам не требуется.

Если же под рукой ничего такого нет, или нам нужен совсем бесшумный сервер, почему бы не попробовать использовать мини компьютер?

Что-то типа Raspberry Pi 3?

Нет, мы же хотим дешевле, так что нам нужно что-то типа Orange Pi. У меня нашлась модель Orange Pi Pc Plus с 1GB DDR3 оперативной памяти и 8GB EMMC Flash.



UPD: Вчера все как-то слишком серьёзно восприняли статью, но на самом деле эксперимент был проведён ради фана, чтобы посмотреть получится или нет. Естественно ни о каком «промышленном» использовании речи не идёт, это всё равно что попытаться озвучить стадион обычным музыкальным центром.

Что нам может ещё понадобиться?

Я хочу попробовать настроить всё по простому, поэтому ещё понадобится витая пара до роутера и карта памяти Micro SD, так как на прямую на микро компьютер операционную систему установить не получится. Я нашёл у себя карту памяти на 8 гигабайт, этого объёма вполне хватит.

Итак, первым делом нужно записать образ операционной системы на карту памяти.
Для серверов я предпочитаю использовать проверенный временем Debian (да, более молодое поколение, вероятнее всего, предпочитает CentOS, но седобородые согласятся со мной, что Debian всё ещё очень хорош).

Вообще, для Orange Pi на www.orangepi.org/downloadresources существует огромное количество готовых образов, но я всё-таки схожу на www.armbian.com/download и скачаю с dl.armbian.com/orangepipcplus торрент файл с armbian (в моём случае Debian_stretch_next.7z).

У меня Orange Pi Pc Plus, у вас может быть любой другой мини компьютер, поэтому ищите соответствующий образ.

После закачки распаковываем архив и видим образ в формате img. Кто чем хочет, тем и заливает образ, лично я предпочитаю Etcher (https://etcher.io). Вставили карту памяти, выбрали её, если у вас подключено несколько носителей, нажали кнопку шить, ввели пароль если у вас на десктопе или ноутбуке тоже стоит линукс.



Карта с образом готова, можно начинать всё подключать.
Что же нам нужно, чтобы запустить и начать настраивать наш сервер?
Сам мини компьютер, интернет по Ethernet проводу и блок питания.
И всё.

Нет, конечно можно заморочиться, подключить монитор и клавиатуру и настраивать всё напрямую, но мне больше нравится клавиатура моего ноутбука, поэтому я буду настраивать свой мини компьютер удалённо, по SSH.

Итак, приступим, втыкаем кабель Ethernet, карту Micro SD с образом Armbian.
Осталось только подать питание на мини компьютер.

А вот с питанием на Orange Pi всё очень печально. Что есть на нормальном мини копьютере? Правильно, Micro-USB, а как можно запитать Orange Pi? Только 5V через штырьковый разьём, который покупается отдельно.

Адаптер питания с подходящим разьёмом стоит дороже, чем просто провод со стандартным USB на конце, поэтому можно взять его.

Если нет свободного блока питания с USB (а нам надо не абы какой, а на 2 ампера), то роемся в своём ящике с проводами, адаптерами и платами для компьютеров (у вас же есть такой ящик, правда?) и находим подходящий адаптер от какого-нибудь старого, давно разбитого ребёнком планшета, перепаиваем кабель и питание для нашего сервера готово.

Ну или просто берём зарядник от старого дискового mp3 плеера iRiver (он всего 4,7 вольта и 1,2 ампера но тоже работает).

Подаём питание и мы готовы перейти, собственно говоря, к тому, ради чего всё и затевалось, к созданию интернет радиостанции.

Если вы, так же как и я, намереваетесь обойтись минимумом периферии, то нам нужно узнать какой IP адрес получил наш мини компьютер. Самым простым способом узнать его, это зайти на свой роутер и посмотреть какой IP адрес роутер дал нашему серверу (ваш роутер же умеет DHCP, правда?).

Теперь можно заходить по SSH на наш сервер. Кому какой SSH клиент удобен, тот тем и пользуется (мало ли у вас виндовс, а как там с SSH клиентами я вот вообще не в курсе).
В моём случае я просто забиваю в консоль ssh root@192.168.0.88, соглашаюсь на добавление ключа ECDSA, пароль по умолчанию для root установлен «1234», авторизовавшись мы оказываемся в консоли микрокомпьютера, который сразу же предлагает сменить пароль root.



После этого предлагается создать аккаунт непривилегированного пользователя, создаём.
По сравнению с предыдущими версиями ОС, текущая версия несколько упрощена в плане настроек и много чего уже настраивается автоматически.

У Armbian есть очень удобный инструмент настройки: armbian-config копируем команду в консоль и смотрим что нам может пригодиться.



Настройки системы нам пока что не нужны, но они могут понадобится позже, например для переноса настроенной системы с Micro SD на встроенную 8GB EMMC Flash память мини компьютера.

Нам будет полезен раздел Network, всё-таки неплохо бы иметь серверу статический IP адрес. Нашу интернет радиостанцию можно подключить к сети даже по Wi-Fi. Уровень извращённости каждый устанавливает себе сам, но если вы строите интернет радио чисто для себя и не планируется более 10 слушателей одновременно, то почему бы наш сервер и не подцепить всё-таки по Wi-Fi? В крайнем случае, воткнуть кабель Ethernet можно в любой момент.

Итак, мы определились с типом подключения, теперь нам нужно настроить статический IP адрес, для этого мы идём в настройки IP и выбираем нужный интерфейс сети, после чего мы говорим, что хотим статичный адрес, заводим его и сохраняем настройки. Менять маску и шлюз нет необходимости, так как они получены от вашего роутера по DHCP.



После того, как вы введёте новый IP адрес и нажмёте Enter, ваша SSH сессия тут же зависнет, так как сразу же у устройства появится новый IP адрес. Поэтому просто закрываем окно с терминалом и заходим на наш мини компьютер по SSH используя новый IP адрес.

Кстати, раз все функции у нас будут иметь административный характер, чтобы не писать постоянно перед каждой командой sudo, я просто авторизуюсь на мини компьютере под пользователем root.

Запустив armbian-config снова мы можем посмотреть что можно настроить ещё интересного? В разделе Personal мы можем настроить временную зону, локаль и имя хоста. Я добавил локаль ru_RU.UTF-8 UTF-8, вдруг пригодится.

Чтобы применились настройки нужно выйти из утилиты настройки, разлогиниться и зайти снова, или перезагрузить сервер командой reboot.

Я использовал команду reboot, чтобы убедиться, что настройки сохранились и сервер с ними успешно стартует.

Базовая настройка сервера произведена и почему бы не установить работающую с MicroSD ОС на внутреннюю EMMC Flash память? Конечно, если ваш мини компьютер имеет на борту эту самую память.

Для этого заходим в armbian-config — System — Install, выбираем доступный накопитель, жмём Enter, получаем привет из прошлого, соглашаемся и выбираем тип файловой системы ext4.



Теперь мы можем откинуться на спинку кресла и дожидаться пока OS перенесётся на внутренний накопитель мини компьютера.



После завершения копирования, выбираем отключить питание. Ждём пару секунд пока не погаснет светодиод на мини компьютере, выдёргиваем питание, вынимаем MicroSD карту, втыкаем питание обратно и включаем компьютер.

Да, если у вас нет внутренней памяти и вы не перенесли на неё операционную систему, вытащить MicroSD, вероятнее всего, будет не очень хорошей идеей.

После входа на наш мини компьютер по SSH и убедившись, что всё работает, можно начинать настраивать саму радиостанцию.

Первым делом обновляем информацию о пакетах, вбив apt update в консоль сервера.

Да, я люблю комфорт, поэтому устанавливаю mc командой apt install mc.
Я люблю всё делать из под mc, а если мне нужно увидеть консоль, я просто нажимаю ctrl+o.

Первым делом устанавливаем сам музыкальный плеер-демон: 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.

Из под root выполняем следующие команды:

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

Пора заливать музыку, у нас на сервере есть SSH, так что мы можем законнектиться любимым FTP клиентом к нашему серверу.

IP адрес нам известен, порт 22, имя пользователя и пароль те, что вы задали при создании непривилегированного пользователя, тип соединения SSH. Заливаем немного музыки для теста в директорию для музыки, указанную в конфиге.



Сейчас проигрыватель запущен с неправильным конфигом, поэтому останавливаем демона и запускаем его снова:

service mpd stop
service mpd start

Для простейшего управления демоном мы поставим консольную утилиту mpc командой apt install mpc.

После установки немного сконфигурируем проигрыватель:

mpc random on
mpc repeat on

Сейчас нужно добавить треки а плейлист, в консоли это несколько гиморройно, но ничего не поделать.

Смотрим доступные нам файлы, которые мы можем добавить в плей лист:

mpc ls

Чтобы добавить файл в плейлист, в команде mpc add мы должны указать полное имя добавляемого файла, выбор по маске не работает:

mpc add "01 Lost in Your Eyes.mp3"

Смотрим получившийся плейлист:

mpc playlist

Пора запускать нашу радиостанцию:

mpc play



Попробуем послушать, для этого в любом аудиоплеере открываем аудио поток нашей радиостанции. Для этого вводим адрес потока http://ip:port, у меня это http://192.168.0.90:8000.

Audacious играл с перебоями, была проблема с кешированием, а вот SMPlayer и VLC проблем не ощутили.







В принципе, на данном этапе наша интернет радиостанция уже работает, нужно добавить в плейлист музыки и пробросить порты на роутере, чтобы наша интернет радиостанция стала всё-таки интернет радиостанцией, а не радио в локальной сети.

У меня есть несколько доменов, так что первым делом я в настройках DNS создаю «A» запись с testradio и статическим внешним IP адресом моего роутера дома. Вам этого делать необязательно.

Далее на своём роутере я настраиваю port forwarding.

Так как у меня уже есть своя радиостанция на большом сервере, я указываю внешний исходный порт 9000, а внутренний локальный 8000, таким образом из вне радиостанция будет вещать по http://внешний_ip:9000.



Всё, теперь у нас получилась «настоящая» интернет радиостанция.

Если не хочется останавливаться на достигнутом, едем дальше.

Мы не выпускаем в эфир голос диджея, но при необходимости это можно реализовать, но вот что действительно нужно, так это удобный интерфейс управления плейлистом.

Существует куча консолей управления, некоторые можно посмотреть тут, но я буду использовать 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 Client.



В конфигурационном файле веб сервера apache2 /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)

Мы увидим пульт управления:



Всё достаточно просто и интуитивно понятно.

Далее нажимем на иконку папки справа и вкладку Filesystem.

Для обновления списка файлов нажимам кнопку Update DB, после чего выбираем оставшиеся файлы, которые у нас до сих пор отсутствуют в плейлисте и нажимаем кнопку Add чуть ниже.

Обновляем страницу и видим, что все файлы у нас добавились в плейлист:



Если нужно спрятать управление проигрывателем под пароль, то можно отредактировать конфигурационный файл:

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

Там вполне понятная структура настроек.

Итак, у нас получился полноценный сервер интернет радиостанции размером 10*7*3 сантиметра. Конечно, используемый маломощный сервер не потянет сотни слушателей, но он как минимум не оставит вас без любимой музыки где бы вы ни были, если рядом найдётся интернет.

В принципе, можно не продолжать читать, но для особо упорных продолжаем дальше.
У нас же есть полноценный веб сервер, почему бы…
Ну вы уже поняли.

Создаём в корне нашего веб сервера директорию 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>

Это простейший пример создания плеера для сайта, так же он умеет выводить название текущей композиции, обновляемое с помощью ajax каждые 5 секунд.

Внешний вид можно допилить по вкусу с помощью css.

В коде видно, что аудио поток уже идёт по адресу, указанному в DNS моего домена.
Не забываем закинуть в директорию файл jquery (в моём случае jquery-3.3.1.min.js). Вообще, конечно, jquery тут перебор и можно было бы сделать ajax запрос без него, но думать оказалось совсем лень и я использовал готовый кусок кода.

Далее создаём файл "trackname.php":

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

Так же в корне веб сервера создаём директорию «mpc» а в ней файл "index.php":

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

Зачем такие костыли могут спросить некоторые, дело в том, что в моей боевой радиостанции сервер плеера находится на одном сервере, а веб морда сайта, находится на физически другом веб сервере.



Так как опрашивать проигрываемый трек нужно непосредственно на сервере с проигрывателем, то директория веб сервера mpc должна быть на нём, а файл "trackname.php" находится на веб сервере самого сайта и подгружает файл с описанием трека с другого сервера по его IP адресу.

Сам плеер и сайт радиостанции могут находиться очень далеко друг от друга и общаться как по внешним IP адресам, так и по адресам, забитым в DNS. Чтобы всё работало, нужно всего лишь правильно пробросить порты.

Дорабатывать проект можно по своему вкусу, ну я а приятно провёл субботнюю половину дня.
Всем удачных экспериментов!

Комментарии (56)


  1. tmnhy
    14.10.2018 17:04

    Отстой.

    Вы серьёзно думаете, переписать мануалы по установке армбиан и маны mpd — это актуально?


    1. hzs Автор
      14.10.2018 17:36
      +1

      Если вам это не интересно, это не означает, что никому это не интересно.


      1. tmnhy
        14.10.2018 17:49
        -1

        Ну, кому это может быть интересно?
        Техническая составляющая вещания по сети жёвана-пережёвана.


        1. mession
          14.10.2018 19:09

          Видимо, общественно-полезным тс считает веб морду. Её, кстати, «Дорабатывать… можно по своему вкусу,»


          1. tmnhy
            14.10.2018 21:06
            +1

            Я думал увидеть раскрытыми вопросы лицензирования вещания, реакцию на абузы правообладателей, подкасты и интерактив, взаимодействие с авторами.

            Но нет.

            Следующей будет статья, радиостанция на трансмитере с али за 10 баксов.


            1. hzs Автор
              14.10.2018 21:35

              Ничего не мешает вещать свободную от копирайта музыку, или договариваться с авторами музыки на её трансляцию.
              Свою первую интернет радиостанцию я запускал ещё лет 10 назад, по почте не получил ни одну абузу за несколько лет вещания, а один музыкант записывал и присылал мне джинглы. Посещения были практически из всех стран мира, за исключением разве что полюсов и Северной Кореи.
              Потом стало как-то не интересно и я всё свернул.
              Сейчас у меня есть своя интернет радиостанция, но она скорее для внутреннего использования.
              А что касается трансмиттера с али за 10 баксов, зачем так дорого-то?
              Можно взять за 5-7 неплохой трансмиттер, только он будет скорее на 100 милливатт, хотя у нас разрешено вещать всего на 10 милливатт.
              Но если уменьшить мощность, вполне себе удастся вещать в пределах дачного участка, к примеру, а больше и не нужно.


              1. tmnhy
                15.10.2018 00:37

                Свою первую интернет радиостанцию я запускал ещё лет 10 назад

                10 лет назад не было «блокировок» без решения суда и т.д. и т.п.
                Ваша «подкроватная» станция рискует превратиться в «Радио localhost» очень быстро.


                1. hzs Автор
                  15.10.2018 05:36

                  Такое радио по-большому счёту и есть для внутреннего использования, просто с возможностью слушать любимую музыку даже если ты не дома, а количество имеющейся на телефоне музыки очень ограничено.
                  Да и вообще попытка запустить вещание с микро компьютера это просто эксперимент, потянет, или нет. Ради фана.


  1. saag
    14.10.2018 17:15

    А где там радио? И почему такая мода так называть?


    1. hzs Автор
      14.10.2018 17:41
      +1

      Потому что вещание музыки по сети так и называется интернет радио.


      1. kolyaflash
        14.10.2018 22:34
        +1

        Теперь это называется стриминг.


        1. hzs Автор
          14.10.2018 22:43

          А, да, я чего-то такое слышал.
          Просто я слегка человек из прошлого века :0))


  1. KupC
    14.10.2018 19:09
    +1

    Как нарисовать сову.


    1. hzs Автор
      14.10.2018 19:10

      Ну, я вроде, кроме основного круга, ещё показал как рисовать глаза :0))


      1. KupC
        14.10.2018 19:52

        Спасибо, теперь осталось дождаться длинных, зимних вечеров.


  1. danfox1987
    14.10.2018 19:09
    +2

    Понравился живой стиль изложения автора. Написано здорово, читал на одном дыхании. Сам — *nix-админ со стажем, но мне было интересно. Даже появилось желание сделать что-то подобное у себя в сети. ) Удобно когда мануалы переработаны и скомпилированы под один конкретный законченный проект. Не забывайте, что сколько людей — столько и мнений.


    1. hzs Автор
      14.10.2018 19:22
      +1

      Спасибо на добром слове, а то по первым комментариям создалось впечатление, что статей про создание интернет радиостанций на одноплатных компьютерах в интернете прямо пруд пруди и всем всё так очевидно.


      1. Godless
        14.10.2018 22:13

        Не переживайте. Я вот для себя про Pitchfork галочку поставил. 8) А читать и правда было интересно.


  1. leR12
    14.10.2018 19:31

    Читал! Ничего не понял! Но круто всё… наверно. ибо ничего не понял ))))


    1. hzs Автор
      14.10.2018 19:36

      Я старался, честно. :0))


  1. kovserg
    14.10.2018 20:08
    +1

    Интернет радио должно выглядеть иначе — коробка с переключением каналов и регулятором громкости подключенная к сети, включил играет, надоело выключил, ну и опционально настойка каналов через веб интерфейс.
    Меня больше всего печалит в этих микрокомпьютерах, то что в них нет rtc и видео драйвера работают через жопу если вообще заведутся, т.к. штатно они не поставляются из-за правоторговцев.


    1. I-denis
      14.10.2018 20:36

      rtc ставиться на раз два — i2c на гребенке расширения. на эту же гребёнку можно подвесить регулятор громкости в виде энкодера, кнопки и массу вариантов дисплеев


      1. kovserg
        15.10.2018 01:06

        Кто ж спорит что можно, более того там еще инфракрасный порт есть. Можно дисташкой управлять. Печалит именно то что rtc нет из коробки так же как и видео ускорения и декодирования видео и приходится плясать с бубнами.


    1. hzs Автор
      14.10.2018 21:44

      Это не радио, это радиостанция, она не чтобы слушать, она чтобы вещать.
      А радио должно выглядеть именно так, как вы и описывали.
      Я вообще интернет радиоприёмник вижу как деревянный корпус с тканевым грилем перед динамиком, несколько кнопок переключения каналов и ручкой громкости.


  1. LevOrdabesov
    14.10.2018 21:15

    Я так понимаю, это частное радио, для себя.
    Не пробовали, ради интереса, скольким максимально клиентам может отдавать поток одновременно ваш одноплатник в этой конфигурации хард/софт?


    1. hzs Автор
      14.10.2018 21:56

      Не проверял, думаю, слушателей 50 потянет спокойно.
      Самая первая радиостанция спокойно работала на Pentium 4 и держала 100 одновременных слушателей при таком же битрейте в 256 kbps, хотя сейчас точно не помню, возможно что было даже 320. Правда там поток от mpd отдавался SHOUTcast, который и занимался вещанием, в то время mpd сам не умел вещать поток, а просто отдавал его на вход вещающему софту.
      Мне кажется, что проц в Orange Pi должен быть производительнее, чем Pentium 4.


      1. kovserg
        15.10.2018 00:58

        вобще-то есть multicast который обычно применяется в таких случаях.


  1. Dimko1994
    14.10.2018 21:36
    +1

    По названию ожидал увидеть в статье информацию о поднятии автономного сетевого SDR приемника…


    1. hzs Автор
      14.10.2018 22:10

      Если вы про приёмник, то такая статья уже 4 года как есть на Хабре: habr.com/post/237859, у меня не приёмник, у меня вещающая интернет станция.
      Хотя, построить цифровую радиостанцию, чтобы её можно было бы ловить цифровыми радиоприёмниками было бы наверное категорически круто, но в этой тебе я вообще дуб.
      Такая радиостанция должна строиться исключительно в железе, ну и там по любому понадобились бы всякие лицензии на вещание, а ради того, чтобы поэкспериментировать, это того не стоило бы.


  1. begemot_sun
    14.10.2018 21:51
    +1

    Я думаю, это вещание на одного юзера — самого себя?
    А если другой подключится, что станет с первым?
    Сколько юзеров вытянет такое железо?


    1. hzs Автор
      14.10.2018 22:18

      Ничего не станет, будет проигрываться музыка и всё.
      Можно даже одновременно запустить несколько проигрывателей на одном устройстве и наслаждаться какофонией звука, когда из-за времени кеширования поток, запущенный следующим, начинает позже воспроизводиться из-за чего возникает рассинхрон и эффект эха.


      1. begemot_sun
        14.10.2018 22:21

        Я имею ввиду что железо слабенькое, поэтому это скорее не радио на тысячи слушателей, а радио на десять всего :) нет?


        1. hzs Автор
          14.10.2018 22:35

          Софт не особо прожорливый, думаю потянет больше 10 слушателей.
          Загрузка системы вообще никакая практически:

          System load:   0.36 0.26 0.17  	Up time:       12:09 hours		
          Memory usage:  10 % of 1000MB 	IP:            192.168.0.90
          CPU temp:      49°C           	
          Usage of /:    17% of 7.1G   


  1. arcman
    14.10.2018 21:55

    Вот на ESP32 это был бы челендж и действительно дешево.


    1. hzs Автор
      14.10.2018 22:29

      Я тут вообще про ESP8266 с mp3 модулем подумал, но до такого разврата мне ещё далеко.


  1. ianzag
    14.10.2018 21:57
    +2

    Статься явно неполная. Вот откуда у меня опай? С алиекспресса. Вот оттуда и нужно было начинать. Рассказать, что такое али. Как искать, как выбирать. Как общаться с продавцом и делать заказ. Как вводить почтовый адрес. Естественно все должно сопровождаться подробными скриншотами. И только потом, главе к седьмой а то и десятой, после подробной распаковки, нужно плавно подходить к установке армбиана.


    1. Klaster
      15.10.2018 04:57
      +1

      Далековато начали. А как попали на али? Откуда у вас интернет? Начать надо с похода к провайдеру и выбора браузера.


    1. 8street
      15.10.2018 11:13
      +1

      С другой стороны, на хабре полно статей "с середины". Иногда читаешь и не можешь понять, о чём вообще написано.


  1. barbos6
    15.10.2018 07:21
    +1

    В статье незаслужено забыто, что первый запуск Armbian достаточно долгий, пару минут — генерятся ключи и ресайзится раздел, чтобы занять весь доступный размер карты памяти. Затем — автоматическая перезагрузка. Только после этого Armbian готов к работе.


    1. hzs Автор
      15.10.2018 07:36

      Старые версии грузились гораздо дольше и были менее отзывчивые, свежая версия мне понравилась, всё работает мухой.
      Тут никакой настройки дисплея и ресайза разделов с перезагрузкой.
      При первом запуске, я полез на роутер посмотреть IP адрес устройства, это буквально 5-10 секунд, IP уже был присвоен, в консоли запустил SSH плюс согласился на генерацию ключей, это ещё секунд 5-10 и сразу консоль устройства.
      За последний год разработчики армбиана очень хорошо потрудились.


  1. ximik33rus
    15.10.2018 09:14

    Зачем такие сложности?
    1. Малинка (апельсинка, банана, что угодно) (OS под нее с оф. сайта)
    2. icecast2,
    3. ices
    4. Плеер для вещания
    5. Расшаривание портов

    Все)

    Лично я использую ноут, win, SHOUTcast и RadioBOSS (удобно из-за джинглов и планировщика) — больше ничего не надо.

    А малинку приспособил под игровую ретро — консоль.


    1. hzs Автор
      15.10.2018 09:17

      Так у меня практически тоже самое по смыслу, только вместо icecast2 и ices используется mpd.
      Я только добавил несколько удобств в виде управления mpd и web морды с подхватом информации об воспроизводимом треке.
      А RPi у меня тоже игровой консолью трудится, на RetroPie.


      1. ximik33rus
        15.10.2018 09:59

        Да, я вижу. Но понять это смог только потому что сам в теме и убил не один час с реализацией подобного у себя.

        За статью спасибо, всегда интересно посмотреть иной путь реализации схожей задачи, но лично для меня Ваш путь показался запутанным.

        А неискушенный пользователь интересующийся данной темой просто закроет статью со словами «Ну Нафиг!» ))
        А вдруг он бы принес в мир исключительно уникальное интернет-радио, аналогов которого не существует? ))))


        1. hzs Автор
          15.10.2018 10:16

          Неискушенный пользователь может просто вещать из своего Winamp или VLC :0))


          1. ximik33rus
            15.10.2018 10:34

            Ну мы же оба знаем, что этого не достаточно)


            1. hzs Автор
              15.10.2018 10:42

              Ну не все же такие извращенцы как мы :0))


  1. arthi7471
    15.10.2018 12:02

    Отето огород вы нагородили. Айскаст и айсис разворачиваются за пару минут. Если хочется покруче то есть mixxx который являет собой страшный комбайн который умеет все и еще немножко.


    1. dlinyj
      15.10.2018 12:30

      Это просто старая школа


  1. dlinyj
    15.10.2018 12:30

    Надеялся увидеть что-то новое.


  1. Kenoby
    15.10.2018 15:54

    Я боюсь ошибиться, но разве нельзя сделать тоже самое штатными средствами VLC?


    1. hzs Автор
      15.10.2018 15:55

      Можно, почему бы и нет?


  1. CKOPOCTb
    16.10.2018 04:55

    Сколько ресурсов потребляет? Можно же еще чего-то прикрутить.


  1. hzs Автор
    16.10.2018 04:57

    Да ничего почти не потребляет.

    System load:   0.56 0.18 0.04  	Up time:       1 day		
    Memory usage:  9 % of 1000MB 	IP:            192.168.0.90
    CPU temp:      47°C           	
    Usage of /:    17% of 7.1G 

    А что ещё предлагаете прикрутить?


    1. Javian
      16.10.2018 18:48

      PiAware. Сожрет четверть ресурсов :)
      image


  1. Machine79
    16.10.2018 14:17

    Добавил в закладки буду экспериментировать ))) Спасибо Автор!


    1. hzs Автор
      16.10.2018 14:22
      +1

      Если пост сподвиг хотя бы одного человека на эксперименты, значит моя задача была выполнена.
      В комментах ещё был вариант заменить mpd на icecast2 + ices, думаю, это тоже интересно, но тогда чем ими управлять я не в курсе.