Всем известна фраза «ты ж программист, почини принтер». Она хорошо показывает, как люди смотрят на вещи «снаружи» и «изнутри». Тем, кто находится «снаружи» 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» до «мультимодальных систем ИИ». Но, возможно, пока что не хватает как раз вашего.
TooBigBigs
У меня есть опыт сборки материалов для документального фильма в течение реальной жизни. На входе - жизнь, заснятая разными людьми в течение обычной жизни: смартфонами, GoPro, квадрокоптерами, 4K айфонами, видеокамерами и т.д. Всё это непредсказуемо генерируется в среднем каждый второй день. Иногда пару кадров, иногда целое интервью. Задача - систематизированно хранить все эти материалы так, чтобы через год можно было быстро найти что-то нужное. Т.е. на запрос вида, "нужен кадр из Батуми в прошлом году, где странная детская площадка и башня ещё рядом, помнишь такой?" надо быстро (в течение 10 минут) выдать соответствующий файл. И хранить всё это не в "облаке", а на компе, который помещается в рюкзак. И иметь бэкап.
Не знаю, зачем я это написал, просили рассказать - пожалуйста :))
p.s. к теме статьи этот опыт относится так, что я, например, по дороге к собственному удивлению выяснил, что интервью с "говорящими головами" h265 умеет сжимать так сильно, что битрейт сравним со аудиобитрейтом без заметного потери качества.
phillennium Автор
А этот фильм — какой-то публичный проект или люди сами для себя снимают? Просто описали так, что стало любопытно бегло увидеть :)
TooBigBigs
Нет, проект пока не публичный, работаем над авангардным кино в концепции современного переосмысления Догмы-95.