VNC не сравним с потоковым видео. При потоковой передаче видео вы обычно передаете предварительно сжатый видеопоток через сеть. Для потоков HD это часто кодируется H.264. Если вы используете VNC, то ваш хост-компьютер должен сделать снимки экрана и сжать их перед отправкой в сеть. Здесь есть несколько ограничений:
- Сильное сжатие требует много ресурсов процессора. Например, для кодирования 90-минутного фильма в формате H.264 в высоком качестве на моем сервере Athlon X2 4450e часто требуется более 4 часов сжатия. Обычно такое сильное сжатие не подходит для приложений реального времени, таких как удаленное управление.
- Менее сильное сжатие, в свою очередь, потребует большей пропускной способности сети, что может стать проблемой для соединений с низкой пропускной способностью, таких как Интернет.
Ну, есть несколько «хитростей», которые применяются видеокодеками и утилитами удаленного управления и совместного использования экрана. Прежде всего, они пытаются обнаружить изменения на экране и передать только (сжатое) изображение изменений. Это обычно экономит много пропускной способности и вычислительной мощности. Однако для передачи видео в полноэкранном режиме это не очень помогает, поскольку весь экран приходится переносить слишком часто. Как написано выше, современные машины, вероятно, не смогут повторно кодировать содержимое экрана в формате Full-HD и передавать его в приложение удаленного управления, поскольку вашему хосту придется декодировать видеоконтент, а затем перекодировать необработанные изображения перед отправкой. их в сеть. Некоторые старые двухъядерные машины даже находятся на пределе при декодировании видеоконтента Full-HD.
Чтобы повысить скорость дистанционного управления VNC, вы можете сделать следующее:
- Большинство VNC-серверов / клиентов поддерживают несколько алгоритмов сжатия. Некоторые из них оптимизированы для небольшой полосы пропускания, некоторые для хорошего качества изображения, а некоторые для низкой задержки. Это касается другого аспекта дистанционного управления. Поскольку сервис интерактивный, имеет значение время ожидания (вы не хотите видеть реакцию на щелчок мышью сразу после 5 минут кодирования).
- Попробуйте уменьшить количество изменений экрана на вашем хост-компьютере. Например, попробуйте отключить эффекты рабочего стола Windows, анимацию и т. Д. Это экономит полосу пропускания, поскольку только измененные части экрана передаются по сети.
- Попробуйте отключить дополнительные визуальные эффекты на хосте, такие как прозрачность. Прозрачные Windows, используемые в Vista / Win7, уменьшают «сжимаемость» изображений. Однотонные / «плоские» участки гораздо эффективнее сжимать, чем яркие цвета и причудливые детали. Таким образом, отключение прозрачности Aero и эффектов рабочего стола действительно ускоряет процесс удаленного управления. Большинство инструментов удаленного управления даже позволяют автоматически отключать такие эффекты при подключении (например, Microsoft RDP и некоторые реализации VNC).
- То же относится и к фоновым картинкам. Попробуйте использовать настройку одноцветного фона вместо изображений HD.
Другая проблема для VNC заключается в том, что он должен обнаруживать изменения на вашем экране. Некоторые реализации VNC делают «тупые» снимки экрана и сравнивают их с предыдущим снимком экрана, чтобы обнаружить изменения. Это уже требует много энергии. Некоторые более продвинутые реализации работают со специальными драйверами дисплея (проверьте UltraVNC), которые более эффективны, но требуют установки специальных драйверов.
Конечно, все это не помогает, если вы воспроизводите видео на хост-компьютере. В этом случае VNC придется перекодировать ~ 30 полноэкранных изображений в секунду и отправлять его по сети. В большинстве сжатий, которые могут быть выполнены в режиме реального времени современными процессорами, такой поток занимал бы> 8 Мбит / с полосы пропускания. Так что это не подходит для большинства интернет-соединений (особенно подумайте об асимметричных DSL-соединениях с типичной скоростью передачи менее 1 Мбит / с, и да, это скорость загрузки, которая имеет значение на стороне хоста).
Это может быть подходящим для использования в локальной сети, но здесь вам, вероятно, стоит подумать о настройке медиа-сервера или обмениваться медиафайлами с помощью медиа-сервера DLNA / UPnP (даже медиаплеер Win7 может это сделать). Затем используйте DLNA-клиент для воспроизведения общего мультимедиа.