Fallback mount в Icecast2
Когда я писал о настройке Icecast 2 я обошел вниманием настройку fallback mount. Так вот заполним этот пробел. Fallback-mount нужен для того, что бы в случае выхода из строя основного источника, подключить «запасной», точнее переадресовать всех слушателей основного потока на «запасной».
Мне приходилось применять эту настройку для одного радио, что бы реализовать схему, когда в основной поток время от времени вещают диджеи, ставя свою музыку, объявляя песни и ведя там всякие разговоры, а потом диджей уходит с канала и всех переадресовывает на «запасной» канал реализованный с помощью ices и проигрывающий музыку из определенной директории. Для того что бы реализовать эту схему необходимо в файл настроек /usr/local/etc/icecast.xml добавить настройки основной точки монтирования и файл настроек теперь будет выглядеть так:
<icecast> <limits> <!-- Максимальное количество подключений к серверу --> <clients>500</clients> <!-- Количество источников --> <sources>7</sources> <!--Количеество подпроцессов обслуживающих клиентов --> <threadpool>12</threadpool> <!-- Размер очереди вещания --> <queue-size>1572864</queue-size> <!-- Время ожидания ответа от клиента (судя по документации не используется --> <client-timeout>30</client-timeout> <!-- Время ожидания запроса от клиента --> <header-timeout>15</header-timeout> <!-- Время ожидания данных от источника сигнала, при превышении интервала, источник будет отключен --> <source-timeout>600</source-timeout> <!-- Режим при котором, подключившийся клиент получит данные для заполнения локального буфера проигрывателя --> <burst-on-connect>1</burst-on-connect> <!-- Размер буфера отправляемого клиенту --> <burst-size>262140</burst-size> </limits> <!-- Секция отвечающая за авторизацию --> <authentication> <!--С этим паролем должны подключаться источники сигнала --> <source-password>source-pass</source-password> <!--Пароль для релаев(мы не используем в нашей задаче) --> <relay-password>relay-pass</relay-password> <!--Логин и пароль администратора --> <admin-user>admin</admin-user> <admin-password>admin-pass</admin-password> </authentication> <!-- Эта секция описания основной точки монтирования --> <mount> <mount-name>/test</mount-name> <max-listeners>500</max-listeners> <burst-size>65536</burst-size> <!-- Вот эта секция и есть описание запасной точки монтирования --> <fallback-mount>/testnonstop</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> </mount> <!-- Имя хоста --> <hostname>hilik.org.ua</hostname> <!--IP адрес и порт на котором будет слушать сервер --> <listen-socket> <port>8000</port> <bind-address>89.251.34.107</bind-address> </listen-socket> <!-- Использовать ссылки в виде статических файлов --> <fileserve>1</fileserve> <!-- Пути --> <paths> <basedir>/usr/local/share/icecast</basedir> <logdir>/var/log/icecast</logdir> <webroot>/usr/local/share/icecast/web</webroot> <adminroot>/usr/local/share/icecast/admin</adminroot> <alias source="/" dest="/status.xsl"/> </paths> <!-- В какие файлы писать события --> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <loglevel>4</loglevel> <logsize>10000</logsize> </logging> <!-- Секция безопасности --> <security> <chroot>0</chroot> <changeowner> <user>nobody</user> <group>nogroup</group> </changeowner> </security> </icecast> |
За основу был взять конфиг из статьи IceCast2 и Ices0 — строим интернет радио.