Робимо своє інтернет радіо.
У цій статті я розповім як зробити своє інтернет радіо з нонтопом, красивою статистикою, перекиданням слухачів з пустого каналу і правильним кодуванням.
Всі маніпуляції я буду проробляти на Debian 6.0, але даний how-to підійде для будь-якого debian-based дистрибутива (ubuntu, linux mint etc).
Що будемо ставити:
- Icecast2
- Ices0.4 (для мовлення mp3, для OGG потрібно ставити Ices2)
- MRTG (для побудови графіків)
- Бібліотеки (libshout-2.2.2, libmp3lame-3.97, LibXML2)
В Ubuntu server 9.04 і вище все бібліотеки є в репозиторіях, тому ставимо:
В Debian 6.0 так само є в репозиторії, тільки його потрібно додати:
І вниз списку додаємо:
Зберігаємо результат (control + X y) і встановлюємо ключ сховища:
Після чого оновлюємо список пакетів:
І встановлюємо наші бібліотеки:
До счатью, Icecast server є в репозиторіях, тому ставимо його командою:
При цьому, під час установки, Icecast створить користувача і групу Icecast.
Відкриваємо для редагування конфіг Icecast2:
І бачимо наш конфиг (нижче приведу його повністю з позначками):
З усього конфіга, нам цікаві тільки кілька секцій, це ліміти, паролі і тонка настройка горгон (точок монтування). З першими двома секціями, зазвичай, питань не виникає, а от з налаштуваннях горгон ми зараз поговоримо докладніше.
Налаштування fallback mount. (Резервна точка монтування)
Для початку поясню що таке fallback точка монтування на простому прикладі. Припустимо у вас є дві точки монтування: / live і / nonstop. на / live у вас відповідно час від часу ведуть діджеї, а на / nonstop постійно грає музика. Без fallback всі слухачі які були на точці / live. при відключенні діджея сбрасиваютcz, і якщо захочуть послухати / nonstop їм потрібно перепідключитися самим. За допомогою fallback ми зробимо це автоматично, додаємо в конфіг наступні рядки:
Де / live це вихідна точка (та з якою перекидаємо). а / nonstop точка призначення. На цьому вся настройка fallback-mount закінчена. Тепер прийшов час для кодування.
Налаштування кодування IceCast.
Дуже часто буває, що відтворена пісня відображається не правильно, або не відображається зовсім, як на картинці нижче:
Що б виправити це прикру помилку, можна примусово виставити кодування для точки монтування, наприклад для / live це буде виглядати так:
Де utf-8кодіровка тегів нашої музики. (Зазвичай або cp1251 або unf-8)
Так само в розділі mount можна встановити інший пароль на певну точку, назва каналу, музики, радіо:
Ices0.4 буде виконувати у нас функцію нонстопом ефіру. На жаль, ices немає в репозиторіях, тому нам доведеться його зібрати.
Для складання ices виконуємо команди:
Після того як ми зібрали наш ices, будемо його налаштовувати.
Знову ж переходимо до конфігу ices, приклад якого повинен бути в /usr/local/etc/ices.conf.dist. копіюємо його:
І відкриваємо для редагування:
Знову ж наведу конфиг цілком з позначками з важливих місцях:
На цьому настройка ices майже закінчилося, перейдемо до плей листам.
Створення плей листів Ices0.4
Для створення плей листа можна використовувати два методи, складний ручний і автоматичний. Ми вибираємо природно автоматичний. Але для початку небагато поясню що і де.
Припустимо що музика у вас лежить в папці / mnt / music / nonstop, переходимо в папку і створюємо наш плейліста:
Після виконання команди, у нас з'явиться файл playlist.txt, в якому буде список всього вмісту папки / mnt / music / nonstop.
Для запуску Icecast2, спочатку треба дозволити йому запуск. для цього відкриваємо:
І правимо параметр # Change this to true when done to enable the init.d script
ENABLE = true. повинно вийти ось так:
І запускаємо icecast командою:
Якщо ices буде у Вас віщати тільки один канал, то його можна запустити командою:
Але якщо у Вас кілька каналів, і відповідно кілька конфігов, то запускається ices командою:
Де /usr/local/etc/ices.conf нехай до вашого конфіга.
На цьому настройка завершена. Переходимо до статистики.
Практично з самого першого запуску сервера радіо, я ламав голову, як зробити облік і підрахунок статистики слухачів. На допомогу прийшов MRTG, програма, спочатку створена для підрахунку трафіку і читання логів.
Установка MRTG.
Встановити MRTG в debian і ubuntu можна командою:
На цьому власне і вся установка, так що переходимо до налаштування.
настроках MRTG
Після установки файл конфігурації MRTG повинен знаходить в /etc/mrtg.cfg, відредагуємо його:
ВАЖЛИВО!
Якщо збираєтеся використовувати MRTG тільки для зняття статистики IceCast2, то можете сміливо видаляти все содіржімое конфіга, і вставити наступні рядки:
Тут не багато поясню, що до чого.
Час оновлення графіків в хвилинах.
Стартувати MRTG як демон.
Папка куди будуть складатися файли. (Можна створити наприклад піддомен ice.pipradio.com)
Розмір графіків.
Тепер створюємо скрипт, який буде збирати статистику радіо з усіх потоків:
І втсавляем наступні:
Якщо ж ви хочете знімати статистику з якогось одного потоку, то скрипт буде виглядати так:
Де? Mount = / nonstop '; назва потоку (точки монтування icecast)
Тепер даємо права на виконання скрипта:
І додаємо наш скрипт в конфіг MRTG:
ВАЖЛИВО!
Якщо хочете бачити статистику по потокам, зверніть увагу на [all] це індіфікатор графіка, він повинен бути різним для кожного потоку
Спробуємо запустити MRTG
Якщо помилок виду Target [all] [_ IN_] '$ target -> [1]
немає, значить все добре, якщо є, перевірте ваш сервер, і у випадку зняття статистики з окремого потоку, перевірте чи є він.
Тепер нам потрібно створити файл index.html, для цього використовуємо команду: