23

В тесте я мог без проблем передавать потоковое видео в формате HD через нашу сеть с компьютера моего друга. Это так быстро, как я мог хотеть.

Но VNC мучительно медленен. Мы пробовали Real VNC и Tight VNC, я поиграл с настройками Capture Method , но, похоже, ничего не изменило; это так медленно

У кого-нибудь есть какие-либо советы по использованию VNC, о том, как улучшить скорость, или, возможно, какие-либо альтернативы?

Это природа неспособности заметить недействительные части экрана достаточно быстро, или, может быть, сетевая вещь замедляет его?

Мы оба используем Windows 7.

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

8 ответов8

20

VNC просто неэффективен. VNC работает в значительной степени, снимая серию скриншотов, сжимая их и передавая их по сети

В Windows RDP даст вам лучшую производительность, но вам нужен профессионал или лучше на стороне сервера / источника для правильного RDP, я считаю.

удаленная помощь может работать лучше для ваших нужд - ее RDP, когда пользователь в терминале и пользователь в удаленной системе видят один и тот же экран

РЕДАКТИРОВАТЬ: 4 года, я использую nomachine для аналогичных задач - будет работать в разных ОС, и делает несколько других полезных вещей.

15

VNC не сравним с потоковым видео. При потоковой передаче видео вы обычно передаете предварительно сжатый видеопоток через сеть. Для потоков HD это часто кодируется H.264. Если вы используете VNC, то ваш хост-компьютер должен сделать снимки экрана и сжать их перед отправкой в сеть. Здесь есть несколько ограничений:

  • Сильное сжатие требует много ресурсов процессора. Например, для кодирования 90-минутного фильма в формате H.264 в высоком качестве на моем сервере Athlon X2 4450e часто требуется более 4 часов сжатия. Обычно такое сильное сжатие не подходит для приложений реального времени, таких как удаленное управление.
  • Менее сильное сжатие, в свою очередь, потребует большей пропускной способности сети, что может стать проблемой для соединений с низкой пропускной способностью, таких как Интернет.

Ну, есть пара "хитростей", которые применяются видеокодеками и утилитами удаленного управления и совместного использования экрана. Прежде всего, они пытаются обнаружить изменения на экране и передать только (сжатое) изображение изменений. Это обычно экономит много пропускной способности и вычислительной мощности. Однако для передачи видео в полноэкранном режиме это не очень помогает, так как весь экран приходится переносить слишком часто. Как написано выше, современные машины, вероятно, не смогут повторно кодировать содержимое экрана в Full-HD и передавать его в приложение удаленного управления, поскольку вашему хосту придется декодировать видеоконтент, а затем перекодировать необработанные изображения перед отправкой. их в сеть. Некоторые старые двухъядерные машины даже находятся на пределе при декодировании видеоконтента Full-HD. Даже не говоря о необходимости перекодировать изображения Full-HD на экране перед отправкой их клиенту VNC.

Для повышения скорости дистанционного управления VNC вы можете сделать следующее:

  • Большинство VNC-серверов / клиентов поддерживают несколько алгоритмов сжатия. Некоторые из них оптимизированы для небольшой полосы пропускания, некоторые для хорошего качества изображения, а некоторые для низкой задержки. Это касается другого аспекта дистанционного управления. Поскольку сервис интерактивный, имеет значение время ожидания (вы не хотите видеть реакцию на щелчок мышью сразу после 5 минут кодирования).
  • Попробуйте уменьшить количество изменений экрана на вашем хост-компьютере. Например, попробуйте отключить эффекты рабочего стола Windows, анимацию и т.д. Это экономит полосу пропускания, поскольку только измененные части экрана передаются по сети.
  • Попробуйте отключить дополнительные визуальные эффекты на хосте, такие как прозрачность. Прозрачные Windows, используемые в Vista / Win7, уменьшают "сжимаемость" изображений. Однотонные / "плоские" участки гораздо эффективнее сжимать, чем яркие цвета и причудливые детали. Таким образом, отключение прозрачности Aero и эффектов рабочего стола действительно ускоряет процесс удаленного управления. Большинство инструментов удаленного управления даже позволяют автоматически отключать такие эффекты при подключении (например, Microsoft RDP и некоторые реализации VNC).
  • То же относится и к фоновым картинкам. Попробуйте использовать настройку одноцветного фона вместо изображений HD.

Другая проблема для VNC заключается в том, что он должен обнаруживать изменения на вашем экране. Некоторые реализации VNC делают "тупые" снимки экрана и сравнивают их с предыдущим снимком экрана для обнаружения изменений. Это уже требует много энергии. Некоторые более продвинутые реализации работают со специальными драйверами дисплея (проверьте UltraVNC), которые более эффективны, но требуют установки специальных драйверов.

Конечно, все это не помогает, если вы воспроизводите видео на хост-компьютере. В этом случае VNC придется перекодировать ~ 30 полноэкранных изображений в секунду и отправлять его по сети. В большинстве сжатий, которые могут быть выполнены в режиме реального времени современными процессорами, такой поток занимал бы> 8 Мбит / с полосы пропускания. Так что это не подходит для большинства интернет-соединений (особенно подумайте об асимметричных DSL-соединениях с типичной скоростью передачи менее 1 Мбит / с, и да, это скорость загрузки, которая имеет значение на стороне хоста).

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

3

Абсолютно самый быстрый вариант VNC, который я когда-либо использовал, - это UltraVNC с установленным драйвером видеозеркала. RDP все еще заметно быстрее, но это не так плохо.

Я также слышал действительно хорошие вещи о ZeroRemote, но никогда не проверял это. Похоже, что TrueRemote является его преемником.

1

Вы также можете попробовать TeamViewer, это бесплатно для некоммерческого использования и было довольно быстро для меня. Я не проверял это на видео HD все же.

1

Если вы пытаетесь смотреть видео через локальную сеть, самое быстрое решение с точки зрения скорости отображения экрана - это, вероятно, Radmin.

1

Как говорит @Journeyman Geek, VNC неэффективен. Это сделано для того, чтобы VNC не "понимал", что пытается отобразить удаленный клиент.

RDP на самом деле делает, поэтому он может использовать ярлыки и рендерить изображения быстрее. RDP сообщает другому концу, например, "клиент открыл окно в этом месте" вместо отправки растровых данных, представляющих изменение экрана.

Существуют "хакерские серверы терминалов", которые добавят возможность RDP в версии Windows, в которых они отсутствуют, но я официально не рекомендую их, и вы используете их на свой страх и риск. Тем не менее, я думаю, что даже "начальные" версии Windows 7 поставляются с "Удаленным помощником" (msra.exe), который вы можете попробовать использовать.

Однако для повышения производительности VNC вы можете снизить глубину отображения до 8 бит, уменьшить разрешение экрана клиента и использовать кэширование растровых изображений на стороне клиента. Это означает, что VNC должен передавать меньше данных по проводам, и вы получите лучшую производительность (но это не будет выглядеть красиво).

0

Если вы ищете производительность, вам не нужно использовать VNC, попробуйте что-то вроде LogMeIn. Это бесплатно и работает хорошо.

0

Для меня даже через Интернет (со скоростью пинга> 50 мс и приличной пропускной способностью> 1 Мбит / с) я получаю очень хорошее поведение на UltraVNC. Волшебство приходит с изменением настроек соединения.

После запуска программы просмотра перейдите в "Параметры подключения", отключите "Автоматический выбор лучших настроек", включите "Плотный" и уменьшите "JPEG", чтобы понизить качество, если необходимо (2-4 работает хорошо).

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

Кроме того, в "Свойствах" сервера полезно иметь (если не используется зеркальный драйвер, который значительно повышает производительность) иметь "Опрос в полноэкранном режиме", "Окно опроса переднего плана", "Окно опроса под курсором", "Системный HookDll", « Низкая точность "включена. В основном, почти все слева.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .