Полезные привычки программиста после 30, MySQL vs Postgres и как поговорить об этом в субботу

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


    Вы сможете задать вопрос голосом, просто открыв этот плеер на ютубе в субботу и следуя нехитрым инструкциям.

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

    Небольшая предыстория. Прошлой осенью ребята из Skyeng поучаствовали в 25+ митапах, в основном — региональных. Запись была где-то на половине: при этом большинство роликов выкладывалось с огромной задержкой по времени, а запись с нормальным звуком получилась на трех-четырех событиях. Трансляция была на пяти: нормальный звук в трансляции — на одном.

    И это казалось странным: 21-й век, люди в космос летают, а стрим сделать не могут.

    Зачем региональному митапу трансляция на Youtube


    Часто слышал от организаторов, что «если мы сделаем трансляцию, никто не придет». Имхо, люди, которые не хотят к вам приходить, — и так не придут.

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

    Наконец, трансляция на Youtube — самый простой вариант получить артефакт со встречи. Стрим сохранится автоматически и будет доступен, пока в стране не заблокируют пока того будет хотеть видеохостинг и вы. Затем стрим можно нарезать и выложить доклады отдельными роликами. Возможно, через пару лет сообщество заглохнет. И даже записей на ютубе не останется. Обидно.

    Как организовать трансляцию, имея два ноутбука и Google Chrome


    Обычно трансляция представляется как головная боль — нужен человек с камерой и кучей проводов. А то и несколько людей и несколько устройств. К этому бы хитрое ПО и человека, чтобы им рулил. Еще и железо может потребоваться. И со всем этим нужно разбираться, а часто — и платить за такое великолепие.

    Да, но нет. Точнее, если вы хотите организовать на митапе стрим уровня конференции, то, конечно, вам нужна видеобригада. А если вам достаточно, чтобы:

    • было видно человека,
    • было четко видно слайды,
    • было четко слышно человека,
    • и вы могли минимально режиссировать трансляцию, то...

    С высокой вероятностью, будет достаточно того, что у вас и так было, накопилось за период пандемии и легко докупается при необходимости: ноутбука, вебки, простой аудиокарты и проводов-переходников из любого музыкального или радио-магазина.

    Остальное можно сделать с помощью самого просто браузерного ПО, возникшего вокруг API Youtube — сегодня есть несколько сервисов, которые предлагают что-то вроде смеси старого (еще с возможностью стриминга на ютуб) Hangouts и OBS — программы для режиссирования трансляций.


    По сути, у вас есть видеокомната и несколько элементов управления стримом: возможность подключать разные источники картинки и звука, а затем выводить их в эфир. Справа — лента комментариев с ютуба.

    Мы остановились на Streamyard — просто потому, что его использовали несколько подкастов, которые мы слушали. Этот сервис в бесплатной версии мы и проверили на втором митапе PHP NN в декабре 2019-го. Получилось вот так:


    При 25 людях в зале, к эфиру в тот день подключились порядка 100 человек (максимум 18 одновременно). А через неделю ссылка на трансляцию попала в PHP-дайджест — пришло еще 200+ зрителей.

    В целом, все было просто: мы заранее завели ссылку на трансляцию, пошарили всем желающим. В день митапа в браузерной видеокомнате захватили экран второго ноутбука, откуда открывали слайды: так их было видно и на проекторе, и в стриме. Второй ноутбук заодно служил камерой — под рукой не было вебки, а ноут как раз «смотрел» на докладчика.


    Простите за качество фото, другого не сохранилось. Чтобы докладчик не выходил из поля обзора камеры, наметили ему «загончик» бумажными стикерами на полу.

    Так как зал был маленький и без подзвучки в виде микрофонов/колонок, то каждый спикер одевал блютус-гарнитуру, чтобы его было четко слышно в трансляции. Для снятия вопросов из зала мы использовали вторую гарнитуру: она был подключена к телефону, а телефон — к стриму через ссылку на видеокомнату, открывавшуюся в том же хроме.


    Зрители трансляции в PHP-чате Нижнего тут же заинтересовались реализацией.

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


    До сих пор кажется, что это неплохо для наколенного решения, развернутого за 15 минут из подручных материалов и без какого-либо навыка в организации трансляций.

    Дальше мы стали думать, как улучшить картинку и звук.


    Как снять звук


    Первая идея с блютус-наушниками или гарнитурами работает терпимо, но имеет свои минусы. Во-первых, не у всех таких устройств нормальный микрофон. Во-вторых, по-хорошему, их надо усиливать программно, накручивая чем-то звук на управляющем ноутбуке. В-третьих, если в зале есть микрофоны и подзвучка, возможны наводки и другие странные эффекты от соседства микрофона, колонок и гарнитур.

    Обычно микрофоны и колонки коммутируются через пульт. Мы стали думать, как завести звук с пульта в ноутбук — и увидели простое решение.


    Выход пульта + провод джек-миниджек + микрофонный вход аудиокарты. Эта схема проста. И больше нет ничего)

    Такая схема может работать и при отсутствии пульта, если есть доступ к колонкам, а у них есть лишний выход. Просто сами переходники будут чуть другими: XLR на миниджек.

    После подключения к ноутбуку остается проверить в настройках Streamyard, что аудиокарта распозналась как источник сигнала. И зрители онлайна будут неплохо вас слышать. Как пример, вот запись недавнего митапа в Самаре:


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

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


    Как вывести звук от зрителя трансляции в зал


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

    Чтобы человека по ту сторону браузера было слышно в зале, мы задействуем выход аудиокарты на наушники: забираем звук в пульт при помощи переходника с миниджека на пару «тюльпанов» или джеков.


    Вот эти ребята.

    Обычно мы кидаем ссылку на комнату в комментарии на ютубе или чат митапа в телеграме. Те, кто хочет, подключаются, а дальше мы выводим их в эфир с управляющего ноута.


    Для зрителя трансляции призыв подключиться выглядит как-то так: этот же комментарий с активной ссылкой можно найти в чате трансляции.

    А дальше наступает время общения.


    Что в итоге


    • Кажется, мы нашли и отработали доступный способ сделать интерактивную трансляцию для регионального митапа. Вам не надо много оборудования и навыков, чтобы воспроизвести схему, а еще она довольно проста: можно обучить коллег и рассчитывать на их помощь в случае чего, можно легко запустить или продолжить управление трансляцией на другом ноуте, имея доступ к аккаунту и пр.





    На недавний стрим заходило уже свыше 400 зрителей, до 90+ были одновременно в трансляции, а порядка 50 человек смотрели весь митап целиком. Онлайн-зрители подключались с вопросами из разных городов.

    • Сетап из различных вариантов коммутации и аудиокарты стоил порядка 2 тысяч рублей: мы закупили побольше переходников и взяли карту, о которой точно было известно, что она распознается на устройствах с современными версиями винды и макоси. Опять же, в теории можно было сэкономить и на аудиокарте, и на проводах — если вы хорошо знаете площадку и не собираетесь ее менять, а также готовы повозиться с драйверами для карточки. Найти такое оборудование в продаже можно почти всюду, а если что — заказать с доставкой.



    Все оборудование между митапами помещается в небольшой чехол и спокойно хранится-транспортируется.

    • Быстро поняли, что идеально стримить по проводу: вайфай нестабилен. И докупили переходник Ethernet на usb. В целом, можно стримить и по воздуху — если вайфай моргнет, Streamyard сам поднимет трансляцию по той же ссылке обратно.


    Какие есть ограничения


    Бывает, что Streamyard плохо работает с машинами на Linux — то звук отвалится, то лапы, то хвост. Отловить точную причину мы не смогли. Но если онлайн-зрители выходят в эфир с линуксовых устройств, надо быть готовым к тому, что их не будет слышно. Или они не услышат вас. И вы никак не проверите это до: система управления трансляциями простая, она не предполагает второго аудиоканала для общения за эфиром — вы можете лишь втайне чатиться с подключившимся человеком, пока не выведете его в стрим.

    Но, учитывая, что у вас просто митап, а не платная трансляция с конференции, накладки можно простить.

    P.S.: Пока это все неразрешимые проблемы, которые мы выявили. Вы можете помочь нам словить больше багов смешанного формата, подключившись к 3-му нижегородскому PHP-митапу в эту субботу, 14 ноября. Стартуем в 11 часов по Москве/Киеву/Минску.


    В этот раз обкатаем на бою схему с подключением напрямую к колонкам. В теории, должно работать.

    Only registered users can participate in poll. Log in, please.

    Интерактивные трансляции с офлайновых региональных митапов

    • 76.7%нужны, давно пора и хватит это терпеть33
    • 9.3%не нужны, онлайн-зрители все равно не получат главного — общения в перерывах4
    • 4.6%не нужны, потому что «отъедят» аудиторию у офлайна2
    • 9.3%блажь и попросту сойдут на нет, когда все вернутся в офлайн4
    Skyeng
    Крутейшая edtech-команда страны. Удаленная работа

    Comments 5

      0

      Все оборудование между митапами помещается в небольшой чехол и спокойно хранится-транспортируется


      Не совсем понял, куда пропали два ноутбука, пульт, колонки?

        0
        Не совсем понял, куда пропали два ноутбука, пульт, колонки?

        Привет. Ноутбуки — это личные ноуты организаторов: в основное время мы на них работаем, так что они мертвым грузом без дела не лежат, в отличие от проводов.

        Колонки, микрофоны, пульт — остаются площадке. Обычно же под митап можно найти площадку, у которой есть стулья, звук и проектор/плазма. Где-то это может быть бар, — так в Волгограде ИТ-сообщество собирается. Часто коворкинги располагают такой инфраструктурой. Или залы в отелях-гостиницах — их можно за небольшие деньги арендовать на 20-40 человек.
          0
          Чтобы докладчик не выходил из поля обзора камеры, наметили ему «загончик» бумажными стикерами на полу
          решение просто one love))

          Какие еще митапы, кроме PHP, организуете?
            +2
            Привет! Своих митапов организуем пока мало — в основном поддерживаем те, что делают региональные сообщества: докладами, денюжкой на пиццу-зал, где-то наклейки напечатать помогаем, где-то ресурсами по трансляции или промо. Самим же тоже хочется, когда кто-то от нас выступает, чтобы то увидело-услышало больше людей. Митапы поддерживаем по тому, о чем есть докладчики в компании: в целом, стандартный набор — бэк (тот самый PHP), фронт, мобильная разработка, тимлидство, аналитика, QA. Свои когда делаем, тоже в эту степь идем)
              +1

              spasibo_kep еще забыл упомянуть, что создают региональные чаты (там где их нет) и этой движухой по стране по сути собирают туда людей. А еще делают дизайн аватарок для сообществ.

            Only users with full accounts can post comments. Log in, please.