Создание онлайн радио с автодиджеем на выделенном сервере (VDS) с Icecast. Пошаговая инструкция 2017 года! Часть 1

Данная статья стала результатом нескольких недель размышлений, поиска и кропотливой работы. До этого для интернет вещания я 3 года использовал исключительно специализированные радиохостинги. Теперь же вполне закономерно заинтересовался вопросом, как бесплатно создать интернет радио на выделенном сервере. Преимущества такого рода размещения, как мне кажется, очевидны:

  • Дешевизна. VDS - это самый доступный способ создать стабильно работающее онлайн радио.
  • Неограниченное число радиостанций и/или ретрансляций.
  • Возможность на том же сервере разместить свои сайты и при необходимости треки для скачивания.
  • Стимул самому разобраться, как устроено интернет радиовещание.
  • Ощущение собственного, более профессионального и эксклюзивного проекта.

Когда я на протяжении нескольких недель осваивал радиовещание на выделенном сервере, мне ой как не хватало такого пошагового и чёткого описания. Что и как надо сделать, что сработает, а что нет, как выбрать сервер, какое ПО лучше взять - все эти вопросы буквально не давали мне спать. На многие из них ответы я нашёл только в англоязычном интернете. Особенно отмечу, что актуальной информации на эту тему сейчас очень мало - рецепты в статьях, написанных несколько лет назад, часто уже не работают, а о новых разработках почти ничего неизвестно. Этот гайд я постарался написать как можно более подробно - для таких же «чайников», как я сам, которые заинтересовались переходом со специализированных радиохостингов на более дешёвый выделенный сервер.

Создание онлайн радио с автодиджеем на выделенном сервере (VDS). Пошаговая инструкция

Очень много статей в рунете посвящено нахваливанию «эксклюзивной» и бесплатной для одного радиопотока российской платформы RadioCMS. Признаюсь, пытаясь разобраться с ней, я потерял просто уйму времени. Занимался с ней сутками напролёт, потом бросал, затем снова начинал всё сначал. На форумах хостинг-провайдеров этой RadioCMS посвящено множество вопросов и, читая их, понимаешь, как много людей «сломали зубы» об эту платформу. В итоге, я всё-таки махнул на неё рукой. Последней каплей стало известие о том, что этот якобы супер комбайн оказываается даже не умеет смешивать треки (делать кроссфейдинг). Я не утверждаю, что данная платформа чем-то плоха, так как сам не использовал её, однако я знаю одно: установить её без специальных знаний или найма профессионала на свой виртуальный хостинг для меня оказалось нереально. К тому же, насколько я понял, активная разработка RadioCMS уже несколько лет как прекращена. Теперь продукт просто поддерживается на плаву и, возможно, уже морально устарел. При этом инструкции разработчиков сложно назвать понятными и доступными для таких нубов, как я.

Сравнение специализированных радиохостингов и выделенного сервера

Самый дешёвый VDS (выделенный сервер), который я нашёл (судя по отзывам и по моим пока первым впечатлениям, очень даже неплохой) стоит всего 249 рублей в месяц. Если сравнить с самым недорогим специализированным радиохостингом, то этот самый доступный по деньгам выделенный сервер предоставляет существенно более широкие возможности. При этом стоит он всего на 100 рублей дороже. Самый дешёвый радиохостинг - это Ru-Hoster за 150 рублей. О нём у меня есть отдельная статья. Он очень мне нравится и работает невероятно стабильно. Именно поэтому я по-прежнему размещаю там три свои самые важные радиостанции. Однако я продолжаю активно искать и изучать различные другие варианты организации онлайн радиостанций. В этой связи хочу заметить, что параметры даже самого дешёвого радиохостинга за 150 рублей заметно отличаются в худшую сторону от того, что можно предложить сопоставимый по цене выделенный сервер. И дело даже не в том, что лучше, а что хуже, а что для чего предназначено, и где какие возможности. Так вот, VDS и VPS дают гораздо больше возможностей для самостоятельности и творчества.

Сравним, что у нас имеется в том и другом случае и сделаем (каждый свои) выводы.

Ежемесячная стоимость

Самый дешёвый специализированный радиохостинг (компания Ru-Hoster) стоит 150 рублей в месяц. Выделенный сервер на FirstVDS - 249 рублей. 

Пространство для хранения (автодиджея)

За 150 рублей у Ru-Hoster мы получаем 10 Гб места для автодиджея. Это просто царский подарок по сравнению с другими специализированными радиохостингами. Но выделенный сервер и его легко обгоняет: на FirstVDS по минимальному тарифу мы получаем 30 Гб. 30 Гб на VDS против 10 на обычном радиохостинге.

Максимальное число слушателей (слотов)

На радиохостингах от числа слушателей цена зависит очень сильно. Самый дешёвый вариант - это 50 слотов за 150 рублей у всё того же Ru-Hostera (другие радиохостинги в пример не привожу НЕ потому, что имею к ним какие-то предубеждения - просто у них всё несравненно дороже). На выделенном сервере FirstVDS мы получаем не ограниченный по объёму трафик. Единственное, что его ограничивает - это скорость: до 100 Мб в секунду. А это почти 800 слушателей одновременно при битрейте потока 128Кбит/с и около 400 при 256 Кбит/с. Получается 50 на самом доступном специализированном радиохостинге против минимум 400 на VDS. Разница в 8 раз!

Максимальный битрейт (качество вещания)

Опять же у Ru-Hoster этот показатель за минимальную цену - самый высокий среди конкурентов: 256Кбит/с. Однако даже он не может сравниться с аналогичным на выделенном сервере. Здесь можно транслировать поток в любом качестве. Как известно, для MP3 потолок - это 320Кбит/с.

Возможность разместить уникальный сайт

Радиохостинг от Ru-Hoster предполагает существование стартовой страницы для радио. Сотрудники этой хостинг компании сделали её намного более привлекательной, чем в стандартной версии от Centova Cast. Но, к сожалению, свой собственный уникальный сайт (хотя бы и созданный в конструкторе) разместить тут не удастся, а вот на VDS разместить сайтов можно сколько угодно. Кстати, и цены на покупку доменов тут одни из самых доступных в рунете - об этом чуть ниже.

Панель управления автодиджеем

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

Приведу другие параметры тарифного плана Старт от FirstVDS, на котором я пошагово буду демонстрировать создание собственного радио с автодиджеем на выделенном сервере:

Неограниченный трафик на скорости до 100Мб/с,

  • 1 Гб оперативной памяти,
  • 1 ядро процессора,
  • 1 бесплатный IP адрес (дополнительные - по 67,5 руб),
  • Полный доступ по SSH,
  • Несколько ОС на выбор.

Что касается размещения собственного сайта для радио на своём же выделенном сервере, то цена аренды доменного имени (адреса сайта) на FirstVDS настолько же привлекательна, как и на их хостинг - всего 150 рублей в первый и (что важнее) последующие годы за домен в зоне ru. Если честно, я таких цен не видел давно и всерьёз теперь подумываю перенести сюда свои домены. Единственное, что меня пока останавливает - это замороченность самой процедуры передачи от одного регистратора к другому.

Шаг 1: Аренда виртуального выделенного сервера (VDS) для организации радиовещания

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

Поскольку я обещал вам пошаговую инструкцию, то начну описывать весь процесс с самого первого шага - заказа виртуального выделенного сервера. Все произведённый мной действия производились на хостинге компании FirstVDS. Там всё устанавливалось именно так, как я описываю. Для избежания лишних сложностей я рекомендую вам заказать выделенный сервер (VDS, VPS) именно у этой компании. Судя по отзывам, они предлагают самый доступный по цене в России виртуальный выделенный сервер. При этом качество его работы намного превосходит стоимость. К тому же, 249 рублей за месяц - вполне комфортная даже для экспериментов сумма. Не понравится - всегда можно отказаться и найти другой выделенный сервер (VDS или VPS). 

Если вам сразу же нужен выделенный сервер премиум качества и мега-стабильности, то рекомендую обратить внимание на предложение компании McHost - лидера российского хостинг рынка. Цена на минимальный пакет VPS хостинга (тариф VZ-1) там, разумеется, значительно выше, чем у бюджетного FirstVDS  - 999 рублей в месяц. Но и параметры железа лучше, и стабильность работы просто непревзойдённая. Говорю это на собственном опыте - там я уже два года размещаю свои сайты.

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

Итак, переходим на их сайт и начинаем регистрацию.

VDS для радио на FirstVDS

Регистрация здесь невероятно упрощена. Надо просто ввести адрес своей электронной почты, пароль и свои имя с фамилией. Очень рекомендую сразу использовать свои настоящие имя и фамилию, так как некоторые сервисы (например, покупка и продление доменных имён) по закону доступны только при предъявлении сканкопии паспорта владельца аккаунта. Впрочем, принципиального значения для создания онлайн радио на выделенном сервере это не имеет.

Регистрация на FirstVDS

Сразу после этой простой регистрации вы тут же окажетесь в биллинге (панели управления хостингом).

Заказ выделенного сервера для онлайн радио с автодиджеем. Пошаговая инструкция

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

После этого переходим во вкладку «Товары» - «Виртуальные серверы» в левой колонке биллинга. Наверху выбираем пункт «Заказать».

Заказ выделенного сервера для онлайн радио с автодиджеем. Пошаговая инструкция

На этом этапе мы выбираем для заказа второй в списке виртуальный сервер «VDZ-KVM-Старт» (все картинки в статье можно увеличить, если нажать на них правой клавишей мыши и выбрать «Открыть в новой вкладке»). Здесь нас поджидает приятный сюрприз - цена услуги в первый месяц составит на 25% меньше - не 249, а всего 200 рублей. По-моему, очень неплохая и доступная возможность попробовать, подходит ли нам размещение радио на выделенном сервере.

Заказ выделенного сервера для онлайн радио с автодиджеем. Пошаговая инструкция

На картинке видно, что я изначально выбрал тариф VDS-OVZ-Старт за 199 рублей в месяц (в первый - 149 руб). Однако позже выяснилось, что для потокового вещания виртуализацию OVZ, согласно оферте FirstVDS, использовать нельзя. Оно и к лучшему, ведь, по моим наблюдениям, тариф VDZ-KVM-Старт обеспечивает гораздо более стабильную работу онлайн радио.

На следующем шаге мы выбираем параметры для нашего выделенного сервера. Доменное имя указывать необязательно. Для описанного ниже пошагового алгоритма установки онлайн радио на VDS нам нужна операционная система Debian-7 (это один из наиболее популярных дистрибутивов знаменитой бесплатной ОС Linux). В пункте «Предустановленное ПО» выбираем «не установлен». Далее идёт «Лицензия на панель управлени» - «Без лицензии на панель управления». Можно было бы для управления сайтами взять ISP Manager, но со второго месяца он будет стоить 200 рублей. Незачем эти траты, когда для нас эта панель не имеет критичного значения. К тому же, есть её бесплатные аналоги (об этом расскажу потом). Соглашаемся с условиями и переходим в корзину.

Заказ выделенного сервера для онлайн радио с автодиджеем. Пошаговая инструкция

На следующем экране выбираем «Оплатить».

Заказ выделенного сервера для онлайн радио с автодиджеем. Пошаговая инструкция

Затем нам предлагается на выбор несколько способов оплаты: банковский перевод, банковские карты, Яндекс.Деньги, WebMoney WMR и даже оплата через СМС. Кликаем на нужный - «Оплатить». 

Заказ выделенного сервера для онлайн радио с автодиджеем. Пошаговая инструкция

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

Через несколько минут после оплаты в разделе «Виртуальные серверы» биллинга состояние заказа изменится с «Заказан» на «Активен». Обратите внимание, что списание абонентской платы по тарифу происходит ежесуточно. При этом отменить заказ раньше, чем по истечении одного месяца использования услуги не получится - средства на балансе зарезервированы.

Полезная информация: для перезапуска своей виртуальной машины (читай: установленной на ней операционной системы) в биллинге FirstVDS надо перейти в пункт «Товары» - «Виртуальные серверы» и один раз кликнуть на название заказанного выделенного сервера. Затем наверху выбрать пункт «Перейти». В открывшемся окне выбрать пункт «Управление» - «Виртуальные машины», выделить свою vmXXXXXXX и наверху выбрать пункт «Перезапуск». Кстати, именно тут в случае необходимости можно полностью переустановить операционную систему на своём виртуальном выделенном сервере (советую это сделать, если что-то пошло не так и вы решили начать весь процесс создания радио с автодиджеем на VDS заново) или поменять пароль.

Шаг 2: Установка программ для управления выделенным сервером

Прежде, чем перейти к рассказу о двух (даже трёх) программах, которые нам будет необходимо установить к себе на компьютер для управления выделенным сервером и передачи туда наших музыкальных файлов в формате MP3, хочу обратить внимание, что для связи с сервером через стороннее ПО нам потребуется не только логин и пароль, но и IP адрес. Для удобства сразу выпишите их себе - пусть будут перед глазами. Они придут к вам в письме на электронную почту, а также будут доступны в любое время в биллинге FirstVDS. Чтобы уточнить их там, надо зайти во вкладку «Виртуальные серверы» (меню «Товары») и дважды кликнуть на название своей оплаченной услуги. Отсюда для удалённого управления нам потребуется выписать:

  1. IP адрес своего выделенного сервера,
  2. Пароль (тот который указан выше, сразу под доменным именем),
  3. Пользователь для работы через программы будет стандартный - root.

Теперь устанавливаем программы. Сначала PuTTY. Почитать о ней подробнее можно в Википедии, а скачать - на официальном сайте. Если не знаете, какую версию качать, выбирайте 32 бита. 

После этого сразу ставим WinSCP. Статья в Википедии тут, официальный сайт здесь.

Также настоятельно рекомендую скачать и установить редактор Notepad++. Им лучше пользоваться для редактирования файлов вместо стандартного Блокнота.

Шаг 3: Установка серверной программы Icecast

Если радиовещанием в интернете вы увлекаетесь всерьёз, то название бесплатной программы Icecast (айскаст) должно быть вам хорошо знакомо. для тех, кто не в курсе, скажу, что данное ПО производит раздачу цифровых медиапотоков различных форматов: MP3, OGG, AAC и т.д. Icecast - аналог Shoutcast, ныне принадлежащей небезысвестному Radionomy (о создании бесплатного радио на Radionomy я тоже писал). При этом Icecast имеет более широкий функционал (например, умеет передавать сразу несколько разных потоков) и поддерживает больше форматов. Нам платформа Айскаст нужна для того, чтобы передавать сигнал нашего онлайн радио в сеть интернет. Сам поток будет формироваться другим ПО - прежде всего, ezstream.

Соединяемся с выделенным сервером через PuTTY

Чтобы установить серверную программу Icecast на операционную систему Ubuntu 7, надо запустить программу PuTTY и в строке «Host Name (or IP address)» ввести выписанный на прошлом шаге IP адрес своего сервера, а затем нажать «Open».

Соединение с выделенным сервером через программу PuTTY

После этого появляется предупреждение безопасности, на которое мы отвечаем «Да». В появившемся чёрном окне, напоминающем стандартную Командную строку Windows, вводим свой логин - root, нажимаем Enter. Появляется предложение ввести пароль. Вводим. Виден он не будет, но его можно скопировать и вставить правой клавишей мыши - копируем в буфер, а потом просто кликаем правой клавишей в окне PuTTY. Затем опять нажимаем Enter. Если всё было сделано верно, то выглядеть окно станет примерно так:

Соединение с выделенным сервером через программу PuTTY

Установка и настройка Icecast для трансляции онлайн радио на выделенном сервере

Самое первое, что необходимо нам сделать перед установкой серверной программы Icacast - это обновить операционную систему до последней версии. Для этого в терминале последовательно вводим две нижеперечисленные команды. После каждой из них нажимаем Enter и дожидаемся, когда процесс доходит до появления на экране надписи root@ваш_логин:~#.

Обратите внимание, все команды можно вводить только после того, как выполнение предыдущей операции полность. закончилось - на экране появляется root@ваш_логин:~# (собственно, как это выглядит видно на скриншоте выше).  

Итак, для обновления нашей ОС Ubuntu вводим 2 команды:

apt-get update

apt-get upgrade

В процессе установки второго пакета появится вопрос «Do you want to continue [Y/n]?». Для продолжения надо ввести букву y (yes) и нажать Enter.

Далее мы при помощи специальной команды устанавливаем сразу несколько необходимых нам программ (пакет) для нашей операционной системы Debian 7. В их числе уже есть и Icecast. Вводим команду и не забываем после этого нажимать Enter. В процессе установки пакета программ будет вновь задан вопрос. Ответить на него надо нажатием клавиши y (yes) и Enter. Также нам необходимо будет ввести некоторые данные для конфигурации Icecast. В процессе установки появится вопрос «Configure Icecast2?». Отвечаем опять же y + Enter. Затем вводим Icecast hostname (здесь можно ввести адрес вида ваш_логин.fvds.ru - этот адрес есть в биллинге), затем трижды задаём пароли для вещания (можно один и тот же). После этого нужно дождаться полного окончания работы установщика. Итак, команда для ввода на этом шаге:

apt-get install nano gcc make zip openvpn build-essential pkg-config libxml2-dev icecast2 ezstream

Если по каким-то причинам запрос на создание хоста и паролей в процессе установки не появился, то нам надо зайти в конфигурационный файл серверной программы Icecast. Для этого прямо в окне PuTTY вводим команду, вызывающую открытие нужного нам файла в редакторе nano (пробел после команды nano обязателен):

nano /etc/icecast2/icecast.xml

Проверяем, установились ли пароли. Если нет, то вносим соответствующие изменения.

Файл конфигурации Icecast2, открытый в редакторе nano

Затем сохраняем: Ctrl + O (буква О) и Enter. Выходим из редактора nano обратно в «командную строку» при помощи комбинации Ctrl + X.

Теперь необходимо проверить функцию автозапуска Icecast. Набираем в терминале PuTTY:

nano /etc/default/icecast2

И убеждаемся, что внизу файла параметр ENABLE имеет значение true, а не false. Если нет, то меняем его на true, затем сохраняем (CTRL + O) и в любом случае выходим из редактора nano, нажав CTRL + X.

Проверяем, активен ли автозапуск сервера Icecast

Теперь на всякий случай нам надо перезапустить серверную программу Icecast (кстати, команду для этого лучше сразу куда-то выписать - наверняка в будущем она пригодится не раз).

/etc/init.d/icecast2 restart

Если все предыдущие действия были выполнены верно, то вы сможете в любом браузере наблюдать страницу вашего радиосервера Icecast по адресу: ваш_IP_адрес:8000, где 8000 - это стандартный порт потокового вещания Icecast.

Так выглядит домашняя страница сервера Icacast2 в браузере

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

Шаг 4: Установка, настройка и запуск автодиджея на выделенном сервере

Для запуска ezstream нам предстоит вручную установить на наш удалённый сервер 4 пакета нужного программного обеспечения - это библиотеки libogg, libvorbis, libshout и ezstream. Если до этого в самом начале мы ставили необходимые программы одной командой, так как они были в репозитории Debian, то теперь нам надо будет сначала скачать архивы с каждой из них (параметр wget), затем распаковать их (tar xf), открыть папку (cd), сконфигурировать и только затем установить. Именно поэтому для каждого из 4 программных пакетов приводится по 5 последовательных команд для PuTTY.

libogg

wget http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.gz

tar xf libogg-1.3.1.tar.gz

cd libogg*

./configure

make && make install

libvorbis

wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz

tar xf libvorbis-1.3.3.tar.gz

cd libvorbis*

./configure

make && make install

libshout

wget http://downloads.xiph.org/releases/libshout/libshout-2.3.1.tar.gz

tar xf libshout-2.3.1.tar.gz

cd libshout*

./configure

make && make install

ezstream

wget http://downloads.xiph.org/releases/ezstream/ezstream-0.5.6.tar.gz

tar xf ezstream-0.5.6.tar.gz

cd ezstream*

./configure

make && make install

В процессе установки этих пакетов «стартовая строка» (не знаю, как иначе её назвать) root@jeanzzz:~# будет постепенно увеличиваться и это совершенно нормально. Постепенно она достигнет такого вида: root@jeanzzz:~/libogg-1.3.1/libvorbis-1.3.3/libshout-2.3.1/ezstream-0.5.6#. Теперь в ней будут последовательно перечислены все установленные библиотеки. Лучше заново перезапустить программу PuTTY.

Кстати, на всякий случай все эти 4 библиотеки я скачал и сохранил у себя на сайте. Если какая-то из них не будет устанавливаться c сайта xiph.org , то её можно скачать по пути: http://mnogoradio.ru/MYfiles/название_библиотеки.tar.gz

Далее надо создать каталог (папку) для хранения музыкальных файлов для нашего онлайн радио. Предлагаю создать папку mp3 в корневой директории home. Делается это так (cd - открыть папку, mkdir - создать новую):

cd /home

mkdir mp3

cd /home/mp3

Теперь создадим в этой же папке текстовый файл, в котором будет храниться плейлист нашей радиостанции:

nano /home/mp3/playlist.txt

Открывшийся в редакторе nano только что созданный и потому пустой документ мы пока просто сохраняем (CTRL + O и после Enter). Затем выходим из nano (CTRL + X). Если вдруг создать playlist.txt не получается, то мы сможем это легко сделать на следующем этапе - в программе WinSCP.

Загрузка музыки и создание плейлиста

Теперь нам потребуется установленная в самом начале программа WinSCP. Запускаем её. В поле «Имя хоста» вводим IP адрес нашего выделенного сервера, «Имя пользователя» - root. Для удобства сразу сохраняем параметры нашего соединения (Сохранить - ОК). В левой колонке появляется закладка для быстрого соединения с сервером. Выбираем её и нажимаем «Войти», вводим пароль и ОК. Добавлю, что пароль в целях безопасности в программе лучше не сохранять. Сохраните лишь IP адрес и логин, а пароль каждый раз вводите заново.

Соединение с выделенным сервером (VDS) через программу WinSCP

Открывшееся окно очень напоминает проводник Windows. Левая сторона - файловая система компьютера, правая - папки и файлы нашего удалённого виртуального выделенного сервера. Открываем справа хранилище наших музыкальных файлов (папка home, а в ней - mp3) и простым перетаскиванием слева (или прямо из любой открытой папки на компьютере) добавляем туда свои треки. Чтобы выделить все треки, как в левой колонке на картинке, нажимаем CTRL + A (очевидная вроде вещь, но мало ли кто-то не знает).

Добавление треков для автодиджея онлайн радио на удалённом выделенном сервере

558 файлов у меня скопировались с компьютера на удалённый сервер минут за 10-15. Это довольно быстро. Чаще всего этот процесс занимает больше времени. Многое тут зависит от скорости интернета, времени суток и нагруженности сервера.

После этого копируем из папки mp3 на рабочий стол компьютера созданный нами файл playlist.txt. (Если мы видим, что он не создался, то просто создаём его у себя на рабочем столе) В него нам надо будет записать имена файлов всех загруженных нами на сервер музыкальных композиций. Делается это так: открываем файл при помощи блокнота (или лучше Notepad++) и записываем с новой строчки расположение каждого трека. Например,

/home/mp3/song1.mp3

/home/mp3/song2.mp3

/home/mp3/song3.mp3

/home/mp3/song4.mp3

/home/mp3/song5.mp3

Когда я впервые узнал о необходимости составления плейлиста вручную, я чуть было не забросил саму идею создания радио на выделенном сервере. Это ж сколько сил надо потратить!? Однако, стиснув зубы, всё же решил попробовать. И не напрасно. На самом деле теперь я понял, насколько это расширяет возможности работы онлайн радиостанции. Для быстрого запуска радио в плейлист всегда можно просто скинуть названия всех треков подряд (есть способы существенно облегчающие этот процесс - и о них чуть ниже), а затем активировать функцию их случайного воспроизведения. Если же использовать последовательное воспроизведение, то ручное составление плейлиста радиостанции даёт поистине безграничные возможности. Например, можно в свободное время кропотливо составить 5,6,7... (да сколько угодно) разных плейлистов из одних и тех же песен, а затем соединить их в один файл playlis.txt и запустить последовательное воспроизведение с повтором по кругу. Этот способ не только даст возможность самому проконтролировать порядок треков и вставлять джинглы, но и не допустит слишком частого повторения каких-то песен или, наоборот, полного игнорирования (при случайном машинном воспроизведении и то, и другое, к сожалению, не редкость).

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

chcp 1251
echo %date% %time% >filelist.txt
dir /b /d >>filelist.txt

Сохранить этот файл можно с любым именем, но обязательно с расширением bat (например, «name.bat» и тип файла: «Все файлы»). Затем просто надо запустить его. В результате, в папке с MP3 автоматически создастся файл filelist.txt с названиями всех композиций. Всё, что остаётся сделать - это удалить из получившегося списка три строки: дату и названия двух созданных нами файлов, а также добавить к именам треков путь к ним на сервере - это «/home/mp3/» (разумеется, без кавычек). Добавить этот путь опять же проще всего с помощью редактора Notepad++. В нём надо открыть получившийся список файлов и нажать CTRL + F (поиск), перейти во вкладку «Заменить», выбрать внизу расширенный режим поиска вместо обычного. В поле «Найти» вводим \n (символ переноса строки), а в поле «Заменить на» пишем \n/home/mp3/ (перенос строки заменится на перенос строки с нашим путём для файлов). Далее нажимаем «Заменить всё». получаем готовый список музыкальных файлов на нашем выделенном сервере с путями к ним. Подправить будет нужно только первую и последнюю строчку получившегося файла.

Составление плейлиста радио при помощи редактора Notepad++

Ну, прямо не пошаговый гайд по созданию онлайн радио с автодиджеем на выделенном сервере получается, а какая-то энциклопедия по всем попутно возникающим сложностям)) Думаю, найдутся люди, которые окажутся искренне мне благодарными и про себя скажут «Спасибо тебе, дружище!», а это, я-то знаю, многого стоит.

 

Настройка конфигурации ezstream

Почему-то я ещё об этом ни разу не написал, но ezstream - это как раз и есть основное ПО, отвечающее за работу нашего автодиджея. Теперь нам нужно настроить конфигурационный файл этой библиотеки под себя. Сначала мы копируем его в корнеевую папку нашего хостинга. Для этого вводим в PuTTY команду:

cp /usr/share/doc/ezstream/examples/ezstream_mp3.xml /root/ezstream_mp3.xml

Далее мы вновь переходим в программу WinSCP и находим в правой части в корневой папке root файл ezstream_mp3.xml.  В нём записана конфигурация ezstream. Лично у меня он оказался невидимым, но при попытке его туда записать выдал запрос на перезапись.

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

С параметром stream_once я сначала немного запутался, поэтому на картинке исправление: 0 - значит, что плейлист будет воспроизводиться по кругу, 1 - только один раз. Стало быть, для радио оставляем ноль.

Конфигурационный файл ezstream

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

Теперь после того, как мы сконфигурировали наш ezstream, его можно запустить. Для этого надо в PuTTY ввести команду:

ezstream -c /root/ezstream_mp3.xml

Если всё было сделано верно, то по указанному в последнем файле конфигурации адресу начнёт своё вещание наша радиостанция. Вот моя.

Если вы хотите запустить несколько радиостанций, то надо создать несколько папок с музыкой и несколько конфигурационных xml-файлов  в папке root (например, ezstream_mp3.xml и ezstream2_mp3.xml). В каждом из них в параметре filename надо прописать свой путь к папке с музыкой. И каждый из них надо запустить в PuTTY командой ezstream -c/root/имя_конфигурационного_файла.xml.

Если потоков у вас будет больше двух, то изменения нужно внести и в конфигруационный файл Icecast (смотри выше, где он находится): поставить в параметре sourse (он на самом верху) нужное число потоков. По умолчанию их там всего два. После этого не забудьте перезапустить Icecast.

Конечно, хотелось бы ещё, чтобы песни плавно накладывались друг на друга (был кроссфейдинг), но, к сожалению, его невозможно реализовать в ezstream, а с другими вариантами (например, реально устаревшей, но поддерживающей кроссфейдинг библиотекой ices 0.4) я пока не стал разбираться.

Напомню, что в том случае, если вы изменяете какие-либо параметры конфигурационного файла Icacast, то эта серверная программа перезапускается простой командой /etc/init.d/icecast2 restart. Если же изменения производятся в файле настроек ezstream (уже после запуска автодиджея), то тут всё сложнее: единственный вариант перезагрузки конфигурации, который я пока нашёл - это полная остановка ezstream (хорошо, что не перезапуск всего сервера).

killall ezstream

После этого надо заново стартовать файл конфигурации командой вида ezstream -c /root/ezstream_mp3.xml. Если потоков несколько, то перезапустить надо конфигурацию каждого.

Как заставить ezstream перечитать конфигурацию на лету, я не знаю. Предполагаю, что это невозможно. Но буду рад, если кто-то меня поправит и скажет, что это нет.

Хорошо было бы прописать xml-файлы конфигурации ezstream, как и Icecast, в автозапуск. Это помогло бы радиостанции автоматически стартовать после внезапной остановки сервера. И я точно знаю, что это можно сделать. Но как именно, я пока понять не смог. Я даже нашёл наиболее вероятный вариант решения этого вопроса на одном англоязычном сайте, но пока никак не могу разобраться в нём. Есть и другой вариант: в файл /etc/rc.local перед exit добавить ezstream -c /root/ezstream_mp3.xml >/dev/null 2>/dev/null & Но он тоже у меня не срабатывает. Буду благодарен читателям за помощь. В идеале хотелось бы получить решение, позволяющее при перезагрузке виртуальной машины запускать автоматом (без ручного ввода команд) не только Icecast, но и сами радиопотоки, формируемые ezstream.

P.S.: Всё-таки разобрался, как организовать автозапуск конфиграционных файлов с расширением config. Описал этот процесс в самом конце своей следующей статьи «Радио на VDS с автодиджеем, кроссфейдингом и джинглами. Пошаговая инструкция 2017 года! Часть 2».

Есть команда, которая позволяет перечитать изменённые плейлисты «на лету», не останавливая и не перезапуская ezstream. Перезапуск плейлиста начинается со следующей песни. При этом, если включено последовательное воспроизведение, будет произведена попытка найти в новом листе предыдущий трек (звучавший во время перезапуска) и продолжить воспроизведение из следующего за ним. Если этот трек не будет найден в новом листе, то воспроизведение будет начато с самого начала.

killall -HUP ezstream

Ещё одна команда позволяет мгновенно перейти к следующему треку. Недостаток только в том, что, если у вас несколько станций, переход к следующему треку произойдёт на всех них.

killall -USR1 ezstream

Прямой эфир радио на выделенном сервере

Этот пункт инструкции я сам пока не тестировал, так как прямые эфиры не веду. Даю найденную мной информацию как есть. Если очень надо, разбирайтесь с этим пока сами. Итак, помимо автодиджея при помощи Icecast и ezstream можно организовать онлайн радиовещание с собственного компьютера (например, через программы SAM Broadcaster или RadioBoss). При этом когда сигнал от вас идти не будет, то на потоке начнёт работу ваш же автодиджей.

Прежде всего нужно открыть конфигурационный файл сервера Icecast. Напомню, он находится по пути: /etc/icecast2/icecast.xml. В этом файле надо найти фрагмент:

<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>0</on-demand>

<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
-->

После него нужно добавить:

<mount>
<mount-name>/autodj</mount-name>
<password>password</password>
<max-listeners>500</max-listeners>
<max-listener-duration>3600</max-listener-duration>
<dump-file>/tmp/dump-live.mp3</dump-file>
<intro></intro>
<charset>ISO8859-1</charset>
<public>1</public>
<stream-name>Radio</stream-name>
<stream-description> Radio</stream-description>
<stream-url>http://ip:8000/autodj.mp3.m3u</stream-url>
<genre>Top40</genre>
<bitrate>64</bitrate>
<type>application/mp3</type>
<subtype>mp3</subtype>
<burst-size>65536</burst-size>
<mp3-metadata-interval>4096</mp3-metadata-interval>
</mount>
<mount>
<mount-name>/live</mount-name>
<password>password</password>
<max-listeners>500</max-listeners>
<max-listener-duration>3600</max-listener-duration>
<dump-file>/tmp/dump-live.mp3</dump-file>
<intro></intro>
<fallback-mount>/autodj</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<charset>ISO8859-1</charset>
<public>1</public>
<stream-name>Your Radio Name</stream-name>
<stream-description>Radio</stream-description>
<stream-url>http://ip:8000/live.mp3.m3u</stream-url>
<genre>Top40</genre>
<bitrate>64</bitrate>
<type>application/mp3</type>
<subtype>mp3</subtype>
<burst-size>65536</burst-size>
<mp3-metadata-interval>4096</mp3-metadata-interval>
</mount>

При такой настройке автодиджей должен работать на фоллбэке станции всё время, когда нет соединения с программой вещателем. Если кто-то разберётся подробнее, буду благодарен (и не я один) за дополнение этого гайда.

Всем спасибо за внимание и удачи! Не стесняйтесь комментировать статью и задавать вопросы.

После написания этого материала я несколько дней продолжал эксперименты с созданием радио на выделенном сервере и, в результате, разобрался с ещё одним вариантом запуска онлайн радиостанции с автодиджеем. Уже в связке Icecast2 + Ices 0.4 (модификация от создателей знаменитой панели управления Centova Cast). В этом варианте не только реализован кроссфейдинг, но и возможно добавление джинглов между заданным количеством треков. Этот способ создания своего радио на выделенном сервере показался мне чуть более простым и функциональным, чем ezstrem. Продолжение тут.
 

Поделиться страницей в соцсетях:

Хотите создать собственное музыкальное онлайн радио? Легко!