Есть ли поддержка Simulcast?

Тут уже был тред про Simulcast, но там было совсем не то что под этим обычно понимается.

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

Можно такое делать?

https://webrtcglossary.com/simulcast/
 

Max

Administrator
Staff member
В текущей реализации такого нет. Проблема в данном случае будет на энкодере. Например браузер Chrome не лучшим образом кодирует уже один H.264 поток, несмотря на поддержку аппаратного ускорения. Если он будет кодировать несколько таких потоков одновременно, все будет еще хуже. Поэтому просто Simulcast в данном случае не поможет. Он должен идти в связке с кодеком, который поддерживает кодирование в несколько разрешений (SVC). В этом контексте говорят про VP9, но все кодеки кроме H.264 в реальном мире имеют слабые позиции, хотябы исходя из того, что для воспроизведения на iOS Safari сразу потребуется транскодинг VP9 в H.264. Поэтому чтобы это работало в продакшене, нужен кодек (енкодер), который поддерживает такой тип кодирования и совместим с H.264, а такого кодека на данный момент нет. Как только кодек появится, можно будет добавлять.

У нас в качестве замены Simulcast используется транскодинг. Да, требует много ресурсов.
Но масштабируемо. Можно выделить отдельные транскодинг-ноды CDN и настроить "транскодирование по запросу", т.е. поток будет транскодироваться только в том случае, если его явно запросили на транскодинг с профилем, например stream-360p.
Подробнее о транскодинг-нодах в CDN
https://docs.flashphoner.com/display/WCS52RU/CDN+2.1
 
А как же VP8? Он поддерживает симулкаст (но не SVC), и это работает в большинстве медиасерверов, например Mediasoup и Janus. И VP8 поддерживается iOS Safari.
 

Max

Administrator
Staff member
На момент проведения наших тестов с VP8, нам не удалось получить требуемого качества видео. Поэтому в качестве основного кодека выбрали H.264.
Еще VP8 не так давно появился в Safari браузерах (Safari 12.1). Пока в качестве основного кодека его не рассматриваем, т.к. не понятно его дальнейшее развитие.
Но вопрос интересный. Спасибо, заведем внутренний тикет по VP8 и Simulcast, посмотрим что мы можем сделать и как использовать это в продакшене WCS-2393. По результатам дадим знать.
 
Мы использовали VP8 как единственный кодек в проекте построенном на Flashphoner больше года назад и он работал и работает отлично. Simulcast очень нужен.
 
Top