Попробуем разобраться, как настроить IceCast.
# icecast
usage: icecast [-h -b -v] -c < file >
options:
-c < file > Specify configuration file
-h Display usage
-v Display version info
-b Run icecast in the background
Надо указать конфигурационный файл. Пример конфигурационного файла в XML формате, поставляемого с IceCast –
icecast_minimal.in.
Его подробное описание с пояснениями по ходу дела.
< icecast >
< limits >
Секция ограничений.
< clients >50< /clients >
Количество одновременно подключенных пользователей. Выставляем желаемое.
< sources >1< /sources >
Количество обрабатываемых сервером аудиопотоков. Если надо организовать несколько разных потоков аудио.
< threadpool >5< /threadpool >
Количество потоков, запускаемых сервером для поддержания соединений с клиентами. В оригинальных комментариях к файлу
значение 5 рекомендовано для серверов с малым и средним траффиком.
< queue-size >102400< /queue-size >
Максимальный размер (в байтах) очереди для клиентов, подключенных к нашему серверу. Оставляем значение по умолчанию.
< header-timeout >15< /header-timeout >
Максимальное время ожидания в секундах для запросов от клиентов. Оставляю без изменений.
< source-timeout >10< /source-timeout >
Если подключенный к серверу аудиопоток не посылает данные 10 секунд, этот аудиопоток удаляется. Оставляем как есть.
< /limits >
< authentication >
Аутентификация - следующая секция конфигурационного файла. В ней описывается, как аудиопотоки должны авторизовываться на
сервере и как администратор может управлять ими.
< source-password >mypass< /source-password >
Пароль для присоединения потока к аудиосерверу IceCast.
< relay-password >mypass< /relay-password >
Пароль, используемый для пересылки аудиопотоков между локальным IceCast-сервером и другим IceCast-сервером. Эти пароли на
обоих серверах должны совпадать.
< admin-user >admin< /admin-user >
Логин администратора, обслуживающего сервер.
По умолчанию admin.
< admin-password >nopass< /admin-password >
Пароль администратора. Используется для всех административных функций.
< /authentication >
Далее следуют все остальные настройки сервера.
< hostname >192.168.1.11< /hostname >
Здесь все просто – имя машины (Fully Qualified Domain Name или IP-адрес).
В моей сети используется 192.168.1.11.
В вашей
сети настройки, конечно, будут другими.
< listen-socket >
< port >8000< /port >
Настройка номера TCP-порта. Значение по умолчанию 8000.
< bind-address >192.168.1.11< /bind-address >
Привязка к сетевому адресу. Если параметр не указан, используется значение hostname. Поставим для страховки 192.168.1.11.
< /listen-socket >
< mount >
В этой секции меня заинтересовали некоторые параметры, которые придают нашему серверу профессиональный вид.
Здесь
задаются специальные параметры для точек монтирования. Пока точка монтирования у нас одна – она описывается далее в файле
настроек Ices.
< mount-name >/paradiselost.ogg< /mount-name >
Имя точки монтирования.
< username >source< /username >
Имя пользователя – оставляем source.
< password >mypass< /password >
Пароль – в моем случае mypass.
< intro >/intro.ogg< /intro >
Интересный параметр, в котором следует указать имя файла, который должен быть помещен в каталог webroot - в моем случае
это каталог /home/icecastwebroot.
Этот файл будет проигрываться всем новым пользователям, которые подключаются к нашему аудиосерверу.
В этот файл я записал
свое приветствие слушателям.
< fallback-mount >/fall.ogg< /fallback-mount >
В этом параметре также указывается имя файла, который должен находиться в каталоге webroot.
Этот файл будет проигран
клиентам в том случае, если что-то пошло не так и нормальный аудиопоток недоступен.
< /mount >
< paths >
Секция «Пути».
< logdir >/var/log/icecast< /logdir >
Каталог для записи логов (всегда есть куда глянуть, если что-то пойдет не так).
< webroot >/home/icecastwebroot< /webroot >
В этой директиве определяется базовый каталог для статических файлов. Этот каталог может содержать любые файлы.
Допустим,
мы указали в этой директиве /home/icecaswebroot.
Если теперь в строке браузера указать http://192.168.1.11:8000/mp3/muzik.mp3, то на компьютер клиента будет загружен файл /home/icecastwebroot/mp3/muzik.mp3.
< adminroot >/home/icecastwebroot/admin< /adminroot >
В этой директиве указывается каталог для инструментов администрирования.
При инсталляции IceCast устанавливается ряд скриптов в формате XSL для администрирования сервера через веб.
Если поместить эти скрипты (в моем случае) в /home/icecastwebroot/admin, то в панель веб-администрирования можно
будет попасть, набрав в строке браузераhttp://192.168.1.11:8000/admin/.
< pidfile >/usr/local/share/icecast/icecast.pid< /pidfile >
В этой строке задается имя и путь к так называемому pid-файлу, который создается при старте и удаляется при завершении
работы сервера.
Файл содержит process ID сервера, который используется для посылки сигналов серверу.
< /paths >
< 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 >kost< /user >
< group >kost< /group >
< /changeowner >
Эта директива указывает серверу от чьего имени и группы стартовать. Следует указывать реально существующих пользователей.
< /security >
< /icecast >
Записываем этот файл в свой каталог под именем config. Ну вроде все! Можно попробовать стартовать сервер следующей командой:
#icecast -c /home/config -b
Starting icecast2
Detaching from the console
# Changed groupid to 1000.
Changed userid to 1000.
Опция -b заставляет сервер запуститься в фоновом режиме.
Внимательно просмотрите файл на предмет наличия незакрытых тегов, иначе IceCast стартовать не захочет.
введя в строку браузера http://192.168.1.11:8000/admin/,мы можем попасть в административный интерфейс.
< relay >
< server >205.188.215.226< /server >
< port >8000< /port >
< mount >/< /mount >
< local-mount >/stream.ogg < /local-mount >
< relay-shoutcast-metadata >1< /relay-shoutcast-metadata >
< relays-on-demand >1< /relays-on-demand >
< master-update-interval >120< /master-update-interval >
< /relay >