Яндекс.Метрика

    Реклама

    RadioPoint — или мой велосипед в сфере интернет-радио

    Уже достаточно давно, когда я только в первый раз столкнулся с затеей интернет-радио, меня огорчило то скудное наличие средств создания потока, что имелось на рынке. Либо выбор сводился к комбайну SAM Broadcaster, либо к кучке утилит формата «собери конфиг сам». Мне же хотелось чего то более удобного, чем набор command-line утилит (т.е. с удобным графическим интерфейсом), но и более легкое, чем SAM. И вот, спустя годы, я начал писать свой велосипед…



    Изначально мне представлялась программа имеющая два основных интерфейса — это интерфейс «схема» и интерфейс «пульт». Схема должна представлять собой что-то похожее на блок-схему, где каждым блоком выступает некий «фильтр» занимающийся обработкой, контролем или вводом-выводом звука.Пульт должен был представлять собой своеобразный рабочий стол диджея, где бы он мог управлять установленными на схеме фильтрами (управление плейлистом, микшерами и т.д.).Стоит сказать, что проект находится на самой ранней стадии своего существования. На данном этапе в нем присутствует самый минимум, но уже достаточный для создания своей маленькой радиостанции с плейлистом и выходом в эфир с микрофона. Ниже, я как раз и хочу рассмотреть создание подобной схемы при помощи текущей версии 0.11 с нуля.



    При старте программы Вы первым делом увидите лаконичный пустой рабочий стол схемы. С помощью контекстного меню добавим на схему следующие фильтры:
    • Input: File/URL (BASS) / для декодинга файлов с жесткого диска
    • Input: Device (DirectSound) / для записи голоса с микрофона
    • Mixer: Simple mixer / для смешивания того, что подали на вход
    • Control: Playlist / для управления декодером, что бы он читал нужные нам файлы
    • Output: Device (DirectSound) / для того, что бы иметь возможность самим слышать
    • Filter: Volume / для регулирования громкости звука подаваемой на наши динамики (ну не всё же время мы будем слушать эфир напрямую)
    • Output: Streaming server / собственно вывод на сервер вещания


    Все фильтры можно свободно таскать по схеме методом drag-n-drop, так что нам не составит труда расставить их красиво. Вторым пунктом будет объединение фильтров в схему. Звук у нас должен поступать из источников (Input), попадать на миксер (Mixer) и отправляться на выход (Output). Кликая левой кнопкой мыши в крайние области (подкрашенная зеленым) фильтра и таща линию к нужной крайней области другого фильтра мы их соединяем. Почти все фильтры на вход могут принимать только один сигнал (после присоединения на вход к такому фильтру, вход его подкрасится красным), исключение составляют фильтры микширования (Mixer) и переключения (Switcher).


    На этом этап формирования схемы мы закончили. Осталось настроить фильтры. Так, например, у фильтра миксера нам необходимо указать, что мы собираемся обрабатывать два входящих канала, задать им очередность и наименования (для лучшего понимания)… правой кнопкой на фильтре и «property». Это в последствии (на пульте) позволит нам проще понимать, что же именно мы регулируем миксером.


    В фильтре «Input: Device (DirectSound)» нам аналогичным образом необходимо выбрать источник звука в нашей системе, а в фильтре «Output: Device (DirectSound)» — то, куда мы звук будем выводить. Далее в нашей настройке нуждается фильтр «Output: Streaming server». В его настройках нам необходимо будет указать текстовую инфу о станции, выбрать энкодер (на текущий момент полноценно работает только энкодер mp3, aac энкодит, но не позволяет менять качество потока) и сервер вещания (на данным момент — это только IceCast v2). В настройках этого фильтра вы не найдете ничего для себя нового, с чем бы вы не встречались в программах аналогичного толка. Последним в настройке нуждается фильтр контроля. Смысл этого фильтра в том, что он является управляющим для остальных. Так, наш фильтр плейлиста, указывает фильтру ввода файлов, какой файл и когда нужно открыть. Идем в настройки «Control: Playlist» и указываем в виде «Input 1» фильтр «Input: File/URL (BASS)» (параметры «Input 2» и «Switcher» на текущий момент не рабочие).
    Теперь настала очередь за рабочим столом диджея, или как я его называю, «пультом». Пульт, как и схема, формируется аналогичным образом, вызвав контекстное меню в подменю «Add» мы видим список уже установленных на схеме фильтров и у некоторых из них есть подменю с названием блока, который можно расположить на пульте. Так нам понадобятся блоки из фильтров «Input: File/URL (BASS)», «Mixer: Simple Mixer», «Control: Playlist» и «Filter: Volume». Установленные блоки, как и фильтры на схеме, легко переносятся в удобное место. Т.е. внешний вид пульта управления Вы формируете сами.


    И вот, собственно, подготовка и окончена. Осталось только запустить необходимое сопутствующее ПО (Айскаст, да винамп для прослушивания с айскаста) и нажать на «Broadcast» -> «Run» (или просто F9). После начала вещания вы уже не сможете менять расположение и параметры фильтров, как и не сможете менять расположение блоков на пульте, но этого, в общем то, во время вещания делать и не надо ))). Тем же любимым методом drag-n-drop кидаем музыку в плейлист (или это же можно сделать через контекстное меню плейлиста) и наслаждаемся музыкой.


    Вот собственно мы и закончили создавать нашу первую станцию при помощи RadioPoint 0.11.



    В будущем… в будущем нас ждем добавление новых фильтров и совершенствование текущих. Так, например, фильтр плейлиста обзаведется контролем двух фильтров ввода и фильтра переключателя, что позволит создавать эффект «cross-fade» при переключении треков. Добавятся фильтры переключения по расписанию (например, для вывода джинглов или записанных передач в точное расчетное время), фильтры эффектов и т.д. Так есть и далеко идущие планы, о разделении программы на место работы диджея и собственно сервера обработки, да и сервер обработки планируется сделать доступным для нескольких платформ (Win/Linux). Но это всё будущее… до которого нужно еще дожить )))



    Последнюю версию RadioPoint вы можете скачать с сайта проекта: rp.mear.me

    Или напрямую по ссылке: RadioPoint v0.11.0.4102 (zip, 1.7 Mb) (Windows x32)



    P.S. Если у вас есть желание помочь морально, идеями или кодом, то прошу обращаться в ЛС, по контактам указанным в профиле или по контактам указанным на сайте.