Обновить
64K+

Работа с видео *

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

72,16
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Шоу должно продолжаться. Сценарный пульт для одного шоу

Время на прочтение6 мин
Охват и читатели12K

Лет 10 назад, когда я работал в банке в Сибири, был у нас отдел - малая автоматизация. Делали ПО для местных. Потом отдел расформировали и перешли на централизованное ПО.

Сейчас каждый может стать таким небольшим отделом малой автоматизации. Для себя, для личных нужд или для своих.

ИИ помогает делать проекты, которые раньше ты бы никогда не сделал. Или дорого по времени, или по ресурсам. А сейчас.... Давно уже не испытывал такой личной упоротости в маленькие проекты. Про один я уже писал, теперь расскажу про другой.

Итак, добро пожаловать на шоу!

Читать далее

Новости

Как разобрать и собрать заново видеоплатформу Okko, пока ей пользуются миллионы

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели5.5K

Иногда легаси нельзя постепенно улучшить: его приходится разбирать, переосмысливать и заменять, пока основной продукт продолжает работать. Именно в такой ситуации оказались мы в Okko. Нам нужно было отделить воспроизведение от монолита, переписать транскодинг, заменить единовременно старую CMS и сохранить непрерывную работу онлайн-кинотеатра. В результате мы получили единую Видеоплатформу с документированными API, собственным кодированием 4K и HDR, управляемой аналитикой и возможностью разворачивать отдельные инсталляции для внешних партнёров.

Привет! Меня зовут Юлия, я представляю компанию Okko — один из крупнейших и старейших онлайн-кинотеатров России. Сервис появился в 2011 году и за это время вырос в сложный технологический продукт, ежедневно работающий с большими объемами видеоконтента и высокой нагрузкой.

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели8.1K

Продолжаем изучать, как устроен SFU изнутри: добавляем simulcast, ice restart и мониторинг сети. Дневник разработки на Rust.

Читать далее

Кадры вместо видео: как индустрия обходит вес scroll‑scrub анимаций

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.6K

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

Читать далее

HLS Lazy Muxing 2.0 Как срезать 80% CPU и не остановить запись архива

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.9K

Если кто то, когда-либо занимался видеопотоками поверх интернета, т.е использовал классический медиасервер работающий по принципу RTSP to HLS (или ему подобные протоколы) тогда он знает какие проблемы возникают. Для примера возьмем двух гигантов, Flussonic и Wowza. В документации Flussonic`a есть четкие аппаратные характеристики при которых ЦП начнет долбиться в сотку: 250 камер с битрейтом 2 Мбит/c, на Xeon E3-1230v5 3.4 GHz + 32 GB RAM. У Wowza же четких примеров нет, но если немного «экстраполировать», то у нее на том же железе около 350-400 камер с битрейтом 2 Мбит/c, загружают процессор на сотку. Давайте внесу оговорку: я понимаю, что указанное железо довольно старое. Но 80% малого и среднего бизнеса на +/- таком работают, я имею ввиду тех, кто не пользуется облачной инфраструктурой или не арендует железо в ДЦ. Так вот, казалось бы, ну такая вот нагрузка, что с ней поделать? Проблема в том, что в моменте эти потоки никто не смотрит. Условный «охранник» залипает в телефоне, пьет кофе – а сервак 24/7 продолжает нарезать сырые кадры в HLS-сегменты и писать архив, грея серверную. Банальное расходование ресурсов в пустую, когда они не нужны. А в наш век стоимости на железо – стоит беспокоиться о таких вещах.

Решение на поверхности, и многие о нем знают – режим On Demand (по запросам). Нет зрителей – тушим камеру.  Есть зритель – отдаем HLS-поток. Казалось бы, все идеально, вопрос решен, расходимся. Но тут вылезает главная проблема классического On Demand - как только зрителей нет, соответственно камера потушена, запись архива не ведется. Для любой системы безопасности – это новомодный «ред флаг».

Читать далее

Пишем терабайты видео на диск в Go и не даем ОС сожрать всю память

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели63K

Выкатили мы первый релиз в прод (100 камер), обрадовали клиентов, начали работать. Прошел где-то час, полетели алерты. Залезаю на сервак, смотрю htop – а там свободно 100 метров ОЗУ. Пу-пу-пу-пу. Нужно внести уточнение что боевой сервер имел 32 гига озу. Ожидаемое поведение было то что процессор отдыхает, сетевуха переваривает трафик, озу 250-300 МБ, диски нагружены не сильно. Так что, когда видишь такие цифры в htop, начинаешь винить себя и свои кривые руки, написавшие это "Г". Но все же решили пойти в Гугл, чатгпт и тому подобное. Благо, ответ нашелся быстро, и посыпать голову пеплом перестали.

Код оказался не вообще не причем, память сожрал сам Линукс. Если когда-нибудь вы писали тонны данных на диск, я думаю вы уже поняли в чем дело. Есть такой «невидимый враг» как страничный кэш (Page Cache). Вот именно он и был корнем этой проблемы.

Как работает страничный кеш и что с ним делать?

Когда ваша функция, которая должна писать данные на диск пишет данные, на самом деле она не пишет их на диск. Она пишет их в ОЗУ. Логика ядра Линукса проста и банальна, и она направленна на ускорение «отзывчивости» системы, всю суть можно объяснить так: «О, только что записали сотню гигабайт данных, наверное, скоро понадобится эти данные прочитать. Оставлю-ка я их в кеше, пользователь будет рад что так быстро смог их прочитать.» И так гигабайт за гигабайтом, пока в сервере не кончится физическая память.

Типичное решение проблемы – пишем скрипт, который раз в час делает echo 3 > /proc/sys/vm/drop_caches. Ну а кто-то просто забивает и позволяет системе убивать случайные процессы через OOM Killer. Но мы же пишем отказоустойчивую штуку. Нам такое не подходит. Задача объяснить ядру ОС, что наши fMP4 сегменты видеоархива — это write-only мусор на небольшое количество времени (т.к если клиент не хочет долго хранить записи, то архив чистится, а если хочет – мы отправляем архив после N времени хранения в S3, а локальную копию тоже чистим). Так что все должно работать по принципу – записал и забыл.

Читать далее

Как добиться 8 Гбит/с видеотрафика на одном ядре CPU в Go

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.9K

Предисловие

Есть небольшой побочный профиль, которым я занимаюсь – ретрансляция сырых потоков RTSP, в HLS. По сути задача простая, чтобы любой простой юзер мог увидеть картинку со своих камер, не пользуясь проприетарным облачным ПО от производителя камер. Во-первых, это много денег, т.к многие клиенты хотят хранить достаточно долго записи с камер. Во-вторых, почти у всех производителей камер разное ПО, и это тупо не удобно иметь 10 разных приложений и/или порталов, где это все можно посмотреть. Ну и в-третьих мало где есть интеграции с ИИ (что для моих клиентов, критически важно). Даже если эта интеграция есть, она либо узкоспециализирована, либо опять-таки проприетарна, либо стоит много денег, а иногда и все это вместе. Решение - использование сырых RTSP потоков, их поддерживают и отдают 90% всех камер на рынке.

Так вот, схема была достаточно проста: несколько камер, простой бэк, выдаем на едином ресурсе для клиентов картинку по HLS, используя плеер hls.js. Всех все устраивало, всем все нравилось. Быстро, просто, удобно и не дорого. Тесты работали идеально, клиенты довольны. С каждым был чат, куда выдавали ссылку на просмотр, а также был общий чат со всеми клиентами – где обсуждались вопросы подключения, финансовые ну и прочее. И вот настает момент Х, кто-то по ошибке скидывает в общий чат ссылку…и конец. По ссылке кликнул видимо весь чат, 3 минуты, полетели алерты в боте, алярм, ахтунг, тревога. Смотрим железо, сервер в ауте, ООМ, все потоки отвалились. Через 20 минут чат разрывался от гневных сообщений, о неработоспособности у всех. Занавес.

Читать далее

Как собрать «живую луну» из 500 000 точек в TouchDesigner

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.8K

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

Основной эффект строится на связке Point Generator POP, Feedback POP, Noise POP и Math POP. Шум смещает частицы, а нормализация каждый кадр возвращает их на поверхность сферы. Благодаря обратной связи деформация превращается в непрерывное движение.

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

Читать далее

MiniMax H3: нейронка, которая сама себе режиссёр, звукарь и монтажёр

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели9.5K

Есть такой тип новостей – после которых ты просто закрываешь ноутбук и минуту тупишь в стену. Вот у меня так случилось пару дней назад, когда я добрался до демок MiniMax H3. И нет, не потому что “о боже, ещё одна видеомодель” – их сейчас штампуют как флагманские смартфоны. А потому что H3 упорно отказывается вести себя как обычная видюха.

Обычно у таких генераторов фокус один: текст → видео, ну или картинка → видео, максимум монтаж отдельным сервисом прикрутят. А тут прям с порога плюют на границы – между “сгенерировать” и “отредачить”, между “картинкой” и “звуком”. Кидаешь ей шесть референсных изображений, ролик-образец для тайминга монтажа и одно предложение текста – она выдаёт 15-секундный клип, смонтированный именно так, как в примере. Просунул зелёный экран с актёром – уберёт хромакей, подставит сказочный лес и перестроит освещение под новую сцену.

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

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

Читать далее

Свет, камера, IDKFA!: как мы снимали первый российский фильм о реверс-инжиниринге

Время на прочтение13 мин
Охват и читатели14K

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

В 2001 году российского программиста Дмитрия Склярова арестовали в США по обвинению в нарушении DMCA — американского закона об авторском праве в цифровую эпоху. Скляров участвовал в создании программы Advanced eBook Processor: она позволяла сделать копию легально купленной электронной книги в формате PDF. На конференции DEF CON в Лас-Вегасе он рассказал о недостатках защиты Adobe, после чего был арестован. Скляров стал первым физическим лицом, которому предъявили уголовное обвинение по DMCA — хотя красть он ничего не собирался.

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

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

Читать далее

Как перестать переснимать обучающие видео после каждого редизайна

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.8K

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

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

Предсказуемо, видео перестали обновлять. Тогда я написал штуку, которая собирает ролик из текстового файла.

Читать далее

Как рационально разделить длину раскадровки | Практическое руководство по созданию раскадровки с помощью Viddo AI

Время на прочтение12 мин
Охват и читатели5K

Как научно рассчитать продолжительность каждого кадра при создании коротких видеороликов с помощью Viddo AI? В этой статье представлена ​​полная методология разделения продолжительности кадров, 5 типов шаблонов контента и многоразовый пример подсказки.

При создании коротких видеороликов с помощью Viddo AI вам нужно всего лишь ввести текстовое описание (подсказку), и ИИ автоматически сгенерирует визуальный ряд. Однако многие создатели упускают из виду важный вопрос: какой должна быть продолжительность каждого кадра?

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

Читать далее

Picture-in-Picture в iOS: от запуска до переключения контента

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7K

С системной функцией Picture-in-Picture (PiP) сталкивались, пожалуй, все владельцы iPhone: кто-то смотрит видео на фоне переписки, кто-то общается по видеосвязи в любимых мессенджерах. Для пользователя это просто удобство, а для разработчика видеосервиса — отдельный механизм со своей инфраструктурой, жизненным циклом и набором ограничений. В этой статье я разберу интеграцию PiP как встроенного плеера: от первого запуска до переключения контента. Поделюсь нюансами, с которыми вы точно столкнётесь на практике, и покажу, как обойти типовые грабли.

Читать далее

Ближайшие события

Kandinsky WM 1.0: генеративные модели для Physical AI

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели10K

В конце прошлого года мы представили семейство моделей генерации изображений и видео Kandinsky 5.0. Флагманская модель Kandinsky 5.0 Video Pro заняла и долгое время удерживала первое место среди open-source-моделей в категории text-to-video на arena.ai. Сегодня мы выкладываем в открытый доступ Kandinsky WM 1.0, набор из трех специализированных моделей генерации видео для доменов Physical AI: автомобильные сценарии, робототехника и сцены со сложной физикой.

Читать далее

Shorts Maker v2: как я превратил AI-генератор видео в возобновляемый production pipeline на Python

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели10K

Как превратить работающий AI-прототип в надёжный production pipeline? Разбираю архитектуру Shorts Maker v2 — генератора коротких видео на Python с DDD, возобновлением после сбоев, checkpoint’ами после каждой сцены, ограниченной конкурентностью и заменяемыми AI-провайдерами

Читать далее

Почему выбрать денойзер сложнее, чем написать свой

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели14K

Устранение шума на видео с плёнки — тема объёмная, и эта индустрия меня не на шутку увлекла. Немногим раньше я даже обучил свой собственный компактный «устранитель шума Archivist» для плёнки, не найдя существующих альтернатив.

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

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

Всего у нас 6 участников: 5 отобранных нейросетей, 1 ручной алгоритмический ветеран индустрии + 1 потенциальный король новой эры.

Читать далее

Как я создаю видео по сториборду

Время на прочтение13 мин
Охват и читатели8.9K

Если попросить нейросеть "сгенерируй видео" одной фразой, результат почти всегда получается случайным. Работает связка из двух моделей. Сначала генерируется один статичный лист с раскадровкой (несколько пронумерованных кадров-панелей), а затем этот лист превращается в видео покадровым промтом с таймкодами, планами и звуком. Ниже - весь метод на примере кроссовка, который оживает по ночам, плюс более продвинутая версия приёма с черновым сториборд-скетчем. Все промты внутри - рабочие, я гоняла их сама.

Читать далее

Шлём своё видео через чужое радио или реверс инжиниринг BETAFPV P1 Air Unit

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели17K

На рынке цифровых FPV-видеосистем внезапно появилась куча «новых» брендов — BetaFPV, HGLRC и другие. Вот только стоит вскрыть их модный HD-юнит, и выясняется кое-что любопытное про то, что скрывается под крышкой у всех сразу.

Я взял один такой и решил дойти до самого дна: рут-консоль, пароль, аппаратный энкодер и вопрос, который не давал покоя — а можно ли заставить FPV-очки показать то, чего камера никогда не видела?

Читать далее

Система виновата всегда — даже когда она еще не включена

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.7K

 

Когда начинаешь разговор о видеоаналитике, обычно он переходит в русло про точность моделей, архитектуру и алгоритмы. Но за последние три года работы с внедрением данной системы я понял одно — самая сложная часть проекта это не технология. Это люди. И самое неожиданно сильное сопротивление приходит не оттуда откуда ожидаешь.

 Под катом — три рассказа о внедрении, три типовых истории из жизни.

Читать далее

Модель адаптивного стриминга или — как читать уравнения в программирование 2026, скриншоты

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели15K

Здравствуйте, что-бы разобраться c уравнениями, нужно примерно понимать что это не новость а статья.

Читать далее
1
23 ...