Реализована поддержка кодека Opus в контейнере MPEG-TS.
Наш клиент, UGC-платформа, реализует общение в формате “один ко многим”, принимая и раздавая видеопотоки по протоколу низкой задержки WebRTC.
Используя сторонний транскодер, они транскодируют эти потоки в несколько качеств для покрытия всех типов устройств. Звук по WebRTC всегда передается в кодеке Opus (это эффективный бесплатный аудиокодек, сжимающий лучше и быстрее остальных).
Чтобы раздать на выходе зрителям потоки в разных качествах, сервису приходилось 2 раза транскодировать звук. Сначала – из Opus в AAC (чтобы иметь возможность передать несколько видеодорожек по TSHTTP на сервера раздачи). Затем – обратно, из AAC в Opus (чтобы раздать мультибитрейтные потоки на конечные устройства со сверхнизкой задержкой по WebRTC).
Ключевой задачей было найти способ принимать от сторонних транскодеров звук с родным кодеком Opus, но запакованным в контейнер, поддерживающий несколько видеодорожек. Из четырех способов принять публикацию на Flussonic, RTMP был отброшен, так как не поддерживал более одной видеодорожки. По RTSP можно передать несколько видеодорожек, однако он тоже не подошел (выяснилось, что сторонний транскодер не поддерживает несколько видеодорожек в RTSP). Передавать по WebRTC тоже не подходило, так как это протокол передачи между браузерами. Исследовав все варианты, была найдена возможность передавать аудио в Opus + мультибитрейтное видео, запакованные в контейнер MPEG-TS. Таким образом, в версии 21.12 мы научили Flussonic принимать мультибитрейтные видеопотоки и звук в кодеке Opus от сторонних транскодеров.
Добавлена поддержка адаптивного битрейта для WebRTC (протокол передачи данных со сверхнизкой задержкой). Опция WebRTC ABR полезна для общения один-к-одному и один-ко-многим в онлайн-образовании, игровом стриминге, видео-конференц-связи.
Адаптивность работает как на публикацию, так и на проигрывание. Качество видео будет подстраиваться под скорость интернета у каждого из пользователей.
P.S. WebRTC Flussonic обладает важным отличием от других решений. Получая публикацию по WebRTC (а значит, со звуковой дорожкой в кодеке Opus), на проигрывание вы можете отдавать разным зрителям разные протоколы. Например, часть зрителей будет смотреть видео по WebRTC, а часть – по HLS (где звук в другом кодеке – ААС). Главная особенность в том, что делается это без лишних настроек, в рамках одного stream name. Встроенный во Flussonic упаковщик способен добавить к существующей OPUS-аудиодорожке еще одну аудиодорожку с кодеком ААС.