- PVSM.RU - https://www.pvsm.ru -

Нам обещают видео в реальном времени без фризов и дерганий

Каждый раз, запуская Skype, Zoom или Hangouts, я с интересом жду свежую порцию косяков с видео и звуком. Технологии редко меня разочаровывают: квакание, фоновые шумы, пропадание голоса, распадение видео на «квадратики», замороженные кадры и другие радости видеоконференций преследуют видеозвонки сколько я себя помню. Интерес во многом профессиональный: кроме программируемой телефонии для обычных телефонов, веб-страниц и мобильных приложений, мы в Voximplant отгружаем разработчикам видео. Хочется Full HD, в реальном времени, без фризов, в любом браузере и конференция человек на 50. Что интересно, в лабораторных условиях оно именно так и работает. А вот в каком-нибудь парке на 3G видеоконсультация с доктором может превратиться в пошаговую стратегию: пакеты-то теряются! Современный стек технологий пока не позволяет на равных бороться с «мигающим» интернетом, но исследования постоянно ведутся. Под катом — адаптированный для Хабра перевод про Salsify: сплава видеокодека и сетевого протокола, минимизирующего проблемы при передаче видео в реальном времени.

Команда из Стенфорда провела эксперимент: заменила всё лоскутное одеяло современных технологий видеоконференций на один протокол сжатия и передачи по сети.

Видеоконференции: лллллаги, ффффффризы и дерганье

Через некоторое время проблемы проходят сами собой. Иногда — вместе с изображением, оставляя вместо него черный экран. Доставляемые неприятности живут в диапазоне от «подождем пару минут, сетка мигает» до «телеоперацию можно завершать, пациент умер». Ученые из Стенфорда подошли к проблема кардинально, разработав с нуля и сетевой стек, и кодек, и способ передачи данных с единственной целью: сделать лучше чем у Skype, FaceTime, Hangouts и Chrome+WebRTC. Возглавляющий исследование аспирант из Стенфорда Саджад
Фолади представил результаты [1] на профильной конференции NSDI'18 [2]. Идеи, лежащие в основе решения «с чистого листа», доступны всем желающим и могут быть использованы в коммерческих решениях. Конечно, если кто-нибудь захочет заменить весь стек.

Нам обещают видео в реальном времени без фризов и дерганий - 1

«Передача видео через интернет эволюционировала десятки лет. Сейчас стек технологий больше напоминает лоскутное одеяло», — говорит доцент компьютерных наук Кит Уинстейн [3]. «Саджад показал, как можно собрать эти кусочки другим способом, чтобы получить видео лучшего качества и с меньшими задержками».

А вот насчет сроков внедрения Уинстейн более осторожен. «Сейчас мы думаем над изменениями, чтобы в один прекрасный день передача видео в реальном времени стала более надежной. Будет очень кстати в телемедицине и роботизированных операциях», — говорит он. «Но в тот софт, что используется сейчас, все эти изменения внести сложно».

Новый подход, новое имя

Стенфордская команда назвала свой фреймворк «Salsify» (Козлобородник, такой «цветок», отдаленно напоминающий одуванчик в юности — примечание переводчика). Фреймворк решает проблему, вызванную тем, что «передача видео в реальном времени» сейчас сшита из двух разных технологий. Это «кодек», который сжимает видео и «сетевой протокол», который передает по сети небольшие кусочки данных и пытается угадать, когда нужно отправить следующие кусочки, чтобы его нигде по пути не выкинули, потому что сеть перегружена и вообще все плохо. Проблема в том, что эти два компонента эволюционировали отдельно друг от друга, часто разными компаниями, а затем были совмещены в таких продуктах как Skype или FaceTime.

Фолади уверен: чтобы решить проблему с фризами и лагами, кодек и сетевой стек должны работать вместе. Ведь важно не просто вовремя отправить пакет по сети. Нужно, чтобы в этом пакете были правильные данные! А не кусок видео 3-секундной давности, который все равно будет выкинут на принимающей стороне как «слишком старый». Как говорит руководитель проекта, «когда транспортный протокол и кодек теряют синхронизацию – начинаются проблемы». Поэтому команда сделала новый кодек, который максимально интегрирован с транспортным протоколом. Один алгоритм управляет сжатием кадров видео, формированием сетевых пакетов и их отправкой. Таким образом, видеопоток «знает» о состоянии сети в реальном времени и пытается в нее «вписаться» по мере возможности.

Даже один отправленный невовремя кадр может привести к рывкам и фризам. Salsify никогда не отправит кадр, если он может привести к проблемам с сетью

Увидеть и поверить

Исследователи провели множество тестов, сравнив Salsify с Microsoft Skype, Google Hangouts, Apple FaceTime и Google Chrome+WebRTC. В среднем Salsify уменьшает задержку в четыре раза (!!!), а качество изображения становится на 60% лучше (по методике изменения structural similarity, SSIM). Готовы side-by-side сравнение [4] с Chrome 65 WebRTC и сделан отдельный веб-сайт [5], посвященный проекту. Проект open source: можно скачивать, изучать, использовать наработки.

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

Автор: nvpushkarskiy2

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/288376

Ссылки в тексте:

[1] результаты: https://cs.stanford.edu/~keithw/salsify-paper.pdf

[2] NSDI'18: https://www.usenix.org/conference/nsdi18

[3] Кит Уинстейн: https://profiles.stanford.edu/keith-winstein

[4] side-by-side сравнение: https://www.youtube.com/watch?v=jaDelb4JnP4

[5] веб-сайт: https://snr.stanford.edu/salsify/

[6] Источник: https://habr.com/post/419423/?utm_campaign=419423