Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023)

Материал из 0x1.tv

Докладчик
Сергей Карпеш.jpg
Сергей Карпеш

Современный мир дошёл до того, что в объектив камеры попадает абсолютно всё. Любое событие человек пытается записать, сохранить и распространить. В случае с конференциями не все понимают, как это делать. Организация трансляций является следующим уровнем сложности. Принцип формирования изображения тот же, что и у записи, но обработка должна проводиться уже в реальном времени. Задача не самая простая, но, как показала практика, может быть и хуже. Во время пандемии коронавируса появился термин «удаленный докладчик». Со стороны докладчика очень удобно, но со стороны оффлайн участников и технического персонала, обслуживающего работу конференции, это вызывает лёгкий дискомфорт.

Видео

Презентация

Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023).pdf

Thesis

Долгий итеративный процесс съёмок конференции для проекта 0x1.tv показал оптимальный сценарий: несколько камер с разных ракурсов (докладчик, аудитория) и аппаратный захват картинки, передаваемой на проектор. Далее идёт трудоёмкий процесс синхронизации источников и монтаж итогового ролика. Трансляция же эту операцию выполняет в реальном времени, так как все источники приходят в один компьютер. С точки зрения ПО, для этой задачи есть отличное решение в виде OBS Studio, но для получения качественного результата нужно ещё и аппаратное обеспечение, с которым не всё так просто.

Разумеется, можно попытаться обойтись минимумом оборудования и использовать возможности софта. Автором была опробована комбинация из захвата экрана средствами VLC и звука через PulseAudio с дальнейшей передачей потоков по сети на расположенный в центре аудитории ноутбук. Это решение рабочее, однако было большой ошибкой оставить захват звука на расстоянии (обусловлено расположением камеры), так как повлиять при перегрузке линейного входа удалённо нельзя. При грамотном расположении используемого оборудования подобных проблем можно избежать.

Вторая итерация учитывала набитые шишки. Передача по сети содержимого экрана заменена на захват сигнала, идущего на проектор, что позволяет использовать любой ноутбук, а не только предварительно настроенный. Ранее наблюдался дефицит решений в области захвата, особенно поддерживаемых в Linux. Профессиональные устройства жёстко привязаны не только к Windows, но ещё и к ПО (например, невозможно использовать вне Adobe Premier), а только зарождающийся сегмент «бытовых» устройств стабильностью похвастаться не мог. Из подходящих (на раннем этапе погружения автора в тему) было решение от производителя Epiphan. Это VGA (до FullHD) захват с интерфейсом USB 2.0 и некоторыми «приколами», вроде понижения частоты кадров при повышении разрешения (эффект не критичен для слайдов). Производитель выпускал драйвер под Linux, с которым устройство становилось доступным через v4l2. Со временем появились качественные решения от производителя Magewell, которые подключаются к шине PCI-E и имеют на борту как VGA, так и HDMI (с бонусами в виде передачи аудио и работы по дешёвой витой паре). Правда версия драйвера под Windows имеет больше возможностей по сравнению с версией под Linux. Переход на HDMI сильно упрощает схему подключения, убирает лишние провода, а вместе с ними и земляные петли, которые вносят высокочастотный шум в звук с микрофонов. На момент публикации уже доступны устройства захвата с интерфейсом USB, которые прикидываются веб-камерой и работают на базовом драйвере в любой операционной системе. Качество изображения на динамической картинке у таких устройств сильно уступает относительно устройств без сжатия, подключаемых к PCI-E, но стоимость при этом менее $10 вместо $300.

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

На рынке много сервисов, предоставляющих удобную связь. Самыми распространёнными являются Zoom и Skype. Существуют и свободные проекты, вроде BigBlueButton, которые можно поднять на своём оборудовании. При проведении конференции в гибридном формате самым сложным является переключение между онлайн и оффлайн режимами. В этот момент вместо картинки с ноутбука на проектор требуется подать демонстрацию экрана удалённого докладчика и, при наличии, выводить изображение с камеры на проектор/телевизор для комфорта аудитории. Выполнить эти операции возможно только при наличии отдельных потоков, с которыми будет легко производить различные манипуляции.

Лидером в данном вопросе является Skype, который достаточно давно (как минимум с 2018 года) позволяет получить все интересующие потоки через технологию NDI (передача изображения с малой задержкой по локальной сети). Клиент Skype создаёт по одному NDI потоку на каждого участника звонка, демонстрацию экрана и дополнительно «любой активный». Все свободные проекты не обладают подобным функционалом, однако работают в браузере и можно добиться похожего результата средствами OBS Studio с пагином. Он позволяет использовать NDI потоки в качестве источников и формировать потокииз любого уже имеющегося источника сигнала. Практика показала, что это оптимальный вариант для быстрого переключения между режимами онлайн/оффлайн, который позволяет

Последней проблемой, не дающей оператору спокойно наслаждаться докладом, является передвигающийся по сцене докладчик, за которым приходится следить камерой. Ручное направление камеры можно заменить на моторизированную поворотную платформу. Автору сильно упростило задачу наличие профессионального жёсткого штатива, на голову которого можно легко закрепить напечатанные на 3D принтере шестерни и моторы. Для генерации шестерёнок использовался проект OpenSCAD, контроллером выступила плата Arduino под управлением открытой прошивки для ЧПУ станков grbl. Хоть поворотное устройство и не похоже на ЧПУ фрезерный станок, но требования к прошивке одинаковы: перемещение по осям в координаты с плавным разгоном и торможением. В случае автора камера имеет порт подключения проводного пульта управления zoom-ом, что сильно упростило задачу. Вместо модификации прошики grbl проще выделить отдельный микроконтроллер под реализацию протокола LANC, на который с основного подаётся ШИМ сигнал, где 0% заполнения соответствуют максимальной скорости удаления, 100% максимальной скорости приближения и 50% остановка. Решение выглядит крайне забавно, если учесть единственный источник ШИМ сигнала в прошивке grbl: скорость вращения шпинделя. Аппаратно проблема слежения за докладчиком решена, но ПО требует доработки.

Развитие данного «проекта выходного дня» видится следующим: автоматические слежение за докладчиком при помощи OpenCV и перемещение в координату, определяемую кликом на изображение с камеры общего вида.

Организация записи и вещания научно-технических конференций и роль открытого ПО в данном процессе (Сергей Карпеш, OSEDUCONF-2023)!.jpg

Примечания и ссылки