Pull to refresh

Интернет-радио на домашнем компьютере

Пролог


В этой статье хочу поведать Вам, как создать собственное интернет-радио на домашнем компьютере.

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

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

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

В глазах пользователей запуск сетевого радио представляется как «Сизифов труд». Некоторые начинают сразу подсчитывать стоимость оборудования, которое придется покупать, заранее обрекая себя лишь на насмешки более опытных. Еще раз повторюсь, что для успешного запуска радио нам ни в коем случае не нужен ни «парк» высокопроизводительных PC, ни какая-нибудь дорогостоящая аппаратура, а также специфическое программное обеспечение. Благо еще не перевелись энтузиасты, создающие качественные программные продукты «for free», «Да прибудет с ними сила» Важным фактором для запуска является только широкий интернет-канал, остальное же – мелочи жизни. Конечно, данная статья не предусматривает реальный проект, ориентированный на получение прибыли, скорее как проект «для себя и друзей».

Ладно, закончим философствовать и перейдем к наиболее важному пункту нашей статьи.

Выбор программного обеспечения


Немного помучив гугл и прочитав некоторые интересные статьи по теме, постепенно отфильтруем ряд более подходящих программ, для реализации нашего плана:
  • Winamp (универсальный проигрыватель аудио и видео файлов для Microsoft Windows);
  • SHOUTcast (многоплатформенное бесплатное серверное ПО компании Nullsoft, предназначено для организации потокового вещания цифрового аудио/видео сигнала в сеть в формате MP3, AAC, AACplus, NSV, как в локальную, так и интернет);
  • OddCast Plugin (плагин к популярным мультимедиа проигрывателям, предназначенный для передачи аудиопотока к серверу);
  • SAM Broadcaster (профессиональный инструмент для вещания интернет-радио, созданный компанией SpacialAudio);
  • IceCast (свободное ПО для организации потокового цифрового аудиовещания).

Собственно, нам нужен сервер вещания и желательно плагин, для любимого плеера (например, Winamp’а), который будет отдавать поток на сервер. Дабы сильно не усложнять, выберем наиболее простые программы, для того чтобы хоть как-то вникнуть в сам процесс. Выбор пал на IceCast (второй версии) и OddCast плагин (третьей версии). Скачав данные продукты, перейдем к установке и настройке.

Установка и конфигурирование IceCast сервера


image

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

Все параметры работы сервера задаются в одном конфигурационном файле icecast.xml, который непосредственно располагается в директории установки программы. Сейчас мы займемся его редактированием. Открыть его можно самостоятельно, либо через верхнее меню в окне программы «Configuration–>Edit Configuration», однако файл может быть запущен программой, заданной по-умолчанию для таких типов файлов, поэтому рекомендуется пользоваться, например, редакторами с подсветкой XML тегов, чтобы четко видеть, где какие теги у вас, какие строчки закомментированы и т.п. к примеру, NotePad++ или Notepad2, вообщем, найдете что-нибудь подходящее. Итак, что же писать в конфигурационном файле.

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

<!sources>2</!sources>

Количество обрабатываемых сервером аудиопотоков. Для начала нам хватит одного потока, поэтому меняем значение на «1».

<!authentication>
<source-password>hackme</source-password>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</!authentication>

В этой секции описывается, как аудиопотоки должны авторизовываться на сервере и как администратор может управлять ими. Секция «source-password» – пароль для присоединения потока к аудиосерверу IceCast, вводим любой пароль, например «12345». Секция «relay-password» – пароль, используемый для пересылки аудиопотоков между локальным IceCast-сервером и другим IceCast-сервером, также сменим на «12345». Секция «admin-user» – логин администратора, обслуживающего сервер, оставим как есть, т.е. «admin». Секция «admin-password» – пароль администратора, используется для всех административных функций, изменим например, на «mypass». С этой секцией закончили, переходим к следующей.

<!hostname>localhost</!hostname>

Здесь все просто – имя машины (FQDN или IP-адрес). В моей сети используется «192.168.1.15». В вашей сети настройки, конечно, будут другими. Поэтому, я меняю на «192.168.1.15». Хочу обратить внимание, если вы хотите вещать в Интернет, то в данной секции эффективней указывать IP-адресс, выданный вашим провайдером (для белых адресов), либо оставить также адрес в локальной сети (для серых адресов) и уже потом делать проброс портов (port mapping), если соображаете.

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

Секция «port» – установка номера TCP-порта. Значение по умолчанию «8000», так и оставим.

На этом закончим разбор основных секций, сохраним конфигурационный файл и закроем его.

Теперь можно запустить наш сервер, так как он уже настроен, нажав на длинную кнопку «Start Server». Если что-то пошло не так, то индикатор статуса работы сервера будет гореть красным цветом, это говорит о то, что вы где-то ошиблись при заполнении конфиг-файла или не закрыли секцию.

image

Установка и настройка OddCast плагина для Winamp


Аналогично, как и с сервером, процесс установки происходит очень просто. Соответственно, нам предварительно необходимо установить аудио плеер Winamp, если такового нет в наличии.

Запускаем WinAmp и открываем меню Options -> Preferences (либо просто давим Ctrl-P). Далее переходим в Plugins -> DSP/Effect и находим там OddCast. Нажимаем кнопку настройки этого плагина, если он не запустился автоматически. Выскакивает небольшое окно с настройками.

image

У нас есть один «источник звука» Ogg Vorbis с нулевым битрейтом, стерео и частотой дискретизации 44100. Который вдобавок ко всему еще и не подсоединен к серверу. Жмем по нему два раза или правой кнопкой мыши и меню Configure. Открывается cледующее окно, разбераем опции:
  • Bitrate – собственно битрейт с которым будет происходить вещание. На самом деле, тут все зависит от пропускной способности вашего канала и канала подключаемого пользователя, поэтому целесообразно выбрать среднее значение, чтобы исключить прерывания в прослушке, конечно, битрейт и является критерием качества отдаваемого потока. Думаю можно поставить «128», ну а там уже понижать или повышать, решите позже.
  • Quality – качество трансляции. Изначально битрейт можно задать двумя способами, указав его непосредственно (при этом должна стоять галка [x] Use bitrate), либо указать этот параметр Quality (например 1,2,3 и т.п.), если вы укажете Quality, то битрейт будет рассчитан исходя из этого параметра.
  • Samplerate – частота дискретизации. Можно поставить, например 44100, 22050, 11025, но мы как истинные меломаны оставим «441000» .
  • Channels – количество каналов, тут все понятно, 1 для моно, 2 для стерео.
  • Encoder Type – тип кодека. Ogg Vorbis, AAC Plus, MP3 Lame, для вещания в MP3 или AAC необходимы дополнительные библиотеки, поэтому либо оставляем OGG, либо качаем их.
  • Server Type – тип сервера IceCast или Shoutcast. Выбор невелик, т.к. настраивали IceCast.
  • Server IP – IP сервера. Оставляем localhost, если сервер стоит на этом же компьютере, что и программа отдачи или меняем на «192.168.1.15» из моего примера, если плеер на другом компьютере в сети.
  • Server Port – порт сервера. Вспомним настройки, ставим «8000».
  • Encoder Password – пароль. Опять же, это пароль из секции «source-password» конфиг-файла, ставим «12345».
  • Mount point – точка монтирования. Оставляем по умолчанию, т.е. «/stream.ogg», она будет входить в составную часть URL, который вы будете давать пользователям, чтобы они могли слушать ваше радио.
  • Reconnect seconds – время реконнекта потока. Оставляем как есть, т.е. «10».

После того как вы заполнили все эти параметры, можно закрыть это окно, нажав «Ok», или прейти на закладку «YP Settings» и вписать туда какую-то дополнительную информацию о своем сервере. После нажатия кнопки «Ok», опять попадаем в окно конфигурации OddCast. Нажимаем кнопку «Connect» и поток присоединяется к серверу. Если все получилось, то в колонке «Transfer Rate», вместо «Disconnected» видим битрейт с которым передается поток серверу. Также можно поставить галку [x] «Autoconnect», для того чтобы поток всегда автоматически присоединялся к серверу.

На этом этапе процесс настройки закончен, остается составить плейлист в нашем проигрывателе, для сетевого вещания.

Для мониторинга работы сервера и перехода в административный раздел, Вам необходимо ввести в строке браузера IP-сервера и порт, т.е. в нашем случае «http://192.168.1.15:8000/». Пройти автоизацию, с логином «admin» и паролем «mypass», здесь можно отключать лишние потоки и выполнять еще некоторые мелкие функции, а также на странице можно скачать ссылку на плейлист и раздавать его пользователям.

Заключение


Итак, нам удалось запустить собственный сервер интернет-радио, и вещать все, что соизволит наша душа, при этом, затратив на организацию плана только собственное время. Но, как я говорил выше, в одной из секций настройки сервера, чтобы вещать в интернет, вам желательно иметь белый IP-адрес. Насчет динамических IP, дела обстоят немного сложнее, хотя и не строят особых преград – любую проблему можно решить. Например, как узнать IP, если он постоянно изменяется, как вариант использовать dyndns с синхронизацией или как сделать проброс портов, на локальную машину через ADSL модем, это все мелочи, которые недостойны данной статьи.

Уважаемые жители хабра, прошу ногами не бить, это моя первая статья на сайте. В статье использовались некоторые элементы других авторов. Всем спасибо за внимание ;)
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.