Σύνδεση

Πώς κάναμε την κοινή χρήση οθόνης τέσσερις φορές ταχύτερη

Η τεχνική ιστορία πίσω από τη μείωση της καθυστέρησης στην κοινή χρήση οθόνης του Cliqer από πάνω από δύο δευτερόλεπτα σε περίπου μισό δευτερόλεπτο.

Cliqer Team

3 Σεπτεμβρίου 2026 · 7 λεπτά ανάγνωσης

A software engineer reviewing a video latency graph on a monitor in a dimly lit office

Η καθυστέρηση στην κοινή χρήση οθόνης είναι ένα από εκείνα τα προβλήματα που τα προσέχετε μόνο όταν είναι έντονα. Ο ομιλητής πατά για την επόμενη διαφάνεια και η αίθουσα που παρακολουθεί την κοινόχρηστη οθόνη τη βλέπει με μιάμιση ανάσα καθυστέρηση. Δεν είναι ακριβώς χαλασμένο, απλώς δεν είναι σωστό. Μέσα σε λίγες εκδόσεις εξετάσαμε προσεκτικά από πού προερχόταν αυτή η καθυστέρηση στην κοινή χρήση οθόνης του Cliqer και μειώσαμε τη μόνιμη καθυστέρηση από πάνω από δύο δευτερόλεπτα σε περίπου μισό δευτερόλεπτο, μια βελτίωση περίπου τέσσερις φορές. Αυτή είναι η εξήγηση σε απλή γλώσσα για το πώς το πετύχαμε.

Δεν θα κρυφτούμε πίσω από κωδικά ονόματα ούτε θα προσποιηθούμε ότι υπήρξε μία μαγική λύση. Υπήρξαν τρεις ξεχωριστές διορθώσεις, καθεμία στοχευμένη σε διαφορετικό σημείο όπου κρυβόταν η καθυστέρηση, και τα αποτελέσματά τους αθροίστηκαν.

Βασικά συμπεράσματα
  • Τρεις διορθώσεις αθροίστηκαν: τέλος στη διπλή κωδικοποίηση, πιο σφιχτό buffer και αποθηκευμένο keyframe για τους νέους θεατές.
  • Η μόνιμη καθυστέρηση έπεσε από πάνω από δύο δευτερόλεπτα σε περίπου μισό δευτερόλεπτο, μια βελτίωση περίπου τέσσερις φορές.
  • Τίποτα από αυτά δεν απαιτεί αλλαγή ρύθμισης. Περιλαμβάνεται αυτόματα στη ροή κοινής χρήσης οθόνης της εφαρμογής υπολογιστή.

Γιατί η κοινή χρήση οθόνης καθυστερεί εξαρχής

Όταν μοιράζεστε μια οθόνη, πρέπει να συμβούν τρία πράγματα πριν ο θεατής δει ένα καρέ: ο υπολογιστής σας πρέπει να το καταγράψει, να το κωδικοποιήσει σε βίντεο και να το στείλει. Οποιοδήποτε από αυτά τα βήματα μπορεί να προσθέσει αθόρυβα καθυστέρηση, και το αποτέλεσμα συσσωρεύεται. Ένας αργός κωδικοποιητής, συν ένα συντηρητικό buffer, συν η αναμονή για την επόμενη πλήρη ενημέρωση καρέ μπορούν εύκολα να φτάσουν τα δύο ή τρία δευτερόλεπτα, ακόμη και σε γρήγορη σύνδεση.

Το δύσκολο είναι ότι κανένα από αυτά δεν φαίνεται χαλασμένο από μόνο του. Η καταγραφή λειτουργεί. Η κωδικοποίηση λειτουργεί. Η ροή φτάνει. Απλώς φτάνει αργά, και το «απλώς αργά» είναι δύσκολο να διαγνωστεί χωρίς να μετρήσετε κάθε στάδιο ξεχωριστά.

Αν μια κοινή χρήση οθόνης φαίνεται να καθυστερεί αλλά όλα τα υπόλοιπα στην κλήση σας λειτουργούν κανονικά, εξετάστε συγκεκριμένα τη ροή βίντεο και όχι τη γενική σύνδεσή σας στο internet. Τα δύο προβλήματα μοιάζουν πανομοιότυπα από τη θέση του θεατή, αλλά έχουν εντελώς διαφορετικές λύσεις.

Διόρθωση πρώτη: τέλος στη διπλή κωδικοποίηση της ίδιας εικόνας

Η πρώτη πηγή καθυστέρησης ήταν η σπατάλη εργασίας. Οι κοινές χρήσεις οθόνης και NDI κωδικοποιούνταν δύο φορές στο παρασκήνιο, μία για κάθε διαδρομή εξόδου, και μια στατική διαφάνεια κωδικοποιούνταν ξανά συνεχώς, παρότι τίποτα στην οθόνη δεν είχε αλλάξει. Αυτό διπλασίαζε το φορτίο του κωδικοποιητή χωρίς κανένα οπτικό όφελος και σήμαινε ότι η ροή ήταν πάντα πιο φορτωμένη από όσο χρειαζόταν, κάτι που σπρώχνει κάθε καρέ πιο πίσω στην ουρά.

Η κατάργηση του διπλού περάσματος κωδικοποίησης και η παράλειψη της επανακωδικοποίησης όταν η εικόνα δεν έχει αλλάξει απελευθέρωσαν αμέσως σημαντικό περιθώριο CPU. Λιγότερος ανταγωνισμός στον κωδικοποιητή σημαίνει ότι κάθε καρέ που πράγματι χρειάζεται κωδικοποίηση επεξεργάζεται νωρίτερα.

Διόρθωση δεύτερη: πιο σφιχτό buffer χωρίς απώλεια ανθεκτικότητας

Η δεύτερη πηγή ήταν το buffer ανάμεσα στον κωδικοποιητή και το δίκτυο, το τμήμα που υπάρχει για να απορροφά σύντομες διακοπές του δικτύου, ώστε ένα κόλλημα στη γραμμή να μη γίνεται κόλλημα στην οθόνη. Τέτοια buffer είναι εκ φύσεως ένας συμβιβασμός: αν είναι πολύ μικρά, μια ασήμαντη διακοπή προκαλεί ορατά σφάλματα εικόνας· αν είναι πολύ γενναιόδωρα, προσθέτετε καθυστέρηση σε κάθε καρέ για την περίπτωση που κάτι πάει στραβά αργότερα.

Το buffer είχε διαστασιολογηθεί γενναιόδωρα, άρα πρόσθετε καθυστέρηση σε κάθε καρέ στη συνηθισμένη περίπτωση για να προστατεύσει από μια σπάνια. Με τη σύσφιξή του, η χειρότερη καθυστέρηση έπεσε από μερικά δευτερόλεπτα σε πολύ κάτω από ένα, ενώ εξακολουθεί να αντέχει σύντομες διακοπές του δικτύου χωρίς ορατά σφάλματα. Είναι το είδος της διόρθωσης που μοιάζει με μια μικρή αλλαγή αριθμού σε ένα diff, αλλά στην πραγματικότητα είναι μια απόφαση για το ποιον τρόπο αποτυχίας προτιμάτε.

Διόρθωση τρίτη: οι νέοι θεατές δεν περιμένουν πια το επόμενο keyframe

Η τρίτη διόρθωση στόχευε μια συγκεκριμένη, επώδυνη στιγμή: τι συμβαίνει όταν κάποιος συνδέεται σε μια κοινή χρήση που ήδη εκτελείται. Η συμπίεση βίντεο λειτουργεί στέλνοντας πλήρη καρέ, τα λεγόμενα keyframes, μόνο περιστασιακά, με φθηνότερα καρέ τύπου «τι άλλαξε από την προηγούμενη φορά» ενδιάμεσα. Ένας θεατής που συνδέεται στη μέση της ροής δεν μπορεί να αξιοποιήσει αυτά τα ενδιάμεσα καρέ μέχρι να λάβει ένα keyframe ως σημείο αναφοράς, και παλαιότερα αυτό σήμαινε αναμονή για το επόμενο προγραμματισμένο, έως και τρία δευτερόλεπτα αργότερα.

Η λύση ήταν να διατηρείται στην cache το πιο πρόσφατο keyframe και να παραδίδεται σε έναν νέο συνδρομητή τη στιγμή που συνδέεται, αντί να τον αναγκάζουμε να περιμένει το επόμενο προγραμματισμένο. Σε συνδυασμό με τον χρονισμό καρέ βάσει διαστήματος που περιγράφεται στην τεκμηρίωση κοινής χρήσης οθόνης, οι νέοι θεατές βλέπουν πλέον βίντεο μέσα σε χιλιοστά του δευτερολέπτου από τη σύνδεσή τους σε μια κοινή χρήση, αντί να περιμένουν έως και τρία δευτερόλεπτα για το επόμενο keyframe.

Αθροίστε και τις τρεις διορθώσεις και η μόνιμη καθυστέρηση άνω των δύο δευτερολέπτων, που οι περισσότεροι δεν εμπιστεύονταν ποτέ πραγματικά, έγινε περίπου μισό δευτερόλεπτο, μια βελτίωση περίπου τέσσερις φορές, με λιγότερη CPU και λιγότερο εύρος ζώνης από πριν. Ο πλήρης ρυθμός καρέ μετρά κι εδώ: το βίντεο Program ήταν αθόρυβα περιορισμένο γύρω στα 31 καρέ ανά δευτερόλεπτο ανεξάρτητα από την πηγή, οπότε μια κοινή χρήση στα 60fps φαίνεται πλέον εξίσου ομαλή στην πλευρά του παραλήπτη όσο και στην οθόνη του ίδιου του ομιλητή.

Τι σημαίνει αυτό αν κάνετε παρουσίαση αυτή τη στιγμή

Τίποτα από αυτά δεν απαιτεί να αλλάξετε κάποια ρύθμιση. Περιλαμβάνεται στη ροή κοινής χρήσης οθόνης της εφαρμογής υπολογιστή και ισχύει είτε μοιράζεστε μία οθόνη σε μια μικρή αίθουσα είτε τρέχετε μια πλήρη παραγωγή Studio με πολλές πηγές, συμπεριλαμβανομένων ροών εργασίας vMix που βασίζονται σε γρήγορο, προβλέψιμο σήμα. Στο Cliqer 3, το βίντεο του Studio στο Mac λειτουργεί με μηδενική αντιγραφή (zero copy): τα καρέ της κάμερας, οι πηγές και το Program παραμένουν στη μνήμη της GPU, και ο κωδικοποιητής υλικού διαβάζει το Program απευθείας από την επιφάνεια της GPU. Το Cliqer 3 εμφανίζει επίσης συνεχώς τον ρυθμό καρέ του Program και το φορτίο GPU και CPU στη γραμμή κατάστασης του Studio, ώστε να ελέγχετε μόνοι σας τον ρυθμό καρέ στη μέση της εκδήλωσης. Αν θέλετε να ρυθμίσετε την ισορροπία ποιότητας και εύρους ζώνης πέρα από τη δουλειά στην καθυστέρηση, οι ρυθμίσεις κοινής χρήσης οθόνης καλύπτουν την επιλογή codec, την ανάλυση και το bitrate, ενώ η έκδοση υπολογιστή 2.2.0 πρόσθεσε τη δυνατότητα να συμπεριλαμβάνεται ήχος συστήματος ή μικροφώνου απευθείας σε μια κοινή χρήση.

Για υβριδικές διατάξεις όπου η καθυστέρηση ήταν πιο εμφανής, ιδίως όταν ένας απομακρυσμένος ομιλητής παρακολουθεί μια κοινόχρηστη οθόνη και αντιδρά ζωντανά, αυτό συνδυάζεται με τον οδηγό μας για τη διόρθωση της καθυστέρησης κοινής χρήσης οθόνης σε υβριδικές συσκέψεις και την επεξήγησή μας για το γιατί η καθυστέρηση του τηλεχειριστηρίου παρουσιάσεων σε χιλιοστά του δευτερολέπτου μετρά εξίσου στην πλευρά του ελέγχου όσο και στην πλευρά του βίντεο.

Πού οφείλεται η υπόλοιπη καθυστέρηση

Η κοινή χρήση οθόνης είναι το ένα σκέλος της διαδρομής. Το άλλο είναι η ίδια η διαδρομή του δικτύου: αν η σύνδεση μεταξύ ομιλητή και θεατή είναι άμεση ή μέσω αναμετάδοσης, και τι συμβαίνει σε δίκτυα που μπλοκάρουν την άμεση κίνηση peer-to-peer. Καλύπτουμε αυτή την πλευρά, καθώς και το γιατί δεν μπορεί ποτέ να εξαλειφθεί πλήρως σε ορισμένα δίκτυα, στα άρθρα Οι διακομιστές TURN με απλά λόγια και πόσο ασφαλές είναι το WebRTC.

ΣτάδιοΠρινΜετά
ΚωδικοποίησηΔιπλό πέρασμα κωδικοποίησης, συνεχής επανακωδικοποίηση στατικών καρέΈνα πέρασμα, παραλείπει τα αμετάβλητα καρέ
BufferingΓενναιόδωρο buffer, προσθέτει καθυστέρηση σε κάθε καρέΠιο σφιχτό buffer, εξακολουθεί να απορροφά σύντομες διακοπές
Σύνδεση νέου θεατήΠεριμένει έως και 3 δευτερόλεπτα για το επόμενο keyframeΤο keyframe από την cache παραδίδεται αμέσως
Μόνιμη καθυστέρησηΠάνω από 2 δευτερόλεπταΠερίπου 0,5 δευτερόλεπτα

Οι διακομιστές TURN με απλά λόγια

Γιατί μέρος της εναπομείνασας καθυστέρησης προέρχεται από τη διαδρομή του δικτύου και όχι από τον κωδικοποιητή.

Διορθώσεις καθυστέρησης κοινής χρήσης οθόνης

Περισσότερες διορθώσεις για υβριδικές διατάξεις όπου ένας απομακρυσμένος ομιλητής παρακολουθεί την οθόνη.

Ρυθμίσεις κοινής χρήσης οθόνης

Ρυθμίσεις codec, ανάλυσης και bitrate για να ισορροπήσετε την ποιότητα με το εύρος ζώνης.

Καθυστέρηση τηλεχειριστηρίου παρουσιάσεων σε χιλιοστά του δευτερολέπτου

Γιατί η καθυστέρηση στην πλευρά του ελέγχου μετρά εξίσου με την ίδια τη ροή βίντεο.

Συχνές ερωτήσεις

Δοκιμάστε το μόνοι σας

Ο πιο γρήγορος τρόπος να νιώσετε τη διαφορά είναι να μοιραστείτε μια οθόνη και να κοιτάξετε το πρόσωπο κάποιου άλλου τη στιγμή που τη βλέπει. Κατεβάστε το Cliqer δωρεάν και δοκιμάστε μια κοινή χρήση οθόνης στη δική σας διάταξη, ή δείτε όλες τις δυνατότητες της κοινής χρήσης οθόνης και συγκρίνετε τα πακέτα στις τιμές.

engineeringscreen sharinglatencyperformance

Συντάκτης: Cliqer Team

Δημιουργούμε το Cliqer, το τηλεχειριστήριο παρουσιάσεων μέσω Internet που χρησιμοποιείται σε σκηνές, σε τάξεις και σε αίθουσες συσκέψεων σε όλο τον κόσμο.

Οργανώστε την επόμενη εκδήλωσή σας με το Cliqer

Οποιεσδήποτε διαφάνειες, οποιοδήποτε τηλέφωνο, οπουδήποτε. Η εφαρμογή υπολογιστή φιλοξενεί το δωμάτιο, οι ομιλητές απλώς ανοίγουν έναν σύνδεσμο.

Συνεχίστε την ανάγνωση

Περισσότεροι νέα προϊόντος για την επόμενη εκδήλωσή σας

A dedicated server rack glowing mint in a dark data hall
Νέα προϊόντος

Γιατί μεταφέραμε τις λειτουργίες πραγματικού χρόνου του Cliqer εκτός Cloudflare (και γιατί παραμένουμε θαυμαστές της)

Τέσσερις μήνες στο edge της Cloudflare: τι χάλασε, τι φτιάξαμε για να τα βγάλουμε πέρα και γιατί το Cliqer τρέχει πλέον στους δικούς μας αποκλειστικούς διακομιστές.
A bright hybrid meeting room with a camera on a tripod and a laptop running Cliqer Studio
Ζωντανή παραγωγή

Cliqer vs Ecamm Live: ποιο στούντιο ζωντανής μετάδοσης ταιριάζει στην παραγωγή σας;

Δίκαιη σύγκριση Cliqer και Ecamm Live: Mac και Windows, Studio, Live, Timer και τηλεχειρισμός από κινητό απέναντι σε ένα στούντιο μόνο για Mac.
A control booth with Cliqer Studio on a laptop and an external monitor, the hall visible through the window
Ζωντανή παραγωγή

Cliqer vs vMix: Δίκαιη σύγκριση του Studio, και τι κάνει καλύτερα το vMix

Cliqer Studio vs vMix σε δίκαιη σύγκριση: πλατφόρμες, εκδόσεις, replay, καλεσμένοι και έλεγχος διαφανειών, και τι κάνει καλύτερα το vMix.
Newsletter

Λάβετε τον επόμενο οδηγό πριν από την επόμενη εκδήλωσή σας

Πρακτικοί οδηγοί για ομιλητές, τεχνικά συνεργεία AV και ομάδες εκδηλώσεων, μαζί με τις εκδόσεις του Cliqer που έχουν σημασία. Χωρίς spam, διαγραφή με ένα κλικ.