Лийся пісня, або сервер потокового аудіо своїми руками
Сьогодні розберемося як створити сервер, який буде транслювати аудіопотоки.
Єдиний конфігураційний файл icecast.xml має однакову структуру як для Linux, так і для Windows. Складається з декількох секцій, в яких згруповані параметри, схожі за призначенням. Значення всіх параметрів описувати навряд чи доцільно, тому що назва говорить сама за себе, зупинюся лише на короткій характеристиці і тих параметрах, на які слід звернути увагу. Перша секція файлу називається limits, в ній описуються параметри підключення клієнтів, таких як максимальне їх число, тайм-аут, після якого клієнт відключається, якщо зв'язок з ним перервався, розмір черги, тощо. Змінювати їх варто тільки при великій кількості користувачів і поганих каналах (в перевантажених мережах). Наступна секція authentication містить паролі і користувачів, що мають доступ до сервера для тих чи інших цілей. В поле source-password прописується незашифрований пароль для source client, ім'я користувача, яке використовується джерелами «source», поле relay-password на даний момент не використовується, поля admin-user і admin-password містять ім'я користувача і пароль для адміністрування сервера.
Налаштовуємо джерело інформації
В принципі можна приєднатися до будь-якого сервера трансляцій, прописавши параметри в секції relay, і більше ні про що не турбуватися. Але будемо розбиратися, як організувати трансляцію самому.
До речі, джерело інформації не обов'язково повинен знаходитися на одному і тому ж комп'ютері. Для прикладу займемося налаштуванням IceS. На даний момент є дві версії IceS. Версія 0.3, розвиток якої призупинено, призначена для створення mp3-потоків, і версія 2.0, яка вміє транслювати тільки OggVorbis, через малий попит підтримка mp3 була прибрана. Якщо є необхідність роботи як з mp3, так і OggVorbis, то можливе використання цих двох програм паралельно.
Інший варіант, взяти ezstream, що підтримує два формати (як розумієте, одне джерело - одна точка монтування) і до того ж дуже простий в налаштуваннях. Для установки, крім перерахованих вище бібліотек, знадобиться libshout 2.0, посилання на яку знайдете на сайті IceCast. Далі встановлюємо бібліотеку і IceS звичайним чином, ніяких особливостей тут немає. Джерелом даних для IceS може служити компакт-диск, файли на жорсткому диску і будь-який пристрій, з якого можна зняти інформацію.
Тут варто зазначити, що майже всі source clients дозволяють взяти інформацію зі свого стандартного входу, обробити і видати на стрімсервер. Для налаштування параметрів IceS використовується файл у форматі XML, зразки якого після установки ви знайдете в / usr / local / share / ices. Тут їх два: ices-live.xml містить базові настройки для Live-трансляції (мікрофон, СD-ROM і ін.), А в ices-playlist.xml ви знайдете шаблон, який використовується при трансляції з файлів, записаних в плейлист. Відрізняються вони лише розділом input, в якому описується джерело інформації. Все описувати теж не буду, зупинюся лише на параметрах, які потребують пояснення.
Для запуску в якості демона встановлюємо back ground в 1.
Далі описуються параметри виведення логів, при первісної налагодженні встановіть consolelog в 1, при цьому всі помилки будуть виводитися на консоль.
Секція stream описує переданий потік.