В лялексовом мире для remote desktop обычно используется VNC. Для wlroots есть сервер wayvnc и он умеет h264, что годно, потому что позволяет мне валяться в постели и играть в Pathfinder с ляптопа в 4k@60fps, наслаждаясь десктопными мощностями.
Но есть нюанс: звук. С одной стороны, сейчас я просто подключаю PA, но хочется полноценной интеграции, чтобы подключился к компу и все сразу хорошо. Парни из qemu почти десять лет назад сделали QEMU Audio, расширение для RFB, которое позволяет встроить звуковую дорогу в VNC сессию. Это работает, и вроде даже работает хорошо: я попробовал в VM, звук не рассинхровывается даже в случае лютого статеринга видео.
Собственно, я хочу добавить QEMU Audio в wayvnc чтобы получить полноценный remote desktop со всеми плюшками из коробки (картинка + буфер обмена + PAM + audio).
Но есть ещё нюанс: я никогда не работал со звуком. Быстрый набросок пайплайна:
- wayvnc предоставляет sink (pipewire?)
- приложение вешается на этот синк через галку в UI
- wayvnc вычитывает из sink’а кадр, сжимает, оформляет как пакет QEMU Audio и пихает в сеть
Насколько этот пайплайн отражает реальность? Каким алгоритмом лучше жать? Как правильные парни синхронизируют звук и аудио из разных источников?