Какие «инструменты» использовать для low latency video streaming?

Добрый день,
Давно пользуюсь сервисом Parsec для стриминга desktop'а с домашней машины до ноута на даче:
Win (2080 RTX + parsecd) -> PLC -> Wireguard -> ISP -> Internet
Internet -> Beeline (4GLTEb3) -> E3372h (18dbi) -> WG -> PLC -> WiFi -> Ubuntu (i915 + parsec)

Так как в любой момент, он перестанет работать, то задумался над собственной реализацией для замены. А именно:
DXGI w/ Desktop Duplication API + Nvidia Encode API -> h264 -> I,P-frames -> RUDP -> I,P-frames -> VAAPI + OpenGL (fragment shader : YUV420p -> RGB)

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


Вопросы:
  1. Во всех примерах fragment shader'а YUV420-> RGB я видел использование нескольких текстур. Не подразумевает ли это что полученный из Decoder'а uint8[] надо "делить", те копировать?! можно ли весь фрейм YUV420P из декодера без каких-то "манипуляций" использовать в шейдере... те когда ОДНА текстура содержит YYYYYYYYUUVV ?
  2. RUDP - подскажите библиотеку high performance low latency UDP (optional reliable) на Си... и желательно кросс платформенную, чтобы можно было использовать на сервере и клиенте.
  3. Правильно ли я понял, что потеря одного - двух I-frame'ов не критична.... те я могу использовать следующие за ними P-frame'ы... да, будут артефакты, но они "очистятся" I-frame'ом?
  4. Как реализовать dynamic resolution change на стороне декодера? передаётся ли инфа о смене wh через I-frame?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы