Windows의 VNC가 왜 이렇게 느립니까?


27

테스트에서 친구의 컴퓨터에서 네트워크를 통해 풀 HD 영화를 스트리밍 할 수있었습니다. 내가 원하는만큼 빠릅니다.

그러나 VNC는 고통스럽게 느립니다. 우리는 Real VNC와 Tight VNC를 시도했지만 Capture Method설정을 가지고 놀았 지만 아무런 차이가없는 것 같습니다. 너무 느립니다.

VNC 사용, 속도 개선 방법 또는 대안에 대한 팁이 있습니까?

화면의 무효화 된 부분을 충분히 빨리 알아 차리지 못하는 특성입니까, 아니면 네트워크 속도가 느려질까요?

우리는 모두 Windows 7을 사용하고 있습니다.

호스트 잠그지 않고 서로의 PC를보고 제어 할 수 있어야 하므로 RDP가 작동하지 않습니다 (다른 사람이 알지 않는 한).

답변:


26

VNC는 비효율적입니다. VNC는 일련의 스크린 샷을 찍고 압축하여 네트워크를 통해 슬링하여 거의 작동합니다.

Windows에서 RDP는 더 나은 성능을 제공하지만 적절한 RDP를 위해서는 서버 / 소스 쪽에서 전문가 이상이 필요합니다.

wierdly 원격 지원은 터미널에서 사용자와 동일한 화면을보고 원격 시스템의 사용자 모두의 요구 - 그것의 RDP에 대해 더 잘 작동 할 수있다

편집 : 4 년 후, 비슷한 작업에 nomachine 을 사용하고 있습니다 .OS 전체에서 작동하며 다른 유용한 작업을 수행합니다.


2
그렇습니다 .Pro 버전이 아닌 버전에서는 작동하지 않지만 해결 방법이 있습니다. (물론 +1, VNC는 짜증 난다)
slhck

아, 나는 지금 편집 에서 내가 한 일을 규정 했어야했다 !
Josh Comley

동시 세션은 몇 [해커] (수행 할 수 있습니다 missingremote.com/guide/... ?. 원격 지원을 포함하는 VNC 스타일의 물건 ... 원격 지원 어쩌면 편집 내 대답.
저니 긱

josh 편집 내용은 이해가되지만 @journeyman 게시물의 마지막 줄에서 "원격 지원"이 더 효과적 일 수 있습니다. 원격 지원을 보셨습니까? 가끔 사용하고 잘 작동합니다.
Jay R. Wren

원격 지원이 실제로 필요한 것임을 반영하도록 편집되었습니다.)
Journeyman Geek

15

VNC는 비디오 스트리밍과 비교할 수 없습니다. 비디오 스트리밍에서는 일반적으로 네트워크를 통해 사전 압축 된 비디오 스트림을 전송합니다. HD 스트림의 경우 종종 H.264로 인코딩됩니다. VNC를 사용하는 경우 호스트 컴퓨터는 네트워크로 전송하기 전에 화면 스냅 샷을 작성하고 압축해야합니다. 여기에는 몇 가지 제약이 있습니다.

  • 강력한 압축에는 많은 CPU 전력이 필요합니다. 예를 들어 H.264로 90 분 분량의 영화를 고품질로 인코딩하면 종종 Athlon X2 4450e 서버에서 압축 시간이 4 시간 이상 걸립니다. 일반적으로 이러한 강력한 압축은 원격 제어와 같은 실시간 응용 프로그램에는 적합하지 않습니다.
  • 낮은 압축은 차례로 인터넷과 같은 저 대역폭 연결에서 문제가 될 수있는 더 많은 네트워크 대역폭을 필요로합니다.

음, 비디오 코덱과 원격 제어 및 화면 공유 유틸리티에 의해 적용되는 몇 가지 "트릭"이 있습니다. 우선 그들은 화면 변경 사항을 감지하고 변경 사항의 (압축 된) 이미지 만 전송하려고합니다. 이것은 일반적으로 많은 대역폭과 처리 능력을 절약합니다. 그러나 전체 화면 비디오 전송의 경우 전체 화면을 너무 자주 다시 전송해야하므로 크게 도움이되지 않습니다. 위에서 언급 한 것처럼 현재 컴퓨터는 호스트가 비디오 콘텐츠를 디코딩 한 다음 전송하기 전에 원시 이미지를 다시 인코딩해야하기 때문에 화면 콘텐츠를 Full-HD로 관련 시간 인코딩하고 원격 제어 응용 프로그램으로 스트리밍 할 수 없습니다. 네트워크에 연결합니다. Full-HD 비디오 컨텐츠를 디코딩 할 때 일부 구형 듀얼 코어 시스템은 한계에 도달합니다.

VNC 원격 제어 속도를 향상 시키려면 다음을 수행하십시오.

  • 대부분의 VNC 서버 / 클라이언트는 여러 압축 알고리즘을 지원합니다. 그중 일부는 작은 대역폭, 일부는 좋은 이미지 품질 및 낮은 대기 시간에 최적화되어 있습니다. 이것은 리모콘의 다른 측면에 영향을줍니다. 이 서비스는 대화 형 대기 시간 문제이므로 (5 분 인코딩 후 마우스 클릭에 대한 반응을 보지 않으려는 경우).
  • 호스트 시스템의 화면 변경 량을 줄이십시오. 예를 들어 Windows 바탕 화면 효과, 애니메이션 등을 비활성화하십시오. 이렇게하면 화면의 변경된 부분 만 네트워크를 통해 전송되므로 대역폭이 절약됩니다.
  • 투명성과 같은 호스트에서 추가 시각 효과를 비활성화하십시오. Vista / Win7에서 사용하는 투명한 Windows는 이미지의 "압축성"을 줄입니다. 단색 / "평평한"영역은 생생한 색상과 멋진 디테일보다 압축하는 것이 훨씬 효율적입니다. 따라서 Aero 투명도 및 데스크탑 효과를 비활성화하면 실제로 원격 제어 경험의 속도가 빨라집니다. 대부분의 원격 제어 도구는 연결시 이러한 효과를 자동으로 비활성화 할 수도 있습니다 (예 : Microsoft RDP 및 일부 VNC 구현).
  • 배경 사진에도 동일하게 적용됩니다. HD 사진 대신 단색 배경 설정을 사용해보십시오.

VNC의 또 다른 문제는 화면의 변경 사항을 감지해야한다는 것입니다. 일부 VNC 구현은 "dumb"스크린 샷을 수행하고 이전 스크린 샷과 비교하여 변경 사항을 감지합니다. 이미 많은 힘이 필요합니다. 일부 고급 구현은 여기에서는 더 효율적이지만 특수 드라이버를 설치해야하는 특수 디스플레이 드라이버 (UltraVNC 확인)와 함께 작동합니다.

물론 호스트 컴퓨터에서 비디오를 재생하는 경우이 모든 것이 도움이되지 않습니다. 이 경우 VNC는 초당 ~ 30 개의 전체 화면 이미지를 다시 인코딩하고 네트워크를 통해 전송해야합니다. 오늘날의 CPU가 실시간으로 수행 할 수있는 대부분의 압축에서 이러한 스트림은 8Mbps 이상의 대역폭을 사용합니다. 따라서 대부분의 인터넷 연결에는 부적합합니다 (특히 일반적으로 업로드 속도가 1Mbps 미만인 비대칭 DSL 연결에 대해 생각하십시오. 예, 호스트 측에서 중요한 업로드 속도입니다).

LAN 사용에 적합 할 수도 있지만 여기서는 DLNA / UPnP 미디어 서버를 사용하여 미디어 서버를 설정하거나 미디어를 공유하는 것에 대해 더 많이 생각해야합니다 (Win7 미디어 플레이어도 가능). 그런 다음 DLNA 클라이언트를 사용하여 공유 매체를 재생하십시오.


1
+1, 좋은 설명. DLNA / 미디어 서버 버전도 사용하겠습니다.
slhck

시도는 좋지만 완전히 잘못되었습니다 .CPU 부하도 네트워크 사용량도 높지 않습니다. 차이 전송이 단순하더라도 1 기가비트 네트워크에서 20fps를 수행 할 수 있습니다.
Lothar

4

내가 사용한 것 중 가장 빠른 VNC 변형 은 비디오 미러 드라이버가 설치된 UltraVNC 입니다 . RDP는 여전히 눈에 띄게 빠르지 만 그다지 나쁘지는 않습니다.

또한 ZeroRemote 에 대해 정말 좋은 점을 들었지만 테스트 한 적이 없습니다. TrueRemote 가 후속 제품인 것으로 보입니다 .


GNU / Linux에서는 지원되지 않습니다.
Hi-Angel

1

LAN을 통해 비디오를 시청하려는 경우 화면 그리기 속도가 가장 빠른 솔루션은 아마도 Radmin 일 것입니다 .


3
Radmin을 시험해 보았습니다. 예, 상업용이지만 그만한 가치가 있습니다! 매우 빠릅니다. 환상적인.
Josh Comley

1

@Journeyman Geek가 말했듯이 VNC는 비효율적입니다. 이는 VNC가 원격 클라이언트가 표시하려고하는 것을 "이해"할 필요가 없도록 의도적으로 설계된 것입니다.

RDP는 실제로 그렇게하므로 바로 가기를 사용하고 이미지를 더 빠르게 렌더링 할 수 있습니다. RDP는 다른 쪽 끝, 예를 들어 화면 변경을 나타내는 비트 맵 데이터를 보내는 대신 "클라이언트가이 위치에서 창을 열었습니다"라고 알려줍니다.

RDP 기능을 제공하지 않는 Windows 버전에 RDP 기능을 추가하는 "터미널 서버"해킹이 있지만 공식적으로 권장하지는 않으며 사용자가 위험을 감수해야합니다. 그러나 Windows 7의 "Starter"버전에도 "Remote Assistance"(msra.exe)가 포함되어 있다고 생각합니다.

그러나 VNC 성능을 향상시키기 위해 수행 할 수있는 작업에는 디스플레이 깊이를 8 비트로 낮추고 클라이언트 화면의 해상도를 낮추며 클라이언트 측 비트 맵 캐싱을 사용하는 것이 포함됩니다. 즉, VNC는 적은 양의 데이터를 유선으로 운송해야하므로 성능이 향상 될 것입니다.


1

TeamViewer를 사용해 볼 수도 있습니다. 비상업적 용도로는 무료이며 상당히 빠릅니다. 그래도 HD 비디오에서는 테스트하지 않았습니다.


0

성능을 찾고 있다면 VNC를 사용할 필요가 없습니다 . LogMeIn 과 같은 것을 시도하십시오 . 무료이며 잘 작동합니다.


LogMeIn을 시도했지만 전혀 마음에 들지 않았습니다!
Josh Comley

3
나는 원격 제어를 위해 LogMeIn을 좋아하지만 비디오를 좋아합니까? 기회가 없습니다. VNC는 P2P 이상입니다. 소스와 대상간에 직접 이동합니다. LogMeIn은 서버를 통한 연결을 제공하므로 대기 시간이 훨씬 더 길어집니다. VNC의 모든 문제와 몇 가지 추가 사항. 의도 한대로 강력하지만 실시간 전체 화면 비디오를 위해 설계된 것은 아닙니다.
music2myear

나는 비디오를 시도하지 않고 두 컴퓨터 사이의 연결이 느리지 않은지 테스트하기 위해 비디오만을 사용했습니다
Josh Comley

0

저에게도 인터넷을 통해 (핑 속도가 50ms를 초과하고 대역폭이 1mbit / s 이상인 경우) UltraVNC에서 매우 좋은 동작을 얻습니다. 마법은 연결 설정을 변경하여 제공됩니다.

뷰어를 시작한 후 "연결 옵션"으로 이동하여 "최상의 설정 자동 선택"을 비활성화하고 "꽉"을 활성화 한 다음 필요한 경우 "Jpeg"를 낮추어 품질을 낮추십시오 (2-4).

이것이 내가 적절한 성능으로 풀 컬러를 사용하는 것을 아는 유일한 방법입니다. 나중에 전체 화면으로 빠른 슬라이드 쇼를 볼 수있을 정도로 여러 fps를 얻을 수 있습니다 (원격 개발을 포함하여 실제 영화를 너무 느리게 시청하고 오디오가없는 경우).

또한 "속성"서버에서 "전체 화면 폴링", "폴링 전경 창", "커서 아래의 폴링 창", "시스템 후크 Dll", " 낮은 정확도 "가 켜졌습니다. 기본적으로 왼쪽에있는 거의 모든 것이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.