Радіо на vds з автодіджеем, Кроссфейдінг і джинглами

У попередній своїй статті я дуже докладно розповів про створення онлайн радіостанцій на віртуальному виділеному сервері за допомогою Icecast2 і ezstream. Однак, розбираючись далі в питанні запуску власного радіо на VDS, я все-таки знайшов спосіб запустити ices замість ezstream. Ця програма дуже довго мені не піддавалася: в процесі установки все щось було не так. Але, як то кажуть, вода камінь точить і нарешті я її здолав.

Переваги ices перед ezstream полягає в наступному:

Радіо на vds з автодіджеем, Кроссфейдінг і джинглами

Що стосується недоліків, то, мабуть, він за все один: для радіо ми будемо використовувати застарілу версію ices0.4. Вже давно існує офіційна ices2, але нам вона абсолютно нецікава. І ось чому: через патентні обмежень у 2 версії прибрали підтримку формату mp3 - залишили лише ogg. Особисто я вважаю мовлення в mp3 принциповим моментом для себе, тому і зупинився на більш старої ices0.4. Втім, стара версія це не так страшно, як здалося мені на самому початку - адже ми будемо використовувати версію цього ПЗ, модифіковану небезисвестной канадською компанією Centova (про це трохи нижче).

Даний матеріал я не буду писати так докладно, як попередній. Якщо ви зовсім «чайник» в роботі з виділеним сервером, то краще вам спочатку крок за кроком виконати все описане в попередній статті. Так ви розберетеся в найважливіших моментах. Тим більше, що в тій статті докладно розглянуто не тільки процес запуску радіо на VDS, але і подано докладний покроковий алгоритм замовлення найдешевшого виділеного сервера і його первинної настройки.

Отже, будемо вважати, що 1 і 2 крок з минулої статті ми вже виконали: у нас є виділений сервер із встановленою на нього віртуальною машиною Debian 7 (зрозуміло, без панелі управління ISP Manager), а на комп'ютер встановлено програми PuTTY. WinSCP і Notepad ++ (якщо немає, Новомосковський минулий гайд). Тепер переходимо до власне встановлення та налаштування необхідного нам програмного забезпечення: Icecast2 і ices0.4.

Встановлюємо Ices0.4 (модифікована версія від Centova) і Icecast2

Думаю, буде краще, якщо перед установкою нового ПЗ за цією статтею, ви повністю переустановите операційну систему на своїй віртуальній машині (нагадую, що на FirstVDS це робиться буквально за кілька секунд тут).

Отже, запускаємо PuTTY і для початку оновлюємо нашу систему.

Не забуваємо відповідати y + Enter на виникаючі в процесі установки питання.

Тепер по черзі ставимо з репозиторіїв нашої Linux Debian потрібні нам додаткові бібліотеки.

apt-get install nano make gcc libperl-dev libshout-dev libmp3lame-dev libxml2-dev

apt-get build-dep libpcre3

Тепер ставимо саму ices0.4. Її доведеться збирати самостійно.

Здається, я трохи відволікся)) Далі послідовно виконуємо наступні команди: розпаковуємо архів, переходимо в папку з ним, збираємо і встановлюємо:

tar -zxvf ices-cc-0.4.2.tar.gz

apt-get install icecast2

Налаштування Icecast2

При необхідності налаштовуємо конфігураційний файл Icecast (число слухачів, кількість радіопоток і т.п.) під себе. Як це робити, писати тут не буду - знову ж таки це все досить докладно розписано в попередній статті. Перезапускаємо icecast.

Налаштування конфігурації Ices 0.4

На цьому кроці нам перш за все потрібно запустити програму WinSCP і з'єднатися зі своїм виділеним сервером, ввівши IP, логін (root) і пароль.

Зберігати музичні mp3 файли ми будемо в директорії / home. Оскільки радіостанцій я запускаю кілька, а не одну, то всередині цієї папки для кожного радіо я створюю свою вкладену папку: наприклад, enigma - для радіостанції з піснями групи Enigma. Виходить такий шлях до файлів: / home / enigma

Невелика передісторія. Взагалі, є два способи налаштування конфігурації ices: за допомогою вбудованого обробника builtin або сторонніх (perl. Script або python). Запуску ices з вбудованим оброблювачем builtin присвячені майже всі знайдені мною в рунеті статті на цю тему. Там все і простіше, і одночасно складніше і малофункціонального: кожен раз при запуску станції потрібно формувати плейлист, немає джунглів, але все-таки є Кроссфейдінг. Мені цей варіант за замовчуванням здається менш цікавим і в даний момент і на перспективу. Описувати його я не буду. Якщо вам раптом захочеться його спробувати, то інструкцій на цю тему в мережі просто навалом. Просто набирайте в пошуковику «ices0 icecast настройка» і вибирайте гайд.

Налаштованому файлу конфігурації даємо своє ім'я (наприклад, у мене це ices-enigma.conf) і закачуємо в папку home через програму WinSCP.

Налаштування perl для ices

Тепер переходимо до розміщення скрипта, який буде виводити нам в ефір у випадковому порядку музику і джингли через певну кількість треків.

Ім'я для цього файлу ми прописали в параметрі Module конфігурації ices. Файл скрипта за замовчуванням ices. але для декількох станцій треба ставити різні імена. Тому я відразу використовую змінений ім'я - наприклад, icesenigma.

sub ices_init print "Perl subsystem Initializing: \ n";
$ Jingle = 0;
return 1;
>
sub ices_shutdown print "Perl subsystem shutting down: \ n";
>
sub ices_get_next print "Perl subsystem quering for new track: \ n";
if ($ jingle <5) $jingle ++;
@ Music = `/ bin / ls -1 / home / enigma / *. Mp3`;
> Else $ jingle = 0;
@ Music = `/ bin / ls -1 / home / jingles / *. Mp3`;
>
$ Num = scalar (@music);
$ Play = int (rand ($ num));
chomp $ music [$ play];
return $ music [$ play];
>
return 1;

Шляхи в папки з музикою і джинглами треба прописати свої. В даному скрипті джингл грає раз в п'ять пісень. Якщо потрібно змінити це, то замість 5 ставимо свою цифру.

Зберігаємо і закачуємо цей файл в папку шляхом / usr / local / etc / modules /.

Увага! Ще раз підкреслю, що ім'я цього файлу повинна співпадають з тим, що зазначено в пункті Module конфігурації ices. Наприклад, для icesenigma ім'я файлу буде icesenigma.pm

Для того, щоб запустити радіостанцію в ефір, в PuTTY даємо команду (не забудьте поміняти назву файлу конфігурації на своє):

ices -c /home/ices-enigma.conf

Нагадаю, що оставновіть ices можна такою командою:

Щоб перейти на всіх потоках до наступного треку треба ввести:

killall -USR1 ices

А ось наступна команда перечитує конфігураційний файл (тільки .conf, але не .pm файл Perl). Таким чином, щоб перечитати Perl скрипт, треба змінити його ім'я.

killall -HUP ices

Автозапуск ices 0.4

Як змусити ices запускатися автоматично в разі збою або перезавантаження сервера (як це, наприклад, робить Icecast) я поки не розібрався. Тому на даний момент, на жаль, якщо трапиться форс-мажор, потік замовкне до тих пір, поки не буде перезапущений в терміналі.

Пара безсонних ночей і я все-таки розібрався (стрибаю від радості!). як змусити автоматично запускатися не тільки Icecast2, але і конфігураційні файли всіх радіостанцій виду ices.conf. Для цього в файл /etc/rc.local перед останнім рядком exit 0 потрібно додати ось це:

sleep 10 / Usr / local / bin / ices -c /home/ices-enigma.conf

Sleep 10 - це затримка виконання команди на 10 секунд. Вона необхідна, щоб до її запуску гарантовано встиг запуститися Icecast (різні люди в мережі пишуть, що треба ставити 30, 60 або навіть 120 секунд, проте моя перевірка показала, що вистачає і 10 секунд). / Usr / local / bin / ices - стандартний шлях для ices. А ось ім'я конфігураційного файлу (у мене це ices-enigma.conf), зрозуміло, треба замінити на своє. Якщо потоків кілька, то і рядків буде декілька - для кожного додаткового радіо міняємо тільки ім'я файлу конфігурації ices (ну і шлях до нього, якщо він відрізняється).