Tại sao VNC trên Windows lại chậm như vậy?


27

Trong một thử nghiệm, tôi có thể truyền phát một bộ phim HD đầy đủ qua mạng của chúng tôi từ máy tính của bạn tôi, không vấn đề gì. Nó nhanh như tôi muốn.

Nhưng VNC chậm một cách đau đớn. Chúng tôi đã thử Real VNC và VNC chặt chẽ, tôi đã chơi xung quanh với các Capture Methodcài đặt, nhưng dường như không có gì khác biệt; nó quá chậm

Có ai có bất cứ lời khuyên nào về việc sử dụng VNC, về cách cải thiện tốc độ, hoặc có lẽ bất kỳ giải pháp thay thế nào không?

Đây có phải là bản chất của việc không thể nhận thấy các phần không hợp lệ của màn hình đủ nhanh, hoặc có một điều gì đó làm chậm nó có lẽ?

Chúng tôi đều sử dụng Windows 7.

Chúng tôi cần có thể xem và kiểm soát các PC của nhau mà không khóa máy chủ, vì vậy RDP sẽ không hoạt động (trừ khi có ai đó biết khác).

Câu trả lời:


26

VNC chỉ đơn giản là không hiệu quả. VNC hoạt động khá nhiều bằng cách chụp một loạt ảnh chụp màn hình, nén chúng và kéo chúng qua mạng

Trên Windows, RDP sẽ cung cấp cho bạn hiệu suất tốt hơn, nhưng bạn cần chuyên nghiệp hoặc tốt hơn về máy chủ / đầu nguồn cho RDP phù hợp mà tôi tin.

hỗ trợ từ xa mạnh mẽ hơn có thể hoạt động tốt hơn cho nhu cầu của bạn - RDP với cả người dùng tại thiết bị đầu cuối và người dùng ở hệ thống từ xa nhìn thấy cùng một màn hình

EDIT: 4 năm trôi qua, tôi đang sử dụng nadderine cho các nhiệm vụ tương tự - sẽ hoạt động trên các hệ điều hành và thực hiện một số điều hữu ích khác.


2
Yup, không hoạt động trên các phiên bản không phải Pro, mặc dù tôi cho rằng có một cách giải quyết . (Và +1 tất nhiên, VNC tệ)
slhck

Ah, tôi nên đã quy định những gì tôi đã làm trong bản chỉnh sửa của mình ngay bây giờ!
Josh Comley

phiên đồng thời, có thể được thực hiện với một số [hackery] ( missingremote.com/guide/... VNC phong cách thứ ... hỗ trợ từ xa có thể biên soạn câu trả lời của tôi để bao gồm hỗ trợ từ xa?..
Journeyman Geek

josh Chỉnh sửa của bạn có ý nghĩa, nhưng chú ý dòng cuối cùng của bài đăng @jTHERman nơi anh ấy nói "hỗ trợ từ xa" có thể hoạt động tốt hơn. Bạn đã xem Hỗ trợ từ xa chưa? Tôi sử dụng nó đôi khi và nó hoạt động tuyệt vời.
Jay R. Wren

Đã chỉnh sửa để phản ánh rằng hỗ trợ từ xa thực sự là những gì bạn cần sử dụng;)
Journeyman Geek

15

VNC không thể so sánh với truyền phát video. Trong truyền phát video, bạn thường chuyển một luồng video được nén trước qua mạng. Đối với các luồng HD, nó thường được mã hóa H.264. Nếu bạn sử dụng VNC thì máy chủ của bạn phải chụp ảnh màn hình và nén chúng trước khi gửi chúng lên mạng. Có một số hạn chế ở đây:

  • Nén mạnh cần rất nhiều năng lượng CPU. Ví dụ, mã hóa một bộ phim 90 phút ở H.264 với chất lượng cao thường mất hơn 4 giờ thời gian nén trên máy chủ Athlon X2 4450e của tôi. Thông thường nén mạnh như vậy là không phù hợp cho các ứng dụng thời gian thực như điều khiển từ xa.
  • Lần lượt, việc nén ít mạnh hơn sẽ đòi hỏi nhiều băng thông mạng hơn có thể trở thành vấn đề đối với các kết nối băng thông thấp như internet.

Vâng, có một vài "thủ thuật" được áp dụng bởi codec video và các tiện ích chia sẻ màn hình và điều khiển từ xa. Trước hết, họ cố gắng phát hiện các thay đổi màn hình và chỉ chuyển hình ảnh (đã nén) của các thay đổi. Điều này thường tiết kiệm rất nhiều băng thông và sức mạnh xử lý. Tuy nhiên, đối với truyền video toàn màn hình thì không giúp được gì nhiều vì toàn bộ màn hình phải được chuyển lại quá thường xuyên. Như đã viết ở trên, các máy hiện tại có thể sẽ không thể mã hóa lại thời gian nội dung màn hình của bạn ở chế độ Full-HD và truyền phát đến ứng dụng điều khiển từ xa vì máy chủ của bạn sẽ phải giải mã nội dung video và sau đó mã hóa lại hình ảnh thô trước khi gửi họ vào mạng Một số máy Dual-Core cũ thậm chí còn ở giới hạn khi giải mã nội dung video Full-HD.

Để cải thiện tốc độ điều khiển từ xa VNC của bạn, bạn có thể làm như sau:

  • Hầu hết các máy chủ / máy khách VNC đều hỗ trợ nhiều thuật toán nén. Một số trong số chúng được tối ưu hóa cho băng thông nhỏ, một số cho chất lượng hình ảnh tốt và một số cho độ trễ thấp. Điều này chạm vào một khía cạnh khác của điều khiển từ xa. Vì dịch vụ là vấn đề độ trễ tương tác (bạn không muốn thấy phản ứng với một lần nhấp chuột chỉ sau 5 phút mã hóa).
  • Cố gắng giảm số lượng thay đổi màn hình trên máy chủ của bạn. Ví dụ: thử tắt các hiệu ứng máy tính để bàn, hình động của Windows, v.v ... Điều này giúp tiết kiệm băng thông vì chỉ các phần thay đổi của màn hình được truyền qua mạng.
  • Hãy thử vô hiệu hóa các hiệu ứng hình ảnh hơn nữa trên máy chủ như độ trong suốt. Windows trong suốt được sử dụng bởi Vista / Win7 làm giảm "khả năng nén" của hình ảnh. Các khu vực không màu / "phẳng" có hiệu quả nén hơn nhiều so với màu sắc rực rỡ và các chi tiết lạ mắt. Vì vậy, vô hiệu hóa hiệu ứng trong suốt của Aero và hiệu ứng máy tính để bàn thực sự tăng tốc trải nghiệm điều khiển từ xa. Hầu hết các công cụ điều khiển từ xa thậm chí cho phép tự động vô hiệu hóa các hiệu ứng như vậy khi kết nối (ví dụ: Microsoft RDP và một số triển khai của VNC).
  • Áp dụng tương tự cho hình nền. Hãy thử sử dụng cài đặt nền đơn sắc thay vì hình ảnh HD.

Một vấn đề khác đối với VNC là nó phải phát hiện những thay đổi trên màn hình của bạn. Một số triển khai của VNC thực hiện chụp ảnh màn hình "câm" và so sánh chúng với ảnh chụp màn hình trước đó để phát hiện các thay đổi. Đây là mất rất nhiều sức mạnh rồi. Một số triển khai nâng cao hơn hoạt động với trình điều khiển hiển thị đặc biệt (kiểm tra UltraVNC) hiệu quả hơn ở đây nhưng yêu cầu trình điều khiển đặc biệt phải được cài đặt.

Tất nhiên tất cả điều này không giúp ích gì nếu bạn đang phát video trên máy chủ của mình. Trong trường hợp này, VNC sẽ phải mã hóa lại ~ 30 hình ảnh toàn màn hình mỗi giây và gửi qua mạng. Trên hầu hết các lần nén có thể được thực hiện trong thời gian thực bởi các CPU ngày nay, một luồng như vậy sẽ chiếm> 8Mbps băng thông. Vì vậy, nó không phù hợp với hầu hết các kết nối internet (đặc biệt là nghĩ về các kết nối DSL không đối xứng với tốc độ tải lên dưới 1Mbps, và vâng, đó là tốc độ tải lên quan trọng ở phía máy chủ).

Nó có thể phù hợp để sử dụng mạng LAN, nhưng ở đây có lẽ bạn nên suy nghĩ nhiều hơn về việc thiết lập máy chủ phương tiện hoặc chia sẻ phương tiện của mình bằng máy chủ phương tiện DLNA / UPnP (ngay cả trình phát đa phương tiện Win7 cũng có thể làm điều này). Sau đó sử dụng máy khách DLNA để phát phương tiện được chia sẻ.


1
+1, giải thích tốt đẹp. Tôi cũng sẽ dùng phiên bản DLNA / Media Server.
slhck

Thử rất tốt nhưng hoàn toàn sai, cả tải CPU và sử dụng mạng đều không cao. Ngay cả với chuyển khoản khác biệt đơn giản, nó có thể thực hiện 20fps trên mạng 1gib.
Lothar

4

Biến thể VNC nhanh nhất tuyệt đối tôi từng sử dụng là UltraVNC với Trình điều khiển Video Mirror được cài đặt. RDP vẫn nhanh hơn đáng kể, nhưng nó gần như không tệ.

Tôi cũng đã nghe những điều thực sự tốt về ZeroRemote , nhưng chưa bao giờ thử nghiệm nó. Dường như TrueRemote là người kế nhiệm của nó.


Không được hỗ trợ trên GNU / Linux.
Hi-Angel

1

Nếu bạn đang cố gắng xem video qua mạng LAN, giải pháp nhanh nhất về tốc độ vẽ màn hình tuyệt đối có lẽ là Radmin .


3
Đã thử Radmin và, vâng, nó mang tính thương mại, nhưng nó đáng giá! Rất nhanh. Tuyệt diệu.
Josh Comley

1

Như @JTHERman Geek nói, VNC không hiệu quả. Đây là do thiết kế để VNC không phải "hiểu" những gì máy khách từ xa đang cố hiển thị.

RDP thực sự có, vì vậy nó có thể thực hiện các phím tắt và hiển thị hình ảnh nhanh hơn. RDP cho đầu bên kia, ví dụ: "máy khách đã mở một cửa sổ tại vị trí này" thay vì gửi dữ liệu bitmap biểu thị sự thay đổi màn hình.

Có những bản hack "máy chủ đầu cuối" sẽ bổ sung khả năng RDP cho các phiên bản Windows không có tính năng của chúng, nhưng tôi không chính thức đề xuất chúng và bạn có thể tự chịu rủi ro khi sử dụng chúng. Tuy nhiên, tôi nghĩ ngay cả các phiên bản "Starter" của Windows 7 cũng đi kèm với "Hỗ trợ từ xa" (msra.exe) mà bạn có thể thử sử dụng.

Tuy nhiên, những điều bạn có thể làm để cải thiện hiệu suất VNC, bao gồm giảm độ sâu hiển thị xuống 8 bit, hạ độ phân giải của màn hình máy khách và sử dụng bộ đệm ẩn bitmap phía máy khách. Điều đó có nghĩa là VNC phải gửi ít dữ liệu hơn trên dây và bạn sẽ có hiệu suất tốt hơn (nhưng nó sẽ không đẹp).


1

Bạn cũng có thể dùng thử TeamViewer, nó miễn phí cho sử dụng phi thương mại và khá nhanh đối với tôi. Tôi chưa thử nó trên video HD.


0

Nếu bạn đang tìm kiếm hiệu suất bạn cần không sử dụng VNC, hãy thử một cái gì đó như LogMeIn . Nó miễn phí và hoạt động tốt.


Chỉ cần thử LogMeIn, không thích chút nào!
Josh Comley

3
Tôi thích LogMeIn cho điều khiển từ xa, nhưng cho video? Không phải là một cơ hội. VNC ít nhất là P2P. Nó đi trực tiếp giữa nguồn và đích. LogMeIn giới thiệu một kết nối thông qua máy chủ của họ, điều đó có nghĩa là bạn có độ trễ cao hơn nhiều. Tất cả các vấn đề với VNC cộng thêm một vài điều nữa. Nó mạnh mẽ với những gì nó được thiết kế, nhưng nó không được thiết kế cho video toàn màn hình thời gian thực.
âm nhạc2myear

Tôi không cố làm video, tôi chỉ sử dụng video làm thử nghiệm để đảm bảo kết nối giữa hai máy tính không bị chậm
Josh Comley

0

Đối với tôi, ngay cả qua internet (với tốc độ ping> 50ms và băng thông tốt> 1mbit / s) Tôi có hành vi rất tốt trên UltraVNC. Phép thuật đi kèm với việc thay đổi cài đặt kết nối.

Sau khi khởi động trình xem, hãy chuyển đến "Tùy chọn kết nối", tắt "Tự động chọn cài đặt tốt nhất", bật "Chặt" và hạ "Jpeg" xuống chất lượng thấp hơn, nếu cần (2-4 hoạt động tốt).

Đó là cách duy nhất tôi biết về gting Full Colors với hiệu suất khá. Bạn sẽ nhận được một vài khung hình / giây sau đó, đủ để có một trình chiếu nhanh trên một bộ phim toàn màn hình (đủ cho tất cả mọi thứ tôi đang làm, bao gồm cả phát triển từ xa, để xem phim thực sự quá chậm và cũng không có âm thanh).

Ngoài ra, trong "Thuộc tính" của máy chủ, sẽ giúp (nếu không sử dụng trình điều khiển gương giúp thực hiện rất nhiều) để có "Thăm dò toàn màn hình", "Cửa sổ thăm dò ý kiến", "Cửa sổ thăm dò dưới con trỏ", "Hệ thống HookDll", " Độ chính xác thấp "bật. Về cơ bản, chỉ là về mọi thứ bên trái.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.