Как создать инпут?: post #268 — TG.ME

Покуривая референсную архитектуру DMF пришел к мысли, что можно забабахать что-то объемное и интересное. Давно хотелось, плюс скиллов прибавилось, поэтому... (поэтому посмотри видос)

Поэтому затеял следующее:
- полностью нодовый MXL-based роутер/процессор сигналов;
- каждая нода = самостоятельное стейтлесс приложение с прицелом на k8s;
- открытая архитектура, минимизации привязки к вендорам основного пайплайна (очевидно, что это не касается многих edge-нод), но в процессинге есть все шансы избежать привязки к, например, Nvidia. *тут должна быть знаменитая цитата Торвальдса.
Сейчас готово демо с небольшим, но достаточным для дальнейшей работы над проектом количеством edge-нод + пара простых процессинговых нод. В загашнике имеются:
- накиданный на коленке fabrics-bridge. Прямой доступ к памяти по сетке - натуральное волшебство;
- ST-2110-20 -> MXL (оставим до времен, когда я буду готов к AF_XDP, DPDK и т.д., но HD вполне себе окнорм).

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

Многое выкидывается в помойку, т.к. знатная часть всей истории = RnD, aka Research and Destroy. Но зато я теперь точно знаю: билинейная интерполяция на процессоре - дорого, а падать на асфальт - больно.

Все еще открытым остается вопрос синхры. Хоть MXL, даже с fabrics прекрасно работает с NTP, но будет ли это жизнеспобно при использовании входов/выходов железа - большой вопрос. Пока столкнулся с тем, что SyncGroups достаточно капризны к таймингам. Возможно придется топать на поклон к PTP, но очень не хочется.

Что дальше:
- переделать все, что не переделано на честный многопоток (аудио и видео стоит процессить отдельно), а не в одном кор-лупе. Если для interleaved и поллинг-моделей это еще ок, то для многих видеоконтейнеров/кодеков процессинг в одном лупе = гиблая затея;
- разобраться с синхрой моей локальной инфры;
- проверка архитектуры, путем запихивания в Кубер. Есть даже мысль как избежать DaemonSet для оркестратора/сервака. В противном случае редандаси = дублирование процессингового пайплайна;
- перенос тяжелых вычислений на GPU, при сохранении возможности считать на проце;
- и как только появляется GPU, опять же топаем проверять жизнеспособность в кубере;
- протестировать от и до то, что уже имеется.

Касаемо нейронок:
- скинул на них рефакторинг, написание тестов, прочую душнину;
- бутстрап + дизайн фронта. Спасибо Косте, что помог превратить очевидный нейрослоп в довольно прикольный дезигн;
- базовая структура фронтенда. Я искренне не люблю делать рюшечки и кнопочки. Хоть электронные мозги и ведут себя часто как в анекдоте про 2 шара, но к итерации за номером N вполне способны на многое. Самостоятельно я бы на это убил дней 5-7. И выглядело бы сильно хуже.

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

P. S. чтобы легче читалось, советуют добавить эмодзи в пост, вот парочка:
🤸🧘‍♀️

P. P. S.
Совсем забыл про стек:
1) C++17 - база, основа, фундамент, слёзы в дебаггере
2) Vue + Vite - фронт
3) Сборка - cmake c fetchcontent
🔥16❤6👍3😁3🤔2👀2
July 9, 2026 490 13 5