VosCast — Internet Radio Hosting

VosCast - Internet Radio Hosting Хостинг

Change the root password

passwd root

Enter your existing password (from the Vultr Server Details screen), and your new password twice. Press ‘Enter’ after each time you enter a password.

Further icecast configuration

All this configuration is stored in an XML file. To open up an editor, type the following and press enter:

nano /etc/icecast2/icecast.xml

This opens up a simple text editor called ‘Nano’. Use your arrow keys to navigate around the document, and Ctrl X to exit (if you make changes, it asks you if you wish to save – type ‘Y’ and press enter again).

Full Icecast.xml documentation is available on the Icecast website.

Icecast connect

Сервис Icecast Connect позволяет интегрировать любое студийное ПО с платформой RadioToolkit.Как работает:• 1. В платформе создается Точка монтирования• 2. Студийный сервер отправляет аудиопоток по протоколу Icecast• 3. Точка монтирования становится доступна в сервисах платформы как источник данных

Install icecast

apt-get install icecast2

Again, this It will ask you to confirm the installation, so enter the letter ‘Y’ and press enter.

Part way through the installation process, you’ll be prompted to step through an installation wizard.

For some reason, it came up a bit garbled on my computer screen, but it still works just the same.

Using the wizard is simple – use the arrow keys to select between Yes/No, Enter to go to the next screen, and your keyboard to fill out the answers.

This process will ask for your server name (DNS address you entered in the Vultr console), and for some new passwords. Take note of these passwords, as you’ll need them later.

Part 1: selecting a vps web host

The first step is to find a web host capable of hosting Icecast. Thankfully, there’s countless web hosts out there perfectly capable of hosting a simple Icecast server. What we’re looking for is someone who can provide us with a ‘VPS’ (Virtual Private Server), or VM (Virtual Machine).

You could go with AWS, Azure, Google Cloud, OVH, Linode… literally any of the thousands of VPS providers out there. My personal preference is Digital Ocean and Vultr. Why? These two companies provide reliable services in a variety of locations, with a generous quantity of included bandwidth. They also have excellent support, and easy to use control panels.

Many of the ‘top tier’ providers (AWS, Azure, and Google Cloud) charge through the roof for bandwidth, making this an increasingly cost prohibitive exercise if your stream becomes popular.

At the time of writing, here are some of the appropriate Icecast hosting plans from Digital Ocean and Vultr:

CompanyMonthly Bandwidth AllowanceCPURAMPrice Per Month
Vultr500GB1 vCPU512MBUS$3.50
Vultr1TB1 vCPU1GBUS$5
Digital Ocean1TB1 vCPU1GBUS$5
Vultr2TB1 vCPU2GBUS$10
Digital Ocean2TB1 vCPU2GBUS$10
Digital Ocean3TB1 vCPU3GBUS$15
Vultr3TB2 vCPU4GBUS$20
Digital Ocean4TB2vCPU4GBUS$20

After you reach US$20/month with each of these providers, the bandwidth does not scale at the same rate. If you need additional bandwidth, it’s better to create a Round-Robin DNS setup with multiple Icecast servers than simply increasing the specs on one single server.

Icecast scales very well, even with modest system specifications. You can take a look at some historic load testing data, and see that they achieved 14,000 simultaneous listeners on a Dell Poweredge 1850 (2005 era hardware) with a single Xeon processor.

In this test, it did not exceed 25% CPU usage. Assuming a 64Kbps stream, this number of listeners would almost saturate a 1Gbps link. While I wouldn’t recommend attempting this number of simultaneous listeners on one of these VPS servers listed above, you can comfortably achieve hundreds of simultaneous listeners on one of these servers – the available bandwidth being the main limiting factor.

To work out how much bandwidth you need, determine the bandwidth of your stream (e.g. 64Kbps) and the maximum number of concurrent listeners you expect to have at any one time. You can then enter this into Google to get an approximation of your monthly bandwidth needs:

Part 2: creating a vps

Once you’ve selected your provider and signed up for an account with then, it’s time to create a server. For this part of the guide, I’m going to use Vultr’s control panel. Other providers should look similar.

In the ‘Server’ section of the control panel, click the big blue plus icon in the top right.

Next, we need to configure our new server and create it.

  1. Select the location for your VPS. Icecast isn’t very latency sensitive, but it’s still best practice to locate your server closest to your listeners. Thankfully for me, Vultr have a Sydney datacentre (Digital Ocean do not).
  2. Select the latest version of Ubuntu, which at the time of writing is ‘Ubuntu 18.04 x64’
  3. Select your plan – because I’m not expecting many listeners, I selected the US$3.50/month plan.
  4. You may wish to enable auto backups and IPv6. Private Network isn’t necessary for this setup, and DDoS Protection sadly isn’t available in Sydney.
  5. Ignore the ‘Startup Script’, ‘SSH Keys’ and ‘Firewall Group’ sections
  6. Enter the DNS hostname you wish to use for your server. This doesn’t create a DNS entry, but does configure Reverse DNS. You’ll need to configure DNS with your existing DNS provider.

Once you’re happy with your selection, press ‘Deploy Now’!

Your VPS will now be created. While your VPS is still being setup, you’ll see this in the Vultr console:

Once setup has finished, you’ll get an email with important details such as the IP address.

Part 3: setup and configure icecast

Now that we have a server, it’s time to jump in and configure it for Icecast. In the Vultr console, click on the three little dots next to the server, then click ‘View Console’.

This opens up a nice little popup window, which is the command-line console for your new server.

Back in the main window, click on ‘Server Details’ and find the ‘Root Password’ on that screen.

Part 4: configure your streaming audio encoder

Icecast now works! Now we need to send some live audio to it.

Part 5: followup configuration

There is much more you can do with Icecast. Check out the full documentation. For example, you can relay streams from other servers or setup a mount with a specific password (useful if you’re sharing your server with someone else).

Here are some other articles I’ve written about Icecast:

Restart icecast

Whenever you change Icecast.xml, you need to restart the service with the following command:

service icecast2 restart

Alternatively, you can just reboot the server:

reboot

Run updates

apt-get update && apt-get upgrade

This command will all software on your server that needs to be upgraded. It will ask you to confirm the upgrade, so type the letter ‘Y’ and press enter.

You may need to reboot afterwards. In this case, type this command and press enter:

reboot

Set the timezone

dpkg-reconfigure tzdata

Use your arrow keys to select your region and city. Press enter to make a selection.

Test icecast

Now, Icecast should be installed and active! In a web browser on your desktop computer, go to the IP address of your Icecast Server (again, found in the Vultr Server Details Screen). It should look a bit like this:

Troubleshooting

If you have trouble getting Icecast to start, try the following options.

View the Error Log with this command:

tail /var/log/icecast2/error.log

Verify the configuration with this command:

icecast2 -c /etc/icecast2/icecast.xml

Voscast — internet radio hosting

Какую нагрузку может выдержать сервер?

На текущий момент мы без особых усилий готовы принять до 10 тысяч слушателей без оптимизации нашей сети на общий сервер. В случае, если у радиостанции большое количество слушателей и требуется обеспечить максимальную надежность и отказоустойчивость вещания, мы разработали тариф «Выделенный сервер», который подразумевает трансляцию Вашей аудио программы на неограниченное количество слушателей через Интернет.

Надежный хостинг

Радио хостинг позволяет создать своё радио в Интернете за считанные минуты. Услуга будет полезна для начинающих радио любителей, которым хочется создать свой канал с любимыми треками, для профессиональных FM радиостанций и для тех, кто хочет транслировать фоновую музыку в своем заведении — будь то кафе, спортзал или даже целый торговый комплекс.

Компания «Радио-ФМ» предлагает надежный хостинг! Мы предоставляем IceCast хостинг, масшрабируемый от 10 до 50 000 слушателей. Мощность вещания можно наращивать и ослаблять в зависимости от нагрузки в любой момент.

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

Стоимость услуг: Никаких сложных тарифов. Просто 50 копеек за 1 слушателя.

Ретрансляции

Ретрансляции эфира позволяют станции масштабироваться при росте аудитории и поддерживать качество вещания.Как работает:• 1. Платформа получает данные от источника вещания• 2. Вещание распределяется по агентам ретрансляции• 3. Слушатели получают автоматически балансируемый m3u файл

• Источником трансляции может выступать AutoDj• Поддерживается: mp3, aac, ogg

Горячее масштабирование• При резком росте нагрузки у Вас есть возможность в течение нескольких минут увеличить мощность станции, создав еще несколько ретрансляций

Отказоустойчивость• Агенты ретрансляции размещаются в нескольких ЦОД.• Ретрансляции ведутся с множества независимых серверов.• Все сервера находятся под круглосуточным наблюдением.

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

Своё интернет-радио с icecast — статьи по linux и open source )

Описание конфигурации сервера для интернет-вещания радио с помощью свободного решения Icecast и клиента-источника IceS.

Примечание: эта статья была впервые опубликована в электронном издании «Open Source» от журнала «Системный администратор» и размещена на shhost.ru по согласованию с редакцией.

Предисловие

Время от времени у меня возникала мысль сделать свой домашний сервер. Однако отсутствие знаний по этому вопросу и лень гасили мысль на корню, как сильный ветер разбрасывает красные угли догорающего костра… Несмотря на эту лирику, в конце прошлого года я созрел и собрал такой сервер. Получилось относительно дешево и сердито: материнская плата со встроенным процессором AMD E450 и покамест 4 Гб RAM. Мне этого хватает: адронный коллайдер не запускаю.

Освоив решение типовых задач администратора (Apache, различные веб-движки и т.п.), я решил пойти дальше. Возникло желание транслировать в сеть свою музыку…

Знакомство с Icecast

Мой выбор пал на сервер потокового звука Icecast (www.icecast.org). У него есть конкурент — проприетарный SHOUTCast, разработанный в Nullsoft и ныне принадлежащий AOL. Судя по всему, разработка Icecast началась на год раньше, чем SHOUTCast. При этом Icecast «вещает» потоки Vorbis и Theora по протоколу HTTP, а MP3, AAC и NSV — по протоколу SHOUTcast. Для прослушивания интернет-радио пользователю нужен мультимедийный проигрыватель, поддерживающий его, — например, VLC, Mplayer, Audacious или Winamp. Пользователь получает от вас (т.е. от сайта, где вы разместите ссылку, или из особого каталога каналов интернет-радио) список песен в формате M3U, но этот список не совсем обычный: загружая его в свой плеер, пользователь будет слышать то, что транслируется вашим сервером в настоящий момент.

А как это выглядит с серверной стороны? Здесь требуется связка из непосредственно сервера Icecast и так называемого клиента-источника (source client). Последний поставляет для Icecast звуковой поток. Клиентом может быть как программа, считывающая звук с микрофона, так и проигрыватель вроде mpd (или даже Winamp с особым плагином).

В статье я рассмотрю простейший пример, как добиться трансляции в сеть песен из списка на сервере. В качестве клиента-источника выбран IceS (http://www.icecast.org/ices.php), поскольку его быстрее всего настроить. Обычно в дистрибутивах так и делают сборку пакетов: Icecast и к нему в довесок IceS. IceS умеет воспроизводить звук со входа звуковой карты, а также файлы Ogg Vorbis. IceS старой версии поддерживал еще и MP3, но теперь перестал, по идеологическим причинам.

Настройка: Icecast

Перед непосредственной настройкой обращу внимание на один нюанс в сетевой конфигурации. Как и любой сервер, Icecast «слушает» запросы, поступающие в определенный порт (порт по умолчанию для Icecast — 8000). Если ваш «железный» сервер работает за [домашним] роутером и у вас несколько компьютеров (сервер является лишь одним из них), то надо «объяснить» роутеру, на какой из компьютеров передавать запросы, поступающие на порт 8000. Это называется пробросом портов, и в разных роутерах настраивается по-разному. В моем TP Link он задается в разделе Forwarding -> Virtual Servers, а в роутерах D-Link эти настройки ищите в Advanced -> Port Forwarding. Собственно, в них необходимо поставить в соответствие порту 8000 внутренний IP-адрес вашего серверного компьютера (например, 192.168.0.100). Если же IP-адреса ваших домашних машин «скачут» (раздаются через DHCP), их можно жестко «забить» в соответствующих настройках роутера DHCP (обычно это называется «Address Reservation»), привязав MAC-адреса к внутрисетевым IP. В общем, надо сделать так, чтобы внутренний IP-адрес сервера не менялся, и на этот адрес сделать проброс порта 8000.

Теперь о настройке Icecast и IceS. Сами приложения есть в репозитории любого популярного Linux-дистрибутива, BSD-системы и т.п. Существует и версия Icecast под Windows. Сборка из исходников также не составит труда: никаких экзотических зависимостей нет. И сервер, и клиент-источник управляются через конфигурационные файлы в формате XML, которые надо указать в командной строке при запуске Icecast и IceS. При установке из пакетов эти конфиги обычно помещаются в /etc, а при установке из исходника — где вы сами укажете. И в «пакетном» варианте, и в исходниках, в составе Icecast и IceS идет набор конфигов-примеров, которые можно (и даже нужно) брать в качестве основы для своего конфига.

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

Поскольку файлы конфигурации могут иметь произвольные названия, далее в статье буду использовать icecast.xml в качестве имени файла с настройками Icecast, а ices.xml — для Ices. Соответственно, команды запуска служб будут выглядеть примерно так (требуются права root):

# icecast -c icecast.xml
# ices ices.xml

Начнем с Icecast. После его успешного запуска вы сможете зайти в веб-браузере на страницу http://localhost:8000/ (или http://ваш_домен:8000/, чтобы проверить, что сервер видно извне).

Чтобы не загромождать статью «лишним» содержимым icecast.xml, приведу только фрагменты с важными (изменёнными) параметрами — остальные значения останутся по умолчанию. В случае сборки из исходника готовый к правке шаблон файла настроек можно найти в каталоге conf (icecast.xml.in), а при установке из пакета можно сразу редактировать /etc/icecast.xml (другие шаблоны будут находиться в /usr/share/icecast/doc/). Впрочем, в некоторых дистрибутивах Linux пути могут отличаться.

Конфиг представляет собой обычный XML, включающий в себя вложенные блоки настроек. Здесь действует привычное правило, что более точные настройки (т.е. с большим вложенным уровнем) имеют приоритет. Это позволяет определять глобальные настройки и одновременно задавать «локальные» правила для отдельных случаев.

Параметры вроде webroot, adminroot я не трогал. Они понадобятся, если вы захотите изменить веб-интерфейс Icecaset по умолчанию и подобные вещи. То же самое относится к разделу paths в целом: здесь можно ничего не трогать, если вам это осознанно не нужно. За пароли отвечают параметры раздела authentication:

Другие важные параметры:

А следующая ниже конструкция определяет, по какому порту идут запросы:

<listen-socket>
 <port>8000</port>
</listen-socket>

Кому-то может понадобиться избавление от комментария с такого раздела:

<directory>
  <yp-url-timeout>15</yp-url-timeout>
  <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>

YP означает «желтые страницы» (Yellow Pages). Если этот раздел представлен (и не закомментирован), то ваша радиостанция с динамически обновляемыми сведениями о воспроизводимых песнях будет автоматически попадать в публичный каталог Icecast-радиостанций на http://dir.xiph.org/index.php.

Вот и всё, для базовой настройки больше ничего настраивать не потребуется (конечно, если вы используете файл-шаблон, где всё остальное уже прописано). Запуск сервера:

# icecast -c путь_к_icecast.xml

Самое время зайти на него из веб-браузера: напомню, что из сети это можно сделать переходом по адресу http://вашдомен:8000/. Если всё в порядке, то откроется веб-интерфейс, от которого покамест мало проку — разве что можно убедиться в работоспособности сервера, который еще ничего не транслирует.

Настройка: IceS

Теперь надо настроить клиент-источник — IceS. Для начала создадим файл M3U со списком песен. Это будет просто текстовый файл с полными именами файлов. В его создании поможет команда:

$ find $(pwd) -name *.ogg > playlist.m3u

В ней результаты поиска (всех файлов текущего каталога с расширением .ogg) запишутся в playlist.m3u, который будет использоваться в IceS.

Можно редактировать файл настроек Ices (ices.xml). В нем есть основная секция stream, где параметр Reencode лучше установить в 0 — иначе Ices будет пытаться перекодировать всю музыку в другие параметры сжатия. Он также будет пытаться сделать это, если не закомментировать весь раздел encode. Лучше сразу пресечь это, чтобы потом не удивляться, почему так загружается процессор в top.

Чтобы поток попал в каталог YP, на уровне раздела stream добавляем:

<public>1</public>

Там же надо прописать раздел metadata. Хотя в документации сказано, что он пока не используется, исходники шагнули вперед: данные из metadata передаются в Yellow Pages и отображаются там. Раздел будет выглядеть так:

 
<metadata>
  <name>Название вашей радиостанции</name>
  <genre>жанры, разделенные запятыми</genre>
  <description>Описание радиостанции</description>
  <url>адрес сайта, если он есть</url>
</metadata>

Теперь подключим список песен:

<input>
  <module>playlist</module>
  <param name="type">basic</param>
  <param name="file">полный путь к вашему m3u-файлу</param>
  <param name="random">0</param>
  <param name="restart-after-reread">0</param>
  <param name="once">0</param>
</input>

Несколько комментариев:

Плейлист готов. Пропишем параметры подключения к Ices, в разделе instance.

<instance>
  <hostname>доменное имя или IP, которое вы прописали в hostname в настройках Icecast</hostname>
  <port>8000</port>
  <password>пароль клиентского доступа, прописанный в настройках Icecast (по умолчанию hackme)</password>
  <mount>/music.ogg</mount>
  <public>1</public>
  <yp>1</yp>
</instance>  

И здесь public выставлен в 1, что называется, «для верности». Для меня осталось тайной, в каких версиях Ices эти параметры дублируют друг друга, а в каких — устарели. Возможно, public на уровне stream и не нужен, если включен на уровне instance.

Важный параметр mount задает название точки подключения (монтирования) для потока. Поток будет связан с этой точкой подключения. Может быть несколько потоков — несколько точек подключения. Воспринимайте потоки как каналы. У вас может быть несколько каналов (например, по одному вы включаете только рок-музыку, а по другому — рэп), и в рамках потока описываете точку подключения. В примере указана единственная точка монтирования (/music.ogg): она участвует в формировании адреса ссылки для M3U-файла, который генерируется сервером и предоставляется пользователю для скачивания. Ссылка будет иметь такой вид: http://ваш-домен:8000/music.ogg.m3u.

На этом настройка завершена. Запускаем Ices:

# ices ices.xml

И заходим на веб-страницу радиостанции. На ней должен появиться ваш поток, т.е. будет указана точка подключения и статистика по ней. Из веб-интерфейса можно скачать ссылку на «транслируемый» M3U и разместить его на своих сайтах. Поздравляю, у вас появился свой Icecast-сервер.

VosCast - Internet Radio Hosting

Послесловие

Кстати, в сети существуют коммерческие и некоммерческие хостинги с услугами Icecast. Создать свой бесплатный канал можно, например, на сайте http://giss.tv. Но ведь завести собственный сервер намного интереснее, не так ли?..

Чем мы лучше конкурентов?

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

Оцените статью
Хостинги