เหตุใด VNC บน Windows จึงช้ามาก


27

ในการทดสอบฉันสามารถสตรีมภาพยนตร์ HD เต็มรูปแบบผ่านเครือข่ายของเราจากคอมพิวเตอร์ของเพื่อนฉันได้โดยไม่มีปัญหา มันเร็วอย่างที่ฉันต้องการ

แต่ VNC นั้นช้ามาก เราได้ลองใช้ Real VNC และ Tight VNC แล้วฉันได้ลองเล่นกับการCapture Methodตั้งค่าต่าง ๆ แต่ดูเหมือนว่าจะไม่มีอะไรสร้างความแตกต่างได้ มันช้ามาก

ใครบ้างมีเคล็ดลับในการใช้ VNC เกี่ยวกับวิธีปรับปรุงความเร็วหรืออาจเป็นทางเลือกใด ๆ

เป็นลักษณะของการไม่สามารถสังเกตเห็นส่วนที่ถูกทำให้เป็นโมฆะของหน้าจออย่างรวดเร็วเพียงพอหรือมีสิ่งที่เครือข่ายช้าลงหรือไม่?

เราต่างก็ใช้ Windows 7

เราจำเป็นต้องสามารถดูและควบคุมพีซีของกันและกันได้โดยไม่ล็อคโฮสต์ดังนั้น RDP จะไม่ทำงาน (เว้นแต่มีคนรู้เป็นอย่างอื่น)

คำตอบ:


26

VNC ไม่มีประสิทธิภาพแบบธรรมดา VNC ทำงานได้ค่อนข้างดีโดยถ่ายภาพหน้าจอหลายภาพบีบอัดภาพและบีบอัดภาพผ่านเครือข่าย

ใน Windows RDP จะให้ประสิทธิภาพที่ดีขึ้น แต่คุณต้องมีความเป็นมืออาชีพหรือดีกว่าบนเซิร์ฟเวอร์ / แหล่งสิ้นสุดสำหรับ RDP ที่เหมาะสมฉันเชื่อ

ความช่วยเหลือระยะไกลจาก wierdly อาจทำงานได้ดีกว่าสำหรับความต้องการของคุณ - อยู่ RDP กับทั้งผู้ใช้ที่เครื่องเทอร์มินัลและผู้ใช้ที่ระบบระยะไกลที่เห็นหน้าจอเดียวกัน

แก้ไข: 4 ปีในฉันใช้nomachineสำหรับงานที่คล้ายกัน - จะทำงานข้ามOSและทำสิ่งที่มีประโยชน์อื่น ๆ


2
Yup, ไม่ทำงานบนที่ไม่ใช่ Pro รุ่นแม้ว่าจะมีวิธีแก้ปัญหาผมคิดว่า (และ +1 ของหลักสูตร VNC ดูด)
slhck

อาฉันควรจะระบุสิ่งที่ฉันทำในการแก้ไขของฉันตอนนี้!
Josh Comley

เซสชันพร้อมกันสามารถทำได้ด้วยบาง [ แฮกเกอร์ ] ( missingremote.com/guide/…บางสิ่งสไตล์ VNC ... ความช่วยเหลือระยะไกลอาจจะ? แก้ไขคำตอบของฉันที่จะรวมความช่วยเหลือระยะไกล
Journeyman Geek

josh การแก้ไขของคุณสมเหตุสมผล แต่ให้สังเกตบรรทัดสุดท้ายของ @journeyman โพสต์ซึ่งเขาบอกว่า "ความช่วยเหลือระยะไกล" อาจทำงานได้ดีขึ้น คุณเคยดูที่ Remote Assistance หรือไม่ ฉันใช้มันเป็นครั้งคราวและใช้งานได้ดี
Jay R. Wren

แก้ไขเพื่อแสดงว่าการช่วยเหลือระยะไกลเป็นสิ่งที่คุณต้องการใช้จริงๆ)
Journeyman Geek

15

VNC ไม่สามารถเปรียบเทียบกับการสตรีมวิดีโอได้ ในการสตรีมวิดีโอคุณมักจะถ่ายโอนสตรีมวิดีโอที่บีบอัดไว้ล่วงหน้าผ่านเครือข่าย สำหรับสตรีมแบบ HD นั้นมักจะเข้ารหัส H.264 หากคุณใช้ VNC คอมพิวเตอร์แม่ข่ายของคุณจะต้องถ่ายภาพหน้าจอและบีบอัดก่อนที่จะส่งไปยังเครือข่าย มีข้อ จำกัด หลายอย่างที่นี่:

  • การบีบอัดที่แข็งแกร่งต้องการพลัง CPU มาก ตัวอย่างเช่นการเข้ารหัสภาพยนตร์ 90 นาทีใน H.264 ที่มีคุณภาพสูงมักใช้เวลาบีบอัดมากกว่า 4 ชั่วโมงบนเซิร์ฟเวอร์ Athlon X2 4450e ของฉัน โดยปกติแล้วการบีบอัดที่แข็งแกร่งเช่นนี้จะไม่เหมาะสมสำหรับแอปพลิเคชันตามเวลาจริงเช่นการควบคุมระยะไกล
  • การบีบอัดข้อมูลน้อยลงจะต้องใช้แบนด์วิดท์ของเครือข่ายมากขึ้นซึ่งอาจเป็นปัญหาในการเชื่อมต่อที่มีแบนด์วิดท์ต่ำเช่นอินเทอร์เน็ต

มี "เทคนิค" สองสามอย่างที่ใช้โดยตัวแปลงสัญญาณวิดีโอและการควบคุมระยะไกลและยูทิลิตี้การแบ่งปันหน้าจอ ก่อนอื่นพวกเขาพยายามตรวจจับการเปลี่ยนแปลงหน้าจอและถ่ายโอนภาพ (บีบอัด) ของการเปลี่ยนแปลงเท่านั้น โดยปกติแล้วจะช่วยประหยัดแบนด์วิดท์จำนวนมากและพลังการประมวลผล อย่างไรก็ตามสำหรับการถ่ายโอนวิดีโอแบบเต็มหน้าจอมันไม่ได้ช่วยอะไรมากมายเนื่องจากต้องถ่ายโอนทั้งหน้าจอซ้ำบ่อยเกินไป ตามที่เขียนไว้ข้างต้นเครื่องปัจจุบันอาจไม่สามารถ rel-time เข้ารหัสเนื้อหาหน้าจอของคุณใน Full-HD และสตรีมไปยังแอปพลิเคชันการควบคุมระยะไกลเนื่องจากโฮสต์ของคุณจะต้องถอดรหัสเนื้อหาวิดีโอแล้วเข้ารหัสอีกครั้งก่อนส่งภาพดิบ พวกเขาไปยังเครือข่าย เครื่อง Dual-Core รุ่นเก่าบางเครื่องมีขีด จำกัด ในการถอดรหัสเนื้อหาวิดีโอ Full-HD

เพื่อปรับปรุงความเร็วการควบคุมระยะไกลของ VNC คุณสามารถทำสิ่งต่อไปนี้:

  • เซิร์ฟเวอร์ / ไคลเอนต์ VNC ส่วนใหญ่รองรับอัลกอริธึมการบีบอัดหลายตัว บางส่วนเหมาะสำหรับแบนด์วิดท์ขนาดเล็กบางรุ่นมีคุณภาพของภาพที่ดีและบางรุ่นมีความหน่วงแฝงต่ำ นี่เป็นอีกแง่มุมหนึ่งของการควบคุมระยะไกล เนื่องจากบริการเป็นเรื่องเวลาแฝงแบบโต้ตอบ (คุณไม่ต้องการเห็นปฏิกิริยาต่อการคลิกเมาส์หลังจากเข้ารหัส 5 นาที)
  • ลองลดจำนวนการเปลี่ยนแปลงหน้าจอในเครื่องโฮสต์ของคุณ ตัวอย่างเช่นลองปิดการใช้งานเอฟเฟกต์เดสก์ท็อป Windows ภาพเคลื่อนไหวและอื่น ๆ สิ่งนี้จะช่วยประหยัดแบนด์วิดท์เนื่องจากมีการถ่ายโอนเฉพาะบางส่วนของหน้าจอผ่านเครือข่าย
  • ลองปิดการใช้งานเอฟเฟ็กต์ภาพเพิ่มเติมในโฮสต์เช่นความโปร่งใส Windows โปร่งใสที่ใช้โดย Vista / Win7 ลด "การบีบอัด" ของภาพ พื้นที่ที่มีสีเดียว / "แบน" นั้นมีประสิทธิภาพในการบีบอัดมากกว่าสีที่สดใสและรายละเอียดที่สวยงาม ดังนั้นการปิดใช้งานความโปร่งใสของ Aero และเดสก์ท็อปเอฟเฟ็กต์จะช่วยเร่งประสบการณ์การควบคุมระยะไกลได้อย่างแท้จริง เครื่องมือควบคุมระยะไกลส่วนใหญ่อนุญาตให้ปิดใช้งานเอฟเฟกต์ดังกล่าวโดยอัตโนมัติเมื่อเชื่อมต่อ (เช่น Microsoft RDP และการใช้งาน VNC บางส่วน)
  • เช่นเดียวกับภาพพื้นหลัง ลองใช้การตั้งค่าพื้นหลังเป็นสีเดียวแทนที่จะเป็นภาพแบบ HD

ปัญหาอีกประการของ VNC ก็คือมันต้องตรวจจับการเปลี่ยนแปลงบนหน้าจอของคุณ VNC implementations บางตัวทำหน้าจอ "dumb" และเปรียบเทียบกับสกรีนช็อตก่อนหน้าเพื่อตรวจจับการเปลี่ยนแปลง นี่ใช้พลังงานมากแล้ว การใช้งานขั้นสูงเพิ่มเติมบางอย่างทำงานกับไดรเวอร์จอแสดงผลพิเศษ (ตรวจสอบ UltraVNC) ซึ่งมีประสิทธิภาพมากขึ้นที่นี่ แต่ต้องติดตั้งไดรเวอร์พิเศษ

แน่นอนว่าทั้งหมดนี้ไม่ได้ช่วยถ้าคุณเล่นวิดีโอบนเครื่องโฮสต์ของคุณ ในกรณีนี้ VNC จะต้องเข้ารหัสอีกครั้ง ~ 30 ภาพเต็มหน้าจอต่อวินาทีและส่งผ่านเครือข่าย ในการบีบอัดส่วนใหญ่ซึ่งสามารถดำเนินการในเวลาจริงโดยซีพียูในปัจจุบันเช่นกระแสจะใช้แบนด์วิดธ์> 8Mbps ดังนั้นจึงไม่เหมาะสำหรับการเชื่อมต่ออินเทอร์เน็ตส่วนใหญ่ (โดยเฉพาะอย่างยิ่งคิดเกี่ยวกับการเชื่อมต่อ DSL แบบอสมมาตรโดยทั่วไปความเร็วการอัปโหลดน้อยกว่า 1Mbps และใช่มันเป็นความเร็วในการอัพโหลดซึ่งเกี่ยวข้องกับโฮสต์)

อาจเหมาะสำหรับการใช้ LAN แต่ที่นี่คุณควรคิดถึงการตั้งค่าเซิร์ฟเวอร์สื่อหรือแชร์สื่อของคุณโดยใช้เซิร์ฟเวอร์สื่อ DLNA / UPnP (แม้เครื่องเล่นสื่อ Win7 สามารถทำได้) จากนั้นใช้ไคลเอนต์ DLNA เพื่อเล่นสื่อที่ใช้ร่วมกัน


1
+1, คำอธิบายที่ดี ฉันต้องการรุ่น DLNA / Media Server ด้วย
slhck

พยายามดี แต่ผิดทั้งหมดโหลดซีพียูหรือการใช้เครือข่ายก็ไม่สูงอยู่ดี แม้ว่าจะถ่ายโอนความแตกต่างได้ง่าย แต่ก็สามารถทำ 20fps ผ่านเครือข่าย 1gib
Lothar

4

ตัวแปร VNC ที่เร็วที่สุดที่ฉันเคยใช้คือUltraVNCพร้อมติดตั้งVideo Mirror Driver RDP ยังคงเร็วกว่าอย่างเห็นได้ชัด แต่ก็ไม่ได้เลวร้าย

ฉันเคยได้ยินสิ่งดีๆเกี่ยวกับZeroRemoteแต่ไม่เคยทดสอบเลย ดูเหมือนว่าTrueRemoteเป็นผู้สืบทอด


ไม่รองรับ GNU / Linux
Hi-Angel

1

ถ้าคุณกำลังพยายามที่จะชมวิดีโอผ่าน LAN, วิธีที่เร็วที่สุดในแง่ของความเร็วหน้าจอการวาดภาพที่แท้จริงน่าจะเป็นRadmin


3
พยายาม Radmin และใช่มันเป็นเชิงพาณิชย์ แต่เลือดมันคุ้มค่า! เร็วมาก. น่าอัศจรรย์
Josh Comley

1

@ @ Journeyman Geek พูดว่า VNC ไม่มีประสิทธิภาพ นี่คือการออกแบบเพื่อให้ VNC ไม่จำเป็นต้อง "เข้าใจ" สิ่งที่ไคลเอ็นต์ระยะไกลพยายามแสดง

RDP ใช้งานได้จริงเพื่อให้สามารถใช้ทางลัดและแสดงภาพได้เร็วขึ้น RDP บอกส่วนอื่น ๆ เช่น "ลูกค้าเปิดหน้าต่างที่ตำแหน่งนี้" แทนที่จะส่งข้อมูลบิตแมปที่แสดงถึงการเปลี่ยนหน้าจอ

มี "เทอร์มินัลเซิร์ฟเวอร์" แฮ็กที่จะเพิ่มความสามารถ RDP ให้กับ Windows รุ่นที่ไม่มีคุณสมบัติ แต่ฉันไม่แนะนำพวกเขาอย่างเป็นทางการและคุณใช้ความเสี่ยงของคุณเอง อย่างไรก็ตามฉันคิดว่าแม้กระทั่งรุ่น "Starter" ของ Windows 7 ก็มาพร้อมกับ "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

สำหรับฉันแม้แต่ผ่านอินเทอร์เน็ต (ด้วยอัตรา ping> 50ms และแบนด์วิดท์ที่ดี> 1mbit / s) ฉันได้รับพฤติกรรมที่ดีมากใน UltraVNC ความมหัศจรรย์มาพร้อมกับการเปลี่ยนการตั้งค่าการเชื่อมต่อ

หลังจากเริ่มต้นวิวเวอร์ไปที่ "ตัวเลือกการเชื่อมต่อ" ปิดการใช้งาน "ตั้งค่าอัตโนมัติที่ดีที่สุดเลือก" เปิดใช้งาน "แน่น" และลด "Jpeg" เพื่อลดคุณภาพถ้าจำเป็น (2-4 ใช้งานได้ดี)

นั่นเป็นวิธีเดียวที่ฉันรู้เกี่ยวกับการใช้ Full Colors ด้วยประสิทธิภาพที่เหมาะสม คุณจะได้รับ fps หลายครั้งพอที่จะนำเสนอสไลด์โชว์ที่รวดเร็วในภาพยนตร์เต็มหน้าจอ (เพียงพอสำหรับทุกสิ่งที่ฉันทำรวมถึงการพัฒนาจากระยะไกลสำหรับภาพยนตร์จริงที่ดูช้าเกินไปและไม่มีเสียง)

นอกจากนี้ในเซิร์ฟเวอร์ "Properties" จะช่วยให้มี (หากไม่ได้ใช้ไดรเวอร์กระจกซึ่งช่วยเพิ่มประสิทธิภาพการทำงานอย่างมาก) ให้มี "Poll Full Screen", "Poll Foreground Window", "Poll Poll ภายใต้ Cursor", "System HookDll", " ความแม่นยำต่ำ "เปิดอยู่ โดยพื้นฐานแล้วทุกอย่างทางด้านซ้าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.