Icecast настройка в windows

Обновлено: 04.07.2024

Хотелось бы поделиться своим опытом в установке и настройке сервера потокового аудио IceCast. В нашей локальной сети находится несколько десятков компьютеров. Основная масса – под управлением ОС семейства Windows. Мой рабочий компьютер – полигон для испытания различных сервисов. Однажды после прослушивания потокового аудио через Интернет я задался вопросом, можно ли организовать нечто подобное в масштабе нашей сети. Это ведь здорово - разобраться как работает такой интересный интернет-сервис. Итак, приступим к поискам нужного ПО.

Я использую программу управления пакетами aptitude, но вы вольны воспользоваться любой другой, которую предоставляет ваш любимый дистрибутив. Итак, я направляюсь прямиком в раздел Audio, и что я вижу там? Порядка 300 пакетов для работы с аудио! Трудный выбор. Начинаем просмотр пакетов по порядку. Плееры, синтезаторы, аудиомикшеры, плагины, front-end’ы к различным консольным аудиопрограммам и сами консольные утилиты. Черт как же тяжело сделать выбор между ними – по ходу дела все хочется поставить и попробовать, но не отвлекаемся, а ищем сервер потокового аудио. После моих изысканий нарисовался небольшой списочек. Так-с:
- DarkIce;
- Gnump3d;
- IceCast;
- slimp3.

Вооружаемся словарем и пытаемся понять, что написано в описаниях пакетов.

DarkIce – захватывает аудиопоток из звуковой карты, кодирует в mp3/oggVorbis и посылает серверу потокового аудио IceCast – немного не то. (но тоже может пригодиться).

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

Остаются IceCast2 и slimp3 – и это, похоже, то, что нам нужно.

Общий принцип функционирования IceCast можно пояснить следующей упрощенной схемой (см. рис. 1).

<authentication>

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

<source-password>mypass</source-password>

Пароль для присоединения потока к аудиосерверу IceCast. Можно выбрать действительно хороший пароль при помощи утилиты apg, описанной в 6 номере «Сетевых решений». Нечто вроде !+2Nx1h@I<](C. Я же ограничился простым паролем mypass :).

<relay-password>mypass</relay-password>

Пароль, используемый для пересылки аудиопотоков между локальным IceCast-сервером и другим IceCast-сервером. Эти пароли на обоих серверах должны совпадать. Такую фичу я пока использовать не могу (внешний канал в Интернет слабоват).

<admin-user>admin</admin-user>

Логин администратора, обслуживающего сервер. По умолчанию admin. Оставим как есть. Это имя используется также для входа на локальный, основанный на XSL, сайт IceCast.

<admin-password>nopass</admin-password>

Пароль администратора. Используется для всех административных функций. Пароль по умолчанию hackme – мне такого рода пароли крайне не нравятся, поэтому меняю на нечто менее позорное – nopass. Можно опять же воспользоваться apg и сгенерировать пароль потяжелее :)

</authentication>

Далее следуют все остальные настройки сервера.

<hostname>192.168.1.229</hostname>

Здесь все просто – имя машины (Fully Qualified Domain Name или IP-адрес). В моей сети используется 192.168.1.229. В вашей сети настройки, конечно, будут другими.

<listen-socket>

<port>8000</port>

Настройка номера TCP-порта. Значение по умолчанию 8000.

<bind-address>192.168.1.229</bind-address>

Привязка к сетевому адресу. Если параметр не указан, используется значение hostname. Поставим для страховки 192.168.1.229.

</listen-socket>

<logging>

Секция мониторинга.

<accesslog>access.log</accesslog>

Лог доступа с серверу.

<errorlog>error.log</errorlog>

Лог ошибок.

<playlistlog>playlist.log</playlistlog>

Лог проигрываемых аудиофайлов.

<loglevel>4</loglevel>

Что будет записываться в логи. От 4 - максимум отладочной информации - и до 1 – только ошибки.

</logging>

<security>

Секция «безопасность».

<chroot>0</chroot>

Указывает, будет ли использоваться chroot(). Директория, в которую делается chroot, указывается в директиве <basedir>.

<changeowner>
<user>kirill</user>
<group>kirill</group>
</changeowner>

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

</security>

Поддерживается два типа плейлистов:
- basic - обыкновенный текстовый файл с именами музыкальных файлов;
- script - используется вывод какого-либо скрипта либо команды, возвращающей имя файла.

Для моих целей подходит значение basic.

<module>playlist</module>
<param name="type">basic</param>
<param name="file">/home/kirill/playlist.txt</param>

Имя файла плейлиста.

<param name="random">1</param>

Случайный порядок проигрывания. Поставлю ка я это значение равным 1 для непредсказуемости нашего аудиовещания.

<param name="restart-after-reread">0</param>

Если файл плейлиста изменился, то воспроизведение начнется с начала. Ставим что хотим. Лично я поставил 0.

<param name="once">0</param>

Если этот параметр имеет значение 1, то после проигрывания всего плейлиста будет произведен выход из программы. Меня это не устраивает – ставлю 0.

</input>

С замиранием сердца жмем play.

Ура! Проигрывается intro.ogg, а потом из колонок льются мощные аккорды! Получилось! Теперь пробуем соединиться с сервером с других компьютеров – все OK.

Но это еще не все. Я хотел организовать 2 аудиопотока – paradiselost.ogg и all.ogg (для этого я и создавал два разных плейлиста. Сколько я не пытался прописать в файле конфигурации Ices два аудиопотока, мне так это и не удалось. Вернее получилось создавать два одинаковых с разным битрейтом. После поисков в интернет я нашел решение, и очень удивился, почему я до него не дошел сам. Решение следующее – запускать два процесса Ices – и каждому из процессов указывать свой файл конфигурации. После этого все прекрасно заработало. Дело осталось за малым – добавить запуск IceCast и Ices в инициализационные скрипты, либо вручную создать скрипт, который бы проделывал всю работу по запуску IceCast и Ices. Мой скрипт для запуска выглядит следующим образом:

Icecast –c /home/kirill/mynewicecastconfig

Ices2 /home/kirill/icesconfig2

P.S.

Рассматриваемая в статье версия IceCast – 2.3.0.
В качестве streamer-а могут выступать DarkIce, Muse-Streamer и другие программы, найти и настроить которые вам теперь не составит труда (см. также врезку).

Streamer Ices2 на данный момент не поддерживает формат mp3. Так как в моей музыкальной коллекции содержатся только файлы формата Ogg Vorbis, то у меня никаких проблем не возникло. Если Ваша музыкальная коллекция содержит только mp3 файлы то есть 2 пути решения проблемы:
- выбор streamer’а, который поддерживает mp3 (например, Muse Streamer и др.);
- конвертация музыкальной коллекции в формат Ogg Vorbis (можно воспользоваться для этой цели конвертером sox или другой доступной утилитой, коих, надеюсь, в вашем дистрибутиве предостаточно).

программы, совместимые с IceCast

Сетевые решения. Статья была опубликована в номере 10 за 2005 год в рубрике sysadmin

Статья подготовлена для пользователей, которые хотят установить Icecast, но никогда этого не делали, при этом имеют на собственном компьютере ОС Windows.

Что нам нужно скачать

Установка сервера Icecast

Итак, мы имеем установочный файл сервера потокового вещания Icecast.
Естественно, его нужно установить. Производим это, при этом помня: в конце вам предложат включить галочку "Install Icecast as a windows service". Её ставить обязательно.
Нажимаем на Finish, ждём, пока всё закроется. Всё. Установили

Настройка сервера Icecast

Если вы ставили его в папку по умолчанию, а именно в "C:\Program Files\Icecast2 Win32\", то там вы найдете основной конфигурационный файл - icecast.xml. Открываем его.
Видим код. Его чуть-чуть нужно подредактировать.

Это раздел лимитов. Вообще его не нужно трогать, но я вам здесь объясню, что значит <sources>2</sources>.
Если, например, вы хотите вещать один канал - это вам трогать не следует. Но если вы хотите несколько каналов с разным битрейтом (например: 192, 128, 96), то вам следует изменить это значение в большую сторону. Сколько каналов - столько и источников (sources).

Первая строка отвечает за коннектинг Соурса - Источника. Например, будете вещать через Winamp. Нужно будет скачать плагин к нему и настроить его. Там потребуется ввести пароль для соурса (маунта). Т.е. схему потока можно так нарисовать: Winamp (или всё, что хотите, хоть Sam Broadcaster) -- Icecast -- Сеть Интернет -- Слушатель. Так что вводим свой пароль вместо hackme.

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

Третья строка: это имя пользователя, под которым вы будете заходить в админ. панель сервера. Можно оставить admin.

Четвёртая строка - это пароль к этому юзеру. Желательно убрать hackme и вставить свой.

Так, вот ещё некоторые данные, которые, возможно, нам нужно будет поменять.

<hostname>localhost</hostname> - Указывать IP или доменное имя (если есть) сервера, где установлен Icacast. Если это Ваш компьютер, то можно оставить и localhost. Но в некоторых случаях его приходится изменить.
<port>8000</port>. Здесь указан порт, по которому и будет осуществляться вещание. Рекомендуется оставить 8000. Но в редких случаях он может быть запрещён вашем провайдером, так что вам придётся искать разрешённый.

Всё, больше ничего менять не требуется ;].

Так, если вы всё правильно делали, то у вас должно появится примерно то, что показано на картинке с браузером.
Попробуйте перейти на страницу Administration. Ага, запрашивает логин и пароль. Помните, мы указывали в конфигурационном фале логин пароль от админ. панели? Вот, вводите их. Зашли? Значит, всё верно ;].

Для организации Интернет вещания совместно с RADIO Player Pro можно использовать серверы Shoutcast или Icecast, а так же соответствующие клиенты для передачи аудиопотока на сервер.
Для работы необходимо установить один из предлагаемых серверов и клиентов для передачи звука на сервер.
ВАЖНО! Сам RADIO Player Pro не осуществляет передачу звука на сервер, для этого нужен клиент, представленный ниже.

Сервер

Кратко по первоначальной настройке.
В конце установки в окне инсталлятора отмечаем галочку "View the installation folder".
В открывшейся папке запускаем файл setup.bat. Будет открыта веб страница настройки сервера. Вводим два пароля:
Source Password: пароль для источника (для клиента, передающего поток серверу, который установим позднее)
Admin Password: административный пароль для страницы управления сервером.
Пароли должны быть разные. Жмем Continue пока не увидим кнопку Run Server, жмем её.

Для передачи названия песни на сервер используйте встроенную в Player функцию передачи информации.
Player v.2 раздел Настройки - Информация - Шаблоны.
Player v.1 раздел Настройки - Информация - Экспорт данных - Экспорт.

После установки в блокноте или другом текстовом редакторе открываем файл icecast.xml, который находится в каталоге, куда установлен сервер.
Редактируем следующие значения

<source-password>hackme</source-password>: пароль для источника (для клиента, передающего поток серверу, который установим позднее)
<admin-user>admin</admin-user>: имя администратора
<admin-password>hackme</admin-password>: пароль администратора
<hostname>111.222.333.444</hostname>: Ваш внешний IP адрес
<port>8000</port>: Порт для подключений

Для передачи названия песни на сервер используйте встроенную в Player функцию передачи информации.
Player v.2 раздел Настройки - Информация - Шаблоны.
Player v.1 раздел Настройки - Информация - Экспорт данных - Экспорт

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

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

Пример настроек клиента для передачи звука от радио с логином 8000.
Обратите внимание, 8000 - это имя пользователя для данного примера, это не номер порта. У Вас будет своё имя.

Для передачи названия песни на сервер используйте встроенную в Player функцию передачи информации.
Player v.2 раздел Настройки - Информация - Шаблоны.
Player v.1 раздел Настройки - Информация - Экспорт данных - Экспорт.

Пример настроек для Player v.2.

Клиент для передачи звука на сервер

Дистрибутив для Windows.
С сайта производителя
С github
C нашего сайта
Если при запуске возникает ошибка, возможно не установлены библиотеки.

Запускаем Altacast клиент, жмем кнопку Add Encoder и настраиваем в появившемся окне тип и параметры кодировщика.
Выбираем тип установленного сервера и задаем параметры подключения

ServerIP: localhost, сервер установлен локально
Server Port: 8000, указан в настройках сервера
Encoder Password: пароль, указан в настройках сервера в качестве пароля кодировщика.

Сохраняем настройки кодировщика, жмем кнопку Connect.

Запись должна производиться с выхода звуковой карты.
Настроить устройство записи можно в Панели настроек в Windows в разделе звук.

Настройка вещания на сервер Icecast2 с использованием RadioBOSS.

Необходимо: RadioBOSS 4.6.1 или новее.

В настройках вещания добавляем вещатель, нажав на плюсик, далее

Мастер настройки и в нём указываем Icecast 1 & 2

Жмём далее, в открывшемся окне указываем:
Адрес сервера, Порт, Имя, Пароль, Mount . Маунт можно придумать любой, но обязательно в начале должен стоять слеш /. Например /dance

Далее жмём Финиш выбираем битрейт вещания, формат и прочее. Зайдите во вкладку Метаданные и выберете кодировку UTF - 8.

На этом настройка RB закончена.

Настраиваем Icecast. Установили, запустили как службу. Вообщем заходим в настройки конфига icecast.xml. Можно всё, что там есть удалить и оставить это:

Обрати внимание, что символами <!-- и --> мы комментируем строчку и это значит, что всё, что между ними, айскаст не увидит.

Этот пример я привёл, когда у тебя есть основной эфир /dance, но так же есть удалённый диджей /DJ-Dance. Он может врезаться своим потоком в прямой эфир радиостанции. Более подробно об этой функции я могу рассказать позже. Если тебе диджей не нужен, то конфиг становится ещё проще:


После изменения конфига, перезапускаем службу Icecast2 и всё готово.

Novossyol

Active member
Все понятно, прочитал. Попробую. Но как попасть в публичные каталоги, дабы слушатели знали что искать?
И как запускать айскаст? Скачал установил версию 2.4.3 нашел в папке bin exe файл запускаю но ничего не происходит. Никакого окна выбирать "запускать как службу" нет. .
А что этот сервак без GUI чтоль? Вот этой менюшки у меня почему-то нет. Какой то он не такой как ожидалось.

Вложения

scorp

Well-known member
Все понятно, прочитал. Попробую. Но как попасть в публичные каталоги, дабы слушатели знали что искать?
И как запускать айскаст? Скачал установил версию 2.4.3 нашел в папке bin exe файл запускаю но ничего не происходит. Никакого окна выбирать "запускать как службу" нет. .
А что этот сервак без GUI чтоль? Вот этой менюшки у меня почему-то нет. Какой то он не такой как ожидалось.

Novossyol

Active member

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

scorp

Well-known member
Ну про эту версию не знаю, не использовал, возможно там что-то поменялось. На версии 2,3,2 все четко.
Смотрю сайт у них обновился, стал более удобным и понятным. Круто. Развивается Icecast.

Drakkar

Member
Но как попасть в публичные каталоги, дабы слушатели знали что искать?
И как запускать айскаст? Скачал установил версию 2.4.3 нашел в папке bin exe файл запускаю но ничего не происходит. Никакого окна выбирать "запускать как службу" нет.

В первом окошке оставляй все галочки, жми далее, выбирай папку установки (По умолчанию), далее, ок.
У тебя на рабочем столе появится ярлык Icecast. Его запускать не надо. Перезагружайся и заходи сразу в службы Windows. Ищи в списке Icecast Streaming Media Server. Она должна быть запущена.

Novossyol

Active member
То что вы мне советуете нихрена не работает. Во первых версия ОС у меня 32 битная, во вторых нет никакой запущенной службы.

djsoft

Administrator

ivanovandrey

Member

djsoft

Administrator
Сервер получает звук с плеера и отдаёт его пользователям? ервер должен быть на одном компьютере с плеером или может быть на разных?

Это не имеет значения, но обычно - на разных. Сервер лучше чтобы был в датацентре со стабильным качеством сети и электричества.

ivanovandrey

Member

Global Server Stats

admin icemaster@localhost
banned_IPs 0
build 0-g8621a39
client_connections 34
clients 1
connections 33
file_connections 8
host 192.168.0.121
listener_connections 0
listeners 0
location Earth
outgoing_kbitrate 1
server_id Icecast 2.4.0-kh8
server_start 13/Dec/2017:15:10:14 +0300
source_client_connections 1
source_relay_connections 0
source_total_connections 1
sources 1
stats 0
stats_connections 0
stream_kbytes_read 3555
stream_kbytes_sent 0

Читайте также: