company_banner

Как мы делаем корпоративное радио для своих



    Когда-то нашему саунд-дизайнеру пришла идея крутить в офисном туалете свою музыку (прям как в барах). Решили протестировать, поставили первый сетап: в ящике лежал смартфон с плейлистом в AIMP, который подключался к трансляционному усилителю, а сам плейлист закачивался на карту памяти с компа. Костыли, но зато всё заработало моментально. Треки всем зашли, и стали развивать идею до внутреннего радио. Расскажу, какую статью на Хабре мы взяли за основу, что поменяли и бонусом покажу комикс — презент от коллег за музыку.

    Сначала телефон в ящике казался неплохим вариантом для концепта. Но постоянно загружать музыку в телефон не хотелось и как-то на корпоративе мы с саунд-дизайнером Ильей Викторовым разговорились про вещание в интернете. Сошлись, что будет круто, если во всех туалетах компании от Белгорода до Лимассола будет играть одна и та же хорошая музыка. Тем более плейлист очень зашел команде (в Слаке постоянно просили скинуть треки).

    Полез я на Хабр и наткнулся на статью «Организация музыкального сопровождения торгового зала». Там @Teon_501 дает несколько полезных ссылок и рассказывает, как практично организовать вещание на связке из одного компа с LibreTime и второго — принимающего. Плюс он настроил запуск рекламы по времени. Если кратко, то его решение состоит из готовой сборки LibreTime, которая включает в себя web-админку с LiquidSoap, и с вещанием через IceCast.



    Отличный вариант, мы попробовали сделать так же (но без рекламы) и довольно долго его использовали. В результате составили актуальный на тот момент список плюсов и минусов для нашей ситуации.

    Плюсы:

    • Удобная и простая настройка.
    • Стабильность (у нас ничего не падало).
    • Есть страничка с онлайн-плеером и расписанием.

    Минусы (на текущий момент многие из них уже исправлены):

    • Встроенный модуль, который при автозагрузке треков сам высчитывает Fade in и Fade out, и делает это очень плохо. Многие треки обрезает до минуты (UPD: сейчас поможет обновление библиотеки silan до последней версии).
    • Не обновляется (UPD: тогда проект не обновлялся так часто, как сейчас)
    • Необходимость обязательно делать расписание вещания отдельно на каждый день (UPD: в комментариях говорят, что уже нет — можно сделать «связанную» программу и раскатывать до бесконечности).
    • Излишняя для нашей простой задачи функциональность.
    • Не устраивал встроенный перемешиватель музыки, треки часто повторялись.
    • Ограниченная длина плейлиста.

    Мы же для себя собрали огромный плейлист, который хотели залить и рандомно проигрывать очень долгое время. Поэтому в следующей итерации всё упростили и заменили LibreTime на связку IceCast с MPD. На Хабре найдётся много статей, описывающих всё это (вдохновится можно здесь или здесь), а я приведу краткое описание настройки.

    В качестве сервера вещания я выбрал Ubuntu Server 18.04:

    Ставим Icecast и MPD
    sudo apt install mpd icecast2

    Потом правим конфиг MPD
    sudo vi /etc/mpd.conf

    И приводим его к такому виду (по факту это конфиг по умолчанию с отредактированными настройками выходного устройства и буфера)
    music_directory "/var/lib/mpd/music"
    playlist_directory "/var/lib/mpd/playlists"
    db_file "/var/lib/mpd/tag_cache"
    log_file "/var/log/mpd/mpd.log"
    pid_file "/run/mpd/pid"
    state_file "/var/lib/mpd/state"
    sticker_file "/var/lib/mpd/sticker.sql"
    user "mpd"
    bind_to_address "0.0.0.0"
    port "6600"
    log_level "default"
    metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
    auto_update "yes"
    auto_update_depth "3"
    default_permissions "read,add,control,admin"
    audio_output
    {
    type "shout"
    encoding "mp3"
    name "Pixonic FM"
    host "localhost"
    port "8000"
    mount "/_a"
    password "613112"
    bitrate "192"
    format "44100:16:2"
    protocol "icecast2"
    }
    replaygain "auto"
    replaygain_preamp "0"
    replaygain_missing_preamp "0"
    replaygain_limit "yes"
    volume_normalization "no"
    filesystem_charset "UTF-8"
    audio_buffer_size "2048"
    buffer_before_play "50%"


    Заливаем файлы, включаем как службу и перезапускаем mpd
    systemctl enabled mpd
    systemctl restart mpd && systemctl status mpd


    Конфиг IceCast из коробки рабочий, но я всё же советую поменять хотя бы пароль в файле /etc/icecast2/icecast.xml (по умолчанию это hackme).

    На данном этапе настройка завершена, теперь можете подключиться любимым плеером к серверу mpd и запустить треки. Мне нравится ncmpc, но можно выбрать другой по душе. Там же есть веб-клиенты, чтобы управлять плейлистом через браузер, но наш плейлист не меняется так часто.

    Теперь на your_server:8000/_a можно прослушать свою трансляцию, но лучше, конечно, вставить ссылку в VLC.

    Хотя планов еще много, это тот случай, когда надо делать проще. Например, сделать главную страницу. Сейчас мы просто отдаём поток для клиентов, который можно слушать через VLC.

    To-Do List:

    • сделать, чтобы сотрудники могли сами предлагать треки прямо в вебе;
    • и голосовать за следующую композицию.

    За звук у нас отвечает Илья, которому изначально и пришла идея. Сейчас в плейлисте уже много треков, плюс специально сделанные для такого случая джинглы.

    Музыка, в основном, подбиралась фоновая. Хотелось, чтобы она всем нравилась, и тут помог большой опыт написания треков и составления плейлистов для мероприятий. Преимущественно это легкий liquid funk, chillwave, deep house, dub techno, немного эмбиента, электронный поп, немного инди-рока и несколько пасхалок из игр. Плюс отдельные плейлисты для рождественских праздников, дня святого Валентина, Хеллоуина, дня рождения War Robots и других событий.

    P.S. Приятное лично для нас, захотелось поделиться. Когда все заработало, ребята из других отделов — Егор Гафидов, Даша Карякина, Анастасия Колчина и Софья Соломонова — сделали нам крутой подарок в виде комикса:



    ПРОДОЛЖЕНИЕ КОМИКСА









    Pixonic
    148,00
    Разрабатываем и издаем игры с 2009 года
    Поделиться публикацией

    Комментарии 23

      +5
      После введения музыки в туалетах эта часть вашей картинки стала, наверное, в разы актуальнее :-)

      Please, don't stop the music

        +1
        И ротация засыпающих увеличилась) Но все зависит от стиля музыки, каждый день меняем)
          0
          под CBL засыпают, а следом включается что-нибудь бодрое
            +1
            Главное, попасть в ритм.
            0
            А почему решили не использовать готовые облачные стриминговые радио сервисы? Там и расписание, и свой плейлист, и бесплатные тарифные планы.
              +1
              Изначально мы рассматривали self-hosted решения, только для своих. Поэтому даже не рассматривали подобный вариант. Но я буду рад, если вы поделитесь сервисами которые используете.
                +1

                К примеру достаточно неплох radionomy, когда я его использовал мне все нравилось, удобная веб панель, нет ограничения на количество пользователей, они берут на себя хостинг, возможность загрузить любой трек, настроить расписание и тд. Единственный существенный минус как по мне, то что они предлагают стриминг 128кб/с, но с другой стороны как для радио должно хватать этого.

              0
              А как быть с отчислениями? Берёте проигрываете чужую музыку, в коммерческих целях. Это не к тому, что вы плохие, это вопрос к тому, что делать есть придут и спросят?
                +1
                цели абсолютно некоммерческие

                  +2
                  Всё, что делают в компании в рабочее время, можно назвать коммерческим.
                    +3
                    Любой грамотный юрист легко обоснует, что любые действия улучшающие условия труда персонала, это действия в коммерческих целях. ОК?

                    И это не говоря о том, что Михалков умудрялся выставлять счета авторам, за воспроизведения ими своей собственной музыки.
                    +1
                    Как вариант — есть бесплатная музыка, Libre.FM, например.
                    +2
                    Спасибо за статью.использовал Libretime тоже, то в итоге мне больше понравился проект azuracast.com и кстати там есть возможность голосования за треки.так же есть онлайн плеер и экспорт плейлистов в .pls/.m3u.Количество радиостанций не ограничено.
                    интерфейс с моего радио




                    Саму страницу для радио потом вынес на домашний хостинг.В плане освоения помоему самая простая система.Хотя выбирать особо и не из чего.как аналоги находил только https://linuxradio.tools/(сайт уже не работает, но автор выкладывал очень интересный проект и если кто-то захочет, могу его скинуть), Airtime/Libretime да упомянутый Azuracast.Кому интересно, такой итог получился у меня
                      0
                      Извините, но не согласен с Вашими выводами по поводу Либратайм:
                      Минусы:
                      Встроенный модуль, который при автозагрузке треков сам высчитывает Fade in и Fade out, и делает это очень плохо. Многие треки обрезает до минуты.

                      Нужно было обновить библиотеку silan до последней версии.
                      Не обновляется.

                      Посмотрите тут — последние апдейты несколько дней назад:
                      github.com/LibreTime/libretime
                      Необходимость обязательно делать расписание вещания отдельно на каждый день.

                      Совершенно нет. Делаете «связанную» программу и раскатываете до бесконечности.
                      Ограниченная длина плейлиста.

                      Да, максимально 24 часа)))

                      Почему я это пишу — просто Либратайм один из немногих продуктов для радиовещания в интернете и поверьте — достаточно энтерпрайзного уровня: каждая третья станция работает на нем. Продукт достаточно отточен, просто нужно было изучить документацию по продукту, которая в избытке.
                        +1
                        Спасибо за комментарий! Добавил в статью комментарии в нужных местах.

                        Когда мы пробовали LibreTime впервые — проект обновлялся не так часто. Поэтому проблемы с Silan и длиной плейлиста побудили искать новое решение.

                        Сейчас Libre большой и крутой проект, просто для нас он оказался избыточным. :-)
                        +1
                        одна и та же хорошая музыка

                        Выглядит как конкретная жесть. У вас работают клоны с одинаковыми музыкальными вкусами? Хорошая это какая? Шнитке, Губайдулина или Мэрлин Мэнсон?
                          –1
                          >сделать, чтобы сотрудники могли сами предлагать треки прямо в вебе

                          К вам представители РАО еще не наведывались? :-)
                            +3
                            Мне комикс понравился…
                            :)
                              0
                              Присоединюсь) Кто рисовал комикс?
                                0
                                Рисовал Егор Гафидов, а идея принадлежит Даше Карякиной, Анастасии Колчиной и Софье Соломоновой.
                                  0
                                  Это всё сотрудники?
                              0
                              А поделитесь плейлистом?
                                0
                                Вы хотите холивар на пятьсот страниц?

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое