Всем известна фраза «ты ж программист, почини принтер». Она хорошо показывает, как люди смотрят на вещи «снаружи» и «изнутри». Тем, кто находится «снаружи» IT, всё «компьютерное» кажется чем-то единым: ну, люди просто «возятся с компуктерами». Но когда оказываешься «внутри», сразу видишь гигантские различия между специальностями.

Если брать не всё IT, а конкретно работу с видеотехнологиями, получается похоже. Когда сам ими не занимаешься, тоже можно представлять что-то единое: ведь один и тот же кодек H.264 может использоваться хоть в онлайн-кинотеатре, хоть в видеозвонилке. Получается, там поверх одного фундамента просто разные интерфейсы рисуют? 

Но мы смотрим на видеотехнологии «изнутри», потому что проводим IT-конференции с онлайн-участием, и разработали для этого собственную видеоплатформу. А ещё запустили отдельную конференцию VideoTech, где участники индустрии делятся опытом. И по ней как раз заметно, что опыт бывает очень разным.

Поэтому решили описать для Хабра ряд примеров, проиллюстрировав их докладами с VideoTech: можно и перестать представлять видеомир «единым клубком», и заодно что-то интересное посмотреть.

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


Ностальгия (и выбор кодека/пресета)

Начнём издалека: помните, как люди покупали пиратские CD (даже не DVD) с фильмами в сомнительном качестве, где видеоряд словно ногами утрамбовали в 650 мегабайт? Кто в 2000-м видел, как лицо Нео превращается в пикселястую кашу, ещё тогда понял трейд-офф «размер файла против качества видео». И ещё тогда стало ясно, насколько важен хороший кодек.

Прошли десятилетия, видео смотрят онлайн, о дисках не вспоминают. Однако никуда не делись ни важный трейд-офф, ни вопрос выбора кодека. Более того, специалистов волнует не только «какой кодек использовать»: есть ещё и вопрос «с каким пресетом».

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

Именно так и произошло в истории, о которой рассказывали на VideoTech. 

Онлайн-кинотеатры (и что с пресетами стало в онлайне)

Казалось бы, ну и в чём тогда «большие различия», если уже десятки лет люди бодаются с одним и тем же трейд-оффом?

Однако переход к онлайну добавил новое измерение. Раньше можно было один раз закодировать фильм и записать миллион одинаковых дисков. А теперь один пользователь сидит перед большим телевизором, другому приспичило посмотреть сериал в лесу, третий едет в транспорте. Первому подавай 4K, второй готов терпеть низкое разрешение, а у третьего скорость соединения прыгает каждую минуту и надо подстраиваться.

Так что стало недостаточно «выбрать кодек/пресет»: теперь нужен целый ряд разных вариантов качества, и чтобы между ними всё само переключалось на ходу.

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

Представили ситуацию? А Дмитрию Пискунову из KION и представлять не надо, он о такой рассказывал у нас:

И вот о таком издателям фильмов на дисках не приходилось задумываться. Разница ракурсов уже началась.

Лайвстриминг (и задача синхронизации)

Предыдущие примеры были о предзаписанном контенте вроде фильмов. Но развитие видеотехнологий принесло нам и онлайн-эфиры. Теперь кто угодно может открыть Twitch и показывать миру, как он увлечённо «тапает хомяка». Но понимает ли этот кто-то, какой объём разных технологий задействован, чтобы его тапание качественно распространялось?

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

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

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

Частный лайвстриминг (и опенсорс)

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

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

И опенсорс в мире видеотехнологий тоже может быть не только «большим корпоративным». Одиночка c подходом в духе «чего-то не хватает — сделай сам» может найти точку применения сил вроде такой:

Видеосвязь (и обработка видеопотока на лету)

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

Ну, для начала, под самими словами «высокое качество» люди тут понимают не то же, что в случае с кино или стримерами. Их меньше волнует разрешение картинки, зато больше волнует задержка. Если дядя из Салехарда на экране вдруг стал «пикселястым», это переживаемо: его всё равно снимает не такая хорошая камера, как Киану Ривза. А вот если звук прерывается или из-за задержки люди перебивают друг друга, то попросту неудобно будет вести диалог, и это куда неприятнее.

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

Например, многие хотят «заблёрить» задний фон во время созвонов, чтобы раскиданные носки поменьше бросались в глаза. И о задаче замене фона на ходу у нас тоже был доклад: 

Вот с такой задачей в онлайн-кинотеатре не сталкиваешься: у Киану Ривза с носками всегда порядок. 

Различные применения ML (например, генерация видео)

Сейчас многие говорят о генеративном ИИ. Про создание картинок (вроде Stable Diffusion) всем уже понятно, теперь обсуждают генерацию видео инструментами вроде Sora. Чтобы человек просто текстовый промпт написал, а ему в ответ чуть ли не фильм выдали.

На VideoTech в названии одного из докладов можно было увидеть «Txt2Vid» ещё в 2021-м — до всяких Stable Diffusion. Так сказать, освещали тему до того, как это стало модным!

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

В 2021-м это звучало футуристично. А в 2024-м, хотя такие видеозвонки пока не покорили мир, стала реально использоваться схожая вещь: когда видеоролик переводят на другой язык с помощью ML, делая так, чтобы спикер произнёс своим голосом текст на другом языке (которого он на самом деле даже не знает).

Computer vision

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

На прошлогодней VideoTech спикер Георгий Никандров, занимающийся в Яндексе беспилотными автомобилями, рассказывал об использовании в них лидаров. И вот там рассматривались вопросы, крайне далёкие от «какие пресеты видео нужны Дальнему Востоку». В этом докладе звучали не слова вроде «битрейт» или «задержка», а слова вроде «коэффициент отражения». Оказывается, благодаря нему лидар способен распознавать дорожную разметку.

Видеозаписи докладов мы открываем постепенно, и конкретно до этого дело ещё не дошло, но со временем он окажется на YouTube-канале VideoTech, как и остальные. 

Работаете с другим вариантом? Расскажите!

Разумеется, это далеко не всё. Например, 3D или VR — отдельные большие миры, с которыми конкретно мы мало соприкасаемся. И здесь возникает тот самый эффект «почини принтер». Да, мы не первый год работаем с видеотехнологиями. Но они настолько разные, что какие-то истории от нас очень далеки, и в них мало что понимаем.

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

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

Мы вовсю готовим VideoTech 2024, конференция пройдёт в сентябре. Можно участвовать онлайн (ещё бы, уж такая конференция обязана иметь онлайн-трансляцию), а можно лично поучаствовать в Санкт-Петербурге (всё-таки живое общение никакие видеотехнологии пока что полностью не заменили).

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

Комментарии (3)


  1. TooBigBigs
    09.07.2024 17:11
    +2

    У меня есть опыт сборки материалов для документального фильма в течение реальной жизни. На входе - жизнь, заснятая разными людьми в течение обычной жизни: смартфонами, GoPro, квадрокоптерами, 4K айфонами, видеокамерами и т.д. Всё это непредсказуемо генерируется в среднем каждый второй день. Иногда пару кадров, иногда целое интервью. Задача - систематизированно хранить все эти материалы так, чтобы через год можно было быстро найти что-то нужное. Т.е. на запрос вида, "нужен кадр из Батуми в прошлом году, где странная детская площадка и башня ещё рядом, помнишь такой?" надо быстро (в течение 10 минут) выдать соответствующий файл. И хранить всё это не в "облаке", а на компе, который помещается в рюкзак. И иметь бэкап.

    Не знаю, зачем я это написал, просили рассказать - пожалуйста :))

    p.s. к теме статьи этот опыт относится так, что я, например, по дороге к собственному удивлению выяснил, что интервью с "говорящими головами" h265 умеет сжимать так сильно, что битрейт сравним со аудиобитрейтом без заметного потери качества.


    1. phillennium Автор
      09.07.2024 17:11

      А этот фильм — какой-то публичный проект или люди сами для себя снимают? Просто описали так, что стало любопытно бегло увидеть :)


      1. TooBigBigs
        09.07.2024 17:11

        Нет, проект пока не публичный, работаем над авангардным кино в концепции современного переосмысления Догмы-95.