SVC, SFU, MPEG-5 Part 2 LCEVC, CMAF, 8K, Txt2Vid, VMAF NEG и другие удивительные штуки — на конференции VideoTech 2021

cf7c12d94804f15aa992f73883bde779.jpg

Видео — это сложно.

Мы перевели все конференции в онлайн ещё полтора года назад. И все эти полтора года мы мучаемся с плеерами, кодеками, раздачей видео, WebRTC-звонками, транскодингом и ворохом других проблем. Конца и края этому не видно.

Поскольку разбираться в видео нам надо, а фантазия у нас давно закончилась, мы нашли единомышленников и сделали конференцию VideoTech по видео и стримингу. Она пройдёт в онлайне уже совсем скоро — с 1 по 3 декабря.

В числе основных тем VideoTech 2021 — WebRTC, кодеки, качество видео, его раздача, ML/AI и не только. Полный список тем и докладов — в тексте ниже.

Оглавление

WebRTC

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

А ещё внутри него возник «подблок». В этом году VK проделали большую работу над своими видеозвонками: сделали возможными звонки на тысячи участников, выпустили десктопные приложения, поддержали шаринг экрана в 4K и так далее. Поскольку такая масштабная история затрагивает самые разные сферы разработки (бэкенд, фронтенд, десктоп, смартфоны), у нас сразу несколько специалистов из VK поделятся опытом «с разных ракурсов»:

Видеоконференции — звонок на 10К участников во ВКонтакте

f1d05507c649c0793f2f25e8e42dc8f5.jpegИван Григорьев

VK

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

Также Иван погрузится в протоколы и кодеки, чтобы разобраться, как добиться высокой чёткости при демонстрации экрана в разрешении 4К.

VK Звонки: выходя за лимиты браузера

0d7b0ce75bda4c1269ee1935cdbb5986.jpegВадим Горбачев

VK

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

Вводная часть доклада будет посвящена основам (что такое WebRTC, сигналинг, кадры в видео, способы передачи стримов на клиента). Основная часть — тем сложностям, с которыми команда за год столкнулась в VK Звонках, и как их решили.

VK Звонки: соединяем тысячи людей с Android и iOS по WebRTC

6206b9f36fe952257d3a245728d4ee9e.jpegИван Шафран

VK

fd9cda9693626efd7182f1c7e84ea6a7.jpegНикита Разумный

VK

Это взгляд со стороны Android- и iOS-клиентов, так что будет много мобильной специфики. В числе того, о чём пойдёт речь — UI-оптимизации, шумоподавление и виртуальные фоны; Android- и iOS-специфичные API звонков.

VK Звонки: десктопный клиент для видеозвонков без лимита на число участников — с нуля за 365 дней

f1c78a9ee3632eba15a93b273831ced6.jpegПавел Мацула

VK

И, наконец, четвёртый доклад о VK Звонках — про десктопное приложение. Его разработка стала настоящим челленджем: требовалось и поддержать фичи (4K, отсутствие ограничения на число участников), и предоставить нативные сборки под все основные платформы (Windows, Mac, Linux), и всё это в кратчайшие сроки.

Павел расскажет, как команда VK Звонков добилась поставленных целей с помощью нативной сборки WebRTC, кроссплатформенного фреймворка Qt с поддержкой OpenGL, танцев с бубнами и чистейшего кода на С++.

Как подружиться со статистикой WebRTC и сэкономить тысячи часов на отладке

1ebd376d4bb1a912c159ddd2ce8b56e3.jpegИрина Ламарр

Voximplant

7ce4c3833f6cd7be152d9ec19b81a93d.jpegИгорь Шеко

Voximplant

Разберем форматы статистики WebRTC и узнаем, почему опираться на предложенный W3C вариант практически бесполезно, а использование adapter.js для унификации — не самый лучший вариант. Обсудим популярные сервисы типа callstats.io и testRTC. Рассмотрим опыт написания собственного сервиса сбора статистики и того, как это помогло повысить качество звонков. 

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

Peer-to-Peer доставка видео на базе WebRTC

8c1ac6fd66f50ab4c83d620a7e28cdfc.jpegРуслан Гильмутдинов

IVI

Сейчас тема CDN (content delivery network) как никогда актуальна из-за возросшего трафика. Но что делать, если трафик возрастает вообще в разы? Какой для этого нужен CDN?

Руслан знает, как можно решать эту проблему — он делал не классический CDN, а P2P и с радостью расскажет, в чём особенности. В докладе пойдет речь о работе технологии Mesh delivery (peer-to-peer на базе WebRTC), которая была разработана при непосредственном участии спикера.

It’s time to WHIP WebRTC into shape

46d13a31c929193391ae0eaf3ff04574.jpegRyan Jespersen

Millicast, Inc.

Многие люди, работающие со стримингом, считают WebRTC «неполноценным» — ему не хватает стандартного протокола передачи сигналов, чтобы он работал, как протоколы реального времени RTMP или RTSP.

WHIP (WebRTC HTTP Ingest Protocol) был разработан для решения самой большой проблемы, связанной с принятием WebRTC в качестве надёжного протокола передачи данных: media ingest. При этом WHIP позволяет WebRTC сохранить свои преимущества перед более старыми протоколами вроде RTMP — надёжность при плохом соединении, E2E-шифрование, поддержка новых кодеков (привет, AV1 SVC).

О том, в чём именно улучшения от WHIP и как ими пользоваться, расскажет Райан Йесперсон из Millicast, который имеет более чем 20-летний опыт работы в сфере цифрового видео и стриминга.

Масштабировать видеосвязь, повышая качество: маленькой командой и с кучей ограничений на старте

033cadc2c8d86c9dff1e5299502840ae.jpegАнтон Тейхриб

Skyeng

С 2019 года в Skyeng нагрузка выросла в три раза, а вот количество негативных отзывов на видеосвязь, наоборот, удалось снизить в три раза.

Антон расскажет, как были реализованы различные видеорешения, как начали измерять видеосвязь, от субъективных оценок перешли к объективным на базе ML, попробовали Pion вместо Janus и принудительную деградацию видеосвязи вместо встроенного механизма в WebRTC, и как маленькие компании могут внедрить собственное WebRTC решение.

Делаем SFU-сервер из libwebrtc своими руками

56b25322809335faf9862f44d007907d.jpegДмитрий Байдаев

IVA Technologies

Чтобы сделать свой SFU-сервер, нужно разобраться в спецификации WebRTC и архитектуре её стандартной реализации libwebrtc. Начнём с внутренностей libwebrtc и установки простого P2P-соединения. Разберём путь сырых данных от микрофона и камеры до отправки в сокет, а также встречное направление — чтение данных из сокета, прохождение через движок и воспроизведение на устройствах вывода. Рассмотрим ключевые компоненты библиотеки WebRTC, выступающие «строительными блоками» при создании SFU-сервера.

Затем расскажем о проблемах при использовании этих компонентов «из коробки» и причинах, заставляющих заменить их на что-то своё. Расскажем о том, как слепить из libwebrtc свой сервер и равним получившееся решение с Janus. Большое внимание уделим критериям оценки качества и производительности, а также методикам тестирования. 

ICE-cold connection

86aa8160217765889b9e708bb6d73ad7.jpegАнтон Квятковский

DINS

Антон расскажет о технологии ICE (Internet Communications Engine), которая позволяет установить peer-to-peer соединение между участниками видеоконференции. Вы узнаете о STUN и TURN, заглянете внутрь протоколов, использующихся внутри WebRTC. Доклад рассчитан на аудиторию, которая имеет представление о базовых транспортных сетевых протоколах TCP и UDP, однако ничего не знает о NAT-traversal. 

Кодеки аудио и видео

Система параллельного кодирования видео Кинопоиска: как мы к этому пришли и что будет дальше

f4e202b664737990e4cd8e0a7aefc314.jpegМихаил Мазанов 

Кинопоиск (Яндекс)

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

Сам Михаил увлечен всеми областями интернет-видео (от многокамерной съемки до доставки прямых трансляций по всему миру), и помимо работы в Яндексе, причастен к проекту Olympic Video Player в Олимпийской вещательной службе.

Транскодер на Nvidia Jetson

c897be636ddf5190ddd90f41a424767b.jpegМаксим Лапшин

Эрливидео

В компании Максима разрабатывают и продают транскодирующие сервера на базе мобильных процессоров Nvidia Jetson. В докладе спикер поделится, зачем они это делают, какие проблемы возникли и какие получились результаты.

Взлом VMAF и VMAF NEG, или Почему сравнивать кодеки в ближайшие годы станет заметно сложнее

02936e882976a95b32e56acb7a94c34a.jpegДмитрий Ватолин

МГУ

Если для вас значим вопрос выбора кодека — вполне вероятно, вам известны ежегодные сравнения кодеков от МГУ, которые проводятся уже 18 лет. Дмитрий Ватолин, возглавляющий этот проект, знает многое о хитростях подобных сравнений — и расскажет на VideoTech про «взлом» современных метрик, по которым оценивают качество кодеков.

Метрики развиваются, и все шире используется VMAF от Netflix. Но, как показали исследования, возможно «взломать систему», улучшив результат по этой метрике за счет препроцессинга без улучшения самого кодека. И в 2019-м Дмитрий и его коллеги опубликовали методику подобного взлома. В 2020-м Netflix исправили эту проблему в VMAF NEG. Но в 2021-м в новой публикации Дмитрий с коллегами показал, что завысить можно и результаты NEG. Об этой «борьбе снаряда и брони» и более глубоком анализе кодеков пойдет речь в докладе. 

image-loader.svg

Как работает MPEG-5 Part 2 LCEVC и почему это важно

69d4325108f80d0e8c67e6f523fabcfb.jpegМакс Колесин

V-Nova 

MPEG-5 Part 2 LCEVC (Low Complexity Enhancement Video Coding) — это новый стандарт сжатия видео от MPEG. В стандарте даётся определение «улучшающего слоя», который, применяясь к базовому видео, закодированным другим кодеком, образует видеопоток улучшенного качества.

Макс расскажет про разные стадии процесса кодирования и декодирования LCEVC, какие преимущества можно получить от его использования с разными базовыми кодеками и за счёт чего LCEVC их достигает. 

Качество видео

The Building Blocks of the Netflix Streaming Experience

cd91b227b7a12c2dda89b48de2572d21.jpegTe-Yuan Huang 

Netflix

Когда о своем опыте рассказывает такой видеогигант, как Netflix, это всегда ценно. Тэ-Юйань Хуан, работающая в компании уже семь лет, возглавляет там работу по улучшению качества воспроизведения с помощью адаптивного стриминга и различных оптимизаций. И докладе она рассмотрит четыре важных составляющих этого стриминга, напрямую влияющих на качество:

  • технология кодирования;

  •  доставка контента;

  • адаптивный стриминг;

  •  A/B тестирование. 

Алгоритмы АBR на пальцах

13981d3fbf332381b16a1d824b27584f.jpegОльга Попова 

Яндекс

Ольга, участвовавшая в разработке плеера Яндекса, объяснит простыми словами:

  • что такое «качество видео»;

  • существующие стратегии выбора качества в ABR на примере популярных библиотек для проигрывания видео;

  • дополнительные факторы, которые учитываются в алгоритмах ABR.

Доклад предназначен для разработчиков, которые задумываются, что находится под капотом библиотек dash.js/hls.js/shaka, или собираются сами влиять на выбор качества видео. 

Раздача видео

Раздача видео: эволюция от работы с одним CDN до постройки своего

f3c2348e5f3814c04f61293bc9b3ae4d.jpegАлександр Гутарин

Netflix

Александр на основе опыта работы в Hulu и Netflix в своем докладе расскажет об эволюционном пути доставки видео по мере роста трафика: от использования одного CDN до постройки своего. Во второй части он осветит оптимизацию работы Netflix Open Connect и расскажет, как с её помощью сервис может доставлять до 400Gbps трафика с одного сервера.

Уменьшаем задержку в live-трансляциях

f3870fab7d1ac725f60ab3a7e3f90319.jpegАлексей Гусев

Яндекс

19d00303e6f4764801b55a8510ba6a28.jpegДмитрий Кравцов

Яндекс

Понятно, что чем меньше задержка в живой трансляции, тем лучше. Но как именно подходить к этому? Алексей и Дмитрий расскажут, откуда берутся задержки в трансляции и как их измерять. Затронут технологии low latency streaming, которые позволяют с ними бороться, и о подходе к этим технологиям в Яндексе. Также речь зайдёт про CMAF (Common Media Application Format) — следующий шаг в развитии удобных DASH-трансляций.

Дрессированный медийный трафик Яндекса

b3e7629ab8d98a435539cb8e86ae8f92.jpegАлексей Щуров

Яндекс

Алексей развивает платформу видеотрансляций для сервисов Яндекса, включая онлайн-кинотеатр Кинопоиск. И в докладе рассмотрит соответствующую специфику работы с traffic engineering. Когда контент хранится в дата-центрах далеко от всех стыков с операторами связи, и его очень много. Когда при этом хочется учитывать гораздо больше критериев выбора подходящего маршрута вместо классического в BGP best-route. Когда есть много стыков с операторами, подключенных к дорогим маршрутизаторам, а для медийного трафика с большими операторами есть специальные стыки. 

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

Создание с нуля системы вещания живых трансляций

fd8659c62ed5dd4c76187055a01a1674.jpegЮрий Камышенко

Tango

3bebb7ad186218c5eb71dd9adffa742c.jpegНиколай Иванов

Tango

56f2224526b440a773080b8798c28018.jpegИлья Цветков

Tango

Юрий и его коллеги из компании Tango расскажут о проблемах, с которыми пришлось столкнуться при использовании стека RTMP HLS.

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

Внутренняя инфраструктура 

Оркестрация транскодеров с помощью K8s

8d04a26a61155bc74af09fba07d3ab27.jpegИлья Галимьянов

MTS DIGITAL

Транскодинг аудио- и видеосигнала, а особенно транскодинг живого сигнала на CPU — операция вычислительно дорогая, затраты на нее не особо предсказуемы и прогнозируемы. Оркестрация такого ПО тоже не самая простая задача (все мы строили свои балансировщики транскодеров). Как с помощью Kubernetes справиться со всем этим?  

Машинное обучение

Txt2Vid: Ultra-Low Bitrate «Generative Compression» of Talking-Head Videos to Text

9a7455b6f051cec5080d2ff7cca6b499.jpegPulkit Tandon

Stanford University

Как снизить объём передаваемых данных на два-три порядка, сохраняя при этом высокое качество видео? Как ни совершенствуй традиционные кодеки, такой результат вряд ли получишь. И Пулкит Тандон поговорит о гораздо более радикальном подходе, подходящем для видеозаписей в духе «говорящая голова». Txt2Vid предлагает пересылать сказанное текстом и затем создавать реконструкцию исходного видео с помощью ML (клонирование голоса, синхронизация движений губ). По субъективным оценкам, качество не страдает — и при этом становятся возможны видеозвонки в местах с плохим соединением.

image-loader.svg

Модерация видеоконтента с помощью сервисов машинного обучения AWS

6a54cce85375cf623d16b37a2285e954.jpegМихаил Голубев

AWS

AWS сам по себе сверхпопулярен —, но не все знают, что там есть ML-сервисы для видео. Пора узнать.

Михаил сначала рассмотрит стек сервисов машинного обучения AWS, которые можно применять при работе с видеофайлами или потоковым видео. Затем участники узнают, как облегчить их использование на практике с помощью открытого фреймворка Media Insights Engine, а в конце будет решена задача по модерации путем поиска интересующих объектов на видео.

AWS.ML создание и запуск моделей ML в облаке AWS

4ba53a89d712fb0ed1706188aeed6edf.jpegАлександр Патрушев

AWS

Ещё один доклад про AWS и ML от сотрудника компании, но о другом. Тут не конкретно о модерации видеоконтента, а о создании и запуске в облаке AWS своих моделей для видеотех-нужд.

Александр расскажет, какие для этого существуют сервисы, как организовать жизненный цикл моделей ML, и подробно рассмотрим несколько архитектур готовых решений в области VideoTech.

Реалистичные аватары и их использование для видеоконференций

a31607f6a24da1b3a52c812d6fb96c75.jpegАлександр Шишков

Itseez3D Inc.

Этот доклад поведает про автоматическое создание реалистичных виртуальных персонажей и их использование в видеоконференциях на основе RemoteFace.ai. Речь пойдет об архитектуре приложения и его основных компонентах, использованных технологиях (таких, как отслеживание эмоций и анимация губ для имитации разговора). 

Обо всём этом расскажет Александр Шишков, который более десяти лет работает в области компьютерного зрения. Сейчас он вице-президент по разработке в компании Itseez3D, которая занимается продуктами для создания реалистичных 3D-аватаров и 3D-сканирования.

Плееры

8K Decoding in libVLC

eb2ea28f311cbb5fc3d186b4141d49e7.jpegJean-Baptiste Kempf

VLC

В VLC живут в будущем: пока большинство видеопроектов ограничивается Full HD и 4K, тут уже научились декодировать видео в 8K. Проблема в том, что декодировать 8K-видео означает гонять туда-сюда целую прорву данных и загружать комп по самые помидоры, так что каждое лишнее копирование данных приводит к тому, что даже довольно мощные современные компьютеры с задачей проигрывания видео в 8К не справляются.

О том, как любимый всеми плеер VLC победил 8К, расскажет не кто-нибудь, а сам Жан-Баптист Кемпф: директор всего проекта VideoLAN и ключевой разработчик VLC и libVLC.

Заключение

Отдельное огромное спасибо хочется сказать ребятам, которые помогли сделать программу конференции — программному комитету.  

Программный комитет VideoTech 2021Программный комитет VideoTech 2021

Подробнее почитать про конференцию и купить билеты можно на её сайте.

© Habrahabr.ru