
На дворе 2017 год. Мы можем транслировать прямые трансляции в формате 4K, используя лишь часть доступной пропускной способности и вычислительных ресурсов.
Почему у нас до сих пор нет приложений удаленного рабочего стола, которые обеспечивают достойную производительность? В чем разница, которая делает настолько трудным потоковое воспроизведение в основном статической картинки при передаче действий мыши и клавиатуры, которые не должны превышать нескольких байт?
решение1
Во-первых, у нас есть приложения для удаленного рабочего стола, которые обеспечивают достойную производительность, но не существует единого универсального решения, которое бы делало это хорошо.
В типичном случае / catch-all компьютеру необходимо передать в другое место именно то, что находится на экране. Единственное, что он может сделать для ускорения, это сжать вывод — обычно это происходит, например, с VNC. В зависимости от скорости соединения и сложности экрана это может работать хорошо или медленно. Если используется сжатие с потерями, то данные могут быть нечитаемыми.
На другом полюсе находится что-то вроде Chromecast, который предоставляет удаленному компьютеру инструкции для выполнения действий, чтобы он мог максимально использовать сжатие (т. е. он обрабатывает исходный сжатый поток из источника, вместо того, чтобы распаковывать его и отправлять распакованные или распакованные и повторно сжатые данные). Конечно, для этого требуются приложения, совместимые с технологией, а большинство настольных приложений таковыми не являются.
Между ними существуют такие решения, как Spice, X forwarding rdp, которые пытаются использовать API для сокращения объема передаваемых данных путем воспроизведения того, что должно отображаться на исходном экране.
Еще одна проблема — задержка. Если вы находитесь, например, в Новой Зеландии и используете соединение в Европе, то задержки могут превышать 200 мс из-за скорости света в вакууме. Никакие действия, направленные на соединение, не могут снизить задержку. Из-за этого соединение кажется медленным.
Аналогично, при работе с движущимся видео, за исключением решений типа Chromecast, часто невозможно узнать, что именно сжимается (и как именно), а плотное сжатие с потерями занимает много времени, что затрудняет этот процесс. (Я был бы удивлен, если бы видео 4K можно было сжимать в реальном времени без очень большой нагрузки на систему, т. е. видео 4K могут транслироваться и воспроизводиться в реальном времени, но, как правило, не кодируются в реальном времени, пока системы активны и выполняют другие реальные задачи.)