Резервирование маунтпоинта Icecast¶
Подробнее можно прочитать здесь http://icecast.org/docs/icecast-2.1.0/config-file.html#mountsettings
Инструкция актуальна для Icecast 2.3.1, в других версиях описание параметра <mount> может отличаться.
Сервер Icecast позволяет указывать резервную точку монтирования, в которую клиенты автоматически перемещаются, если основной источник отключился.
Когда основной источник возвращаются к точке монтирования, происходит автоматический бесшовный возврат в исходное состояние.
Для настройки этого механизма в конфигурационный файл icecast.xml добавляется следующее описание:
<mount> <mount-name>/test</mount-name> <username>source</username> <password>hackme</password> <max-listeners>1</max-listeners> <dump-file>/tmp/dump-example1.ogg</dump-file> <fallback-mount>/test_fallback</fallback-mount> <fallback-override>1</fallback-override> <burst-size>65536</burst-size> </mount>
Маунт /test - основной, /test_fallback - резервный, используемый для подмены.
Основной Джинн играет в маунт /test, резервный Джинн в /test_fallback.
Если требуется выполнить какие-то работы с основным Джинном, перезагрузить ПК, выполнить обновление и т.д., в момент закрытия основного Джинна, происходит автоматическая подмена на сервере Icecast потока с резервного маунта /test_fallback, при этом сама точка монтирования /test не выпадает в ошибку 404 и не требует перезагрузки страницы.
После возобновления работы основного Джинна, автоматически выполняется возврат потоков в исходное состояние, без перезагрузки и ошибки на странице маунта /test.
Таким образом, можно организовать простой и бюджетный резерв интернет-вещания.
Есть важный момент.
Сами маунты появляются сразу же, как запустить Джинн. А звуковой сигнал в маунтах появится чуть позже, когда Джинн полностью загрузится и начнется воспроизведение.
В итоге эта тишина из нескольких секунд попадает в эфир, так как программа запущена, энкодинг основного маунта возобновился.
Следовательно, айскаст перестаёт на точку /test подсовывать данные из /test_fallback, начинает отдавать туда основные данные, в которых тишина, пока Джинн не пришёл "в сознание" после запуска.
Эту проблему можно решить. В разделе "ASIO-устройства" обязательно выставляем "Автозагрузка" и не ставим "Автостарт".
При такой настройке сначала полностью запустится Джинн, а уже затем начнется воспроизведение в основой маунт /test, тишины в эфире не будет.
Но из-за какого-то внутреннего механизма работы сервера Icecast, в момент возвращения основного источника в маунт /test, наш резервный маунт /test_fallback выпадает в ошибку 404 и приходится перезагружать его персональную страницу.
Это не является проблемой, так как сами данные на него идут стабильно, а резервный маунт /test_fallback никуда не играет и используется исключительно как точка подмены основного маунта.
Для нас важно что маунт /test не выпадает в ошибку 404 и перезагрузка его персональной страницы не требуется.