Заметки о том, как я писал SFU на Rust (1 часть)

Как устроен SFU изнутри: Publisher, Subscriber, комната-маршрутизатор и никакого перекодирования. Дневник разработки на Rust.

Все о создании и обработке видео

Как устроен SFU изнутри: Publisher, Subscriber, комната-маршрутизатор и никакого перекодирования. Дневник разработки на Rust.

Представьте, что вам нужна фотореалистичная 3D‑копия реального объекта или сцены: например, лица актёра для крупного плана или целой городской улицы. Сегодня для этого есть два инструмента: классическое 3D‑моделирование и фотограмметрия. Однако они съедают недели работы и ломаются там, где очень важны детали, — волосы, хром, стекло, отражения превращаются в артефакты. А на то, чтобы снять реалистичную сцену или объект так, чтобы это масштабировалось на тысячи единиц, обычно уходит слишком много времени и денег.
Выход из этого тупика для целого ряда задач мы нашли в Gaussian Splatting и прогнали технологию через несколько очень разных проектов: сканирование людей и локаций для кино (например, для «Кибердеревни»), создание цифровых двойников городских кварталов и симуляцию для автономного транспорта. Инструмент один — задачи разные. И именно на этом контрасте и родилось самое интересное.
Сегодня я расскажу, как риг из 15 камер заменяет установку за сотни тысяч долларов и зачем мы используем движущегося человека как калибровочную доску. Объясню, почему для беспилотного автомобиля фотореализм обязан рождаться из данных, а не из 3D‑редактора. Ну и, конечно же, расскажу про YaGS Plugin — наш опенсорс‑плагин, который делает Gaussian Splatting полноценной частью сцены в Unreal Engine.

Нет смысла объяснять, что это такое, хотя Word и даже корректировщик этого сайта подчеркивают его как несуществующее.
Первое упоминание от 31.10.2002 здесь - на сайте российской компании из города Иванова. И да, сайту почти 30 лет. Для кого-то это признак отсталости, для кого-то признак качества. Мы работаем и с теми, и с другими.
Видеоаналитика появилась в Спецлабе, как нам кажется, задолго до того, как Intel открыл у себя в нижегородском филиале департамент OpenCV с библиотекой «Имадж процессинг». Даем слово Олегу Витальевичу Гришанину – основателю компании Спецлаб:

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

У меня есть мультик про мебельщика Михалыча. Снят в жанре мокьюментари — как будто кто‑то пришел с камерой к небольшому производству и снял документалку про обычный рабочий день. Интервью на камеру, бытовые сцены, узнаваемые типажи. Только всё это нарисовано и анимировано нейросетями — без художника, без аниматора, без актеров.
Первую серию сделала, и вроде бы разобралась с процессом в целом. Но вторая оказалась сложнее, появился новый персонаж, сцены с двумя людьми в кадре, реквизит с текстом, который надо держать читаемым на протяжении всей анимации. Где‑то пришлось изобретать приёмы на ходу, где‑то переделывать по два‑три раза.
В этой статье — полный разбор второй серии по шагам: что делала, что не получилось сразу и как решала.

Всем привет! Листал ленту тиктока и попался американский ролик про СДВГ, где всё объясняют на утках. Понравилось. И я подумал: классно было бы сделать такой же тикток, только на русском.
Но я ленивый. Снимать, писать сценарии, делать всё с нуля - это скучно. А вот взять готовый ролик и перевести-переозвучить его на русский - вот это уже интересно, подумал я, а потом задумался, о том, как это автоматизировать. Это оказалось интересной инженерной задачей, которая увлекла меня на неделю времени, и привела к созданию ИИ утилиты с открытым исходным кодом. А тикток с утками я так и не создал...

Из фото делаем слайдшоу видео и его заливаем (можно unlisted/private, чтобы никто не видел) на любую площадку, где хранят видео. Затем, если надо - скачиваем видео и извлекаем фото обратно. Потери качества - есть, но допустимые.
Идеально для резервного хранения фото.

Всё началось с регистрации футбольного агента
У FIFA есть FIFA Agent Platform. Это публичный портал, на котором можно зарегистрироваться и стать лицензированным футбольным агентом. Отправляешь документы, верифицируешь почту, вот и всё. Очень просто.
Не ожидал я того, что будет потом.

Наткнулся на рекламу сайта продажи авто в телеграме. Зашёл на сайт из любопытства, потыкал объявления и наткнулся на фичу — «3D-панорама». Зажимаешь, ведёшь пальцем, машина поворачивается перед тобой. Понял, что это просто карусель из изображений, а почему бы не сделать настоящую 3D-панораму?

Я занимаюсь маркетинговыми коммуникациями в СИБУРе. Мы продвигаем готовые решения из полимеров (называем их инициативами): поликарбонат для строительства, кабели, бочки, поддоны, упаковочные решения, рукава для хранения зерна, трубы для пожаротушения и многое другое. Каждое направление – это отдельная инициатива со своей аудиторией. Больше половины продуктов — глубокий B2B, про который обычный человек никогда не задумывается. При этом всё нужно объяснять рынку: что такое полимерный стакан, зачем нужен рукав для зерна, и что в проводах тоже есть полимеры.

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

Кто не пользовался плагином Flash Player, на котором «висела» вся анимация, игры и мультимедиа на заре веб-эры? Покажите мне этого человека! Наверное, не найдется такого. Все те, у кого был ПК в нулевые, использовали эту волшебную разработку и, наверное, сейчас вспоминают о ней с долей благодарности и признательности. Почему же технология Flash Player, созданная Macromedia, канула в лету — разберемся далее.

Введение
Изучая французский язык, в том числе, на примерах мультипликационных роликов и мультфильмов, обратил внимание, что там нередко можно встретить высказывания, напоминающие программные поведенческие установки для детей. По крайней мере, они оказывают определенное влияние даже на взрослых, не говоря уже об их основной целевой аудитории.
Известно, что шаблоны поведения любимых героев, с которыми мы знакомимся в детстве, могут оказывать влияние во всей нашей дальнейшей жизни.
Поэтому, знакомство с подобными паттернами поведения в чужой культуре, позволяет лучше понять логику действий не только простых граждан, но и их элит.
Естественно, что главные знания о взаимоотношении с окружающим миром закладываются в более позднем возрасте, например, в студенческой среде.
Тем не менее, детские установки «правильного» или «хорошего» поведения имеют колоссальное значение в жизни каждого взрослого.
В этой статье, мы разберем несколько примеров и дадим им свою оценку. Развитие этой темы, со стороны читателей, будет только приветствоваться.
Ролик «Le petit frere» («Младший брат»)
Посмотреть видео (рис. 1) с двуязычными субтитрами можно в https://my.mail.ru/mail/emmerald/video/_myvideo/2.html :

Одна из моих IP камер перестала сохранять настройки для FTP сервера и перестала в него писать. В остальном она работает, поток RTSP смотреть можно. Камера писала в формате DAV, а роутер будет писать как получится.
Роутер тот самый, что пишет онлайн радио в себя и делает другие безобразия. Надо бы ему, наверно, уже имя дать.
А получится так: rtsp из камеры, в бесплатное облако, из облака m4s куски в роутер и потом ffmpeg склеит их в mp4 на компе.

Давно хотелось влезть в тему генерации видео, но всё не доходили руки. А поскольку мне сильно не нравится современная мультипликация по сравнению с советской (в советской мультипликации, как по мне, были куда лучше и спокойнее образы и краски — смотреть их намного приятнее), то решил начать пробовать генерацию именно с мультиков.
Нашел простенькую сказку — «Колосок» — и стал искать, как в целом можно генерировать видео-контент своими руками.
Если вам было интересно погенерировать видео на открытых моделях и посмотреть, что из этого получится — эта статья как раз про это. Можно наглядно посмотреть результат

...или Протокол SPICE в современном графическом стеке, часть 3.
Мы продолжаем увлекательное путешествие по миру удалённого доступа. Это третья часть цикла про протокол доставки рабочего стола SPICE и то, как он вынужден работать в современных условиях.
Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows. В предыдущих двух частях рассматривали архитектуры самого протокола и графической подсистемы Windows, а сегодня мы готовим плацдарм в вопросах захвата экрана в Windows и сжатия видео средствами различных библиотек, фреймворков и API. С кодом и компактными пояснениями.
Приглашаю под кат всех любознательных - в особенности тех, кто сталкивается с Windows не только как пользователь; с решениями для удалённого доступа; с протоколом SPICE; с системами виртуализации и виртуальными машинами в принципе.

Большинство медиа-библиотек для Go рано или поздно упираются в одну и ту же проблему.
У них нет собственного декодера.
Вместо этого они полагаются на установленный в системе пакет FFmpeg, shared библиотеки, платформозависимые DLL или внешние исполняемые файлы, которые должны присутствовать на целевой системе.
На этапе разработки всё работает. Затем начинается развертывание.
И внезапно вы отлаживаете отсутствующие DLL в Windows, несовместимые версии FFmpeg в Linux, различия версий из Homebrew на macOS, образы контейнеров без нужных библиотек или продуктовые серверы, где рядовое обновление пакета неожиданно ломает обработку медиа.

Этот вопрос спрашивает каждый второй клиент, обращающийся за системой видеонаблюдения. У каждого свой вкус, поэтому наше мнение – лишь наш вкус от Спецлаб:

...или записки из палаты Линуксоида
Часто ли вам пригождается базовая обработка фото или видео? Понизить разрешение, вырезать область, нанести текст, перекодировать в другой формат и другие задачи. Раньше я пользовался для этих целей самыми разными средствами - загрузка в веб-редакторы, Paint, Photoshop, Sony Vegas.
Пока в один прекрасный момент не пересел на Linux...Удобного видеоредактора для себя не нашёл, а к рабочему процессу в командной строке и установке через dnf install уже привык (я использую Fedora). И понеслась...
Внутри - интересная справка по FFmpeg. Ничего лишнего, максимум примеров с визуализацией и компактными объяснениями. Покажу, какие задачи можно решать с помощью этого инструмента не выходя из командной строки - а таких очень много. В конце - личный опыт: зачем мне эта шизофрения понадобилась и что она мне дала.

А вы тоже перестали обращать внимание на рекламу? Не один же я за последние лет 10 развил в себе баннерную слепоту настолько, что перестал воспринимать даже ту самую «классическую» рекламу, которая раньше прерывала просмотр кино по вечерам.
И ведь что самое интересное — к тем самым роликам иногда подходили на уровне настоящего кино и с подачей, смысл которой разбирали потом годами.
Не верите? А тогда давайте вспомним несколько примеров самой интересной игровой рекламы из прошлого.