Bonding: Wi-Fi και κινητή τηλεφωνία σε ένα stream σε πέντε λεπτά

Στήσε srtla bonding στο LOLS IRL, διάβασε τις ενδείξεις ανά σύνδεση όσο κάνεις stream και μάθε τι να περιμένεις την πρώτη φορά που θα πέσει ένα δίκτυο.

Το bonding στέλνει το stream σου ταυτόχρονα μέσα από κάθε δίκτυο που έχει το κινητό σου. Είναι η διαφορά ανάμεσα σε ένα stream που τελειώνει όταν πέσει το Wi-Fi και σε ένα που συνεχίζει από την κινητή τηλεφωνία χωρίς να αγγίξεις τίποτα. Στήσ' το μία φορά και μετά είναι απλά ο τρόπος που μπαίνεις live.

Τι χρειάζεσαι πρώτα

Το στήσιμο

  1. Βρες τα στοιχεία του receiver. Για δωρεάν relay αυτό είναι ένα κλειδί από το relay-auth.lols.gg, που έρχεται ήδη σε μορφή stream id. Για δικό σου μηχάνημα είναι το hostname, η θύρα UDP και όποιο stream id περιμένει ο server σου.
  2. Άνοιξε το Streams και πρόσθεσε προορισμό. Στην εφαρμογή πήγαινε στα Streams, πάτα + και διάλεξε SRTLA από τα τρία chips πρωτοκόλλου. Το SRT είναι μία σύνδεση προς τον δικό σου receiver, το RTMP πάει κατευθείαν σε πλατφόρμα, το SRTLA είναι το bonded.
  3. Συμπλήρωσε το host και το port. Με relay, πάτα το chip της περιοχής σου και το host, το port και το όνομα συμπληρώνονται μόνα τους. Η πιο κοντινή περιοχή για τη χώρα της SIM σου έχει ένα αστέρι. Με δικό σου receiver, γράψε το δημόσιο hostname και τη θύρα UDP που ακούει.
  4. Επικόλλησε το κλειδί στο Stream id. Εδώ κάνουν λάθος οι περισσότεροι. Ένα κλειδί relay περιέχει ήδη το πρόθεμά του publish:, οπότε επικόλλησέ το ολόκληρο στο Stream id, όχι στο όνομα και όχι στο τέλος του host.
  5. Άφησε την καθυστέρηση στα 2000 ms για αρχή. Είναι η προεπιλογή και είναι λογική. Πιο ψηλά αντέχει πιο άσχημο σήμα, πιο χαμηλά κόβει καθυστέρηση αλλά αφήνει λιγότερο περιθώριο να ξαναστείλει ένα χαμένο πακέτο. Μόλις μπεις live, η εφαρμογή δείχνει τον χρόνο μετ' επιστροφής που μετράει πραγματικά και προτείνει μια τιμή για να ταιριάξεις, οπότε ρύθμισέ το αργότερα με πραγματικούς αριθμούς αντί να μαντεύεις τώρα.
  6. Αποθήκευσε και βεβαιώσου ότι ο προορισμός είναι ενεργοποιημένος. Ένας προορισμός που είναι αποθηκευμένος αλλά όχι ενεργοποιημένος είναι ο πιο αθόρυβος τρόπος να μην κάνεις stream.
  7. Μπες live και μετά άνοιξε τα στατιστικά. Πάτα το overlay στατιστικών στη live οθόνη για να ανοίξει. Θες να δεις μία γραμμή ανά σύνδεση: wifi και cell, καθεμία με το δικό της bitrate και χρόνο μετ' επιστροφής. Δύο γραμμές σημαίνει ότι έχεις bonding. Μία γραμμή σημαίνει ότι όχι, και τα λάθη παρακάτω λένε γιατί.

Διαβάζοντας τις ενδείξεις

Κλειστό, το overlay είναι μια τελεία κατάστασης, το bitrate σου, ο ρυθμός καρέ του encoder, ο χρόνος μετ' επιστροφής και πόση ώρα είσαι live. Αν το πατήσεις, ανοίγει η λεπτομέρεια:

ΈνδειξηΤι σου λέει
send bufferΟ πρώτος δείκτης, και αυτός που πρέπει να βλέπεις. Το buffer γεμίζει πριν κολλήσει η εικόνα, οπότε μια τιμή που ανεβαίνει είναι η προειδοποίησή σου ότι μια σύνδεση δυσκολεύεται, όχι αναφορά ότι έχει ήδη αποτύχει.
targetΤο bitrate στο οποίο στοχεύει τώρα το adaptive bitrate, που πέφτει και ξανανεβαίνει μόνο του καθώς αλλάζουν οι συνθήκες.
dropped και retransmitΠακέτα που χάθηκαν και πακέτα που ξαναστάλθηκαν. Μερικά retransmits στην κινητή τηλεφωνία είναι φυσιολογικά, ένας μετρητής dropped που ανεβαίνει όχι.
Μία γραμμή ανά σύνδεσηΜε ετικέτα wifi, cell ή eth, καθεμία με το δικό της bitrate και χρόνο μετ' επιστροφής, ώστε να βλέπεις ποιο δίκτυο κουβαλά τι.
Η τελεία σε κάθε γραμμή σύνδεσηςΠράσινο είναι ενεργή και μεταφέρει κίνηση, πορτοκαλί είναι ότι συνδέεται ή έχει κολλήσει, κόκκινο είναι νεκρή. Μια κόκκινη γραμμή ενώ το stream μένει πάνω είναι το bonding που κάνει τη δουλειά του.
Μία γραμμή ανά προορισμόΜε όνομα, ώστε αν στέλνεις σε πολλά σημεία να βλέπεις ποιο είναι κάτω ενώ τα άλλα είναι εντάξει.

Τι γίνεται όταν πέσει μια σύνδεση

Τίποτα δραματικό, και αυτό είναι το νόημα. Η γραμμή της σύνδεσης που απέτυχε γίνεται κόκκινη, οι υπόλοιπες συνδέσεις παίρνουν την κίνηση και το stream μένει συνδεδεμένο. Όταν γυρίσει το δίκτυο, η σύνδεση ξαναεγγράφεται στον receiver και μπαίνει ξανά στην ομάδα μόνη της. Δεν σταματάς, δεν κάνεις επανεκκίνηση, δεν αγγίζεις τίποτα.

Δύο πράγματα που αξίζει να ξεκαθαρίσουμε. Πρώτον, η σύνδεση που επιζεί πρέπει να κουβαλήσει όλο το stream, οπότε αν το bitrate σου χωρούσε μόνο σε καλό Wi-Fi, το adaptive bitrate θα κατέβει όσο δουλεύει η κινητή τηλεφωνία και θα ανέβει ξανά μετά. Δεύτερον, το bonding είναι αντοχή και όχι επιπλέον ταχύτητα: οι συνδέσεις σου δεν προστίθενται ποτέ σε έναν μεγαλύτερο σωλήνα. Βάλε το bitrate σε ό,τι αντέχει μία καλή σύνδεση και σχεδόν δεν θα καταλάβεις την παράδοση.

Δοκίμασέ το επίτηδες, πριν το χρειαστείς. Μπες live με bonding από το σπίτι, περίμενε μέχρι τα στατιστικά να δείχνουν σταθερά, μετά κλείσε το Wi-Fi για ένα λεπτό και κοίτα. Θα δεις τη γραμμή wifi να γίνεται κόκκινη, τη γραμμή cell να αναλαμβάνει, και όλο να επανέρχεται όταν ανοίξεις ξανά το Wi-Fi. Δέκα λεπτά από αυτό αξίζουν περισσότερο από οποιοδήποτε διάβασμα, και είναι πολύ καλύτερο να το μάθεις στην κουζίνα σου παρά στη μέση ενός stream.

Τα λάθη που κοστίζουν την πρώτη προσπάθεια

Στόχευση διεύθυνσης στο δικό σου δίκτυο

Αυτό είναι το μεγάλο. Ένας receiver στο 192.168.1.50 φτάνει μέσω του Wi-Fi σου και από πουθενά αλλού, οπότε η σύνδεση κινητής δεν μπορεί να εγγραφεί και δεν έχεις bonding, είσαι σε Wi-Fi με επιπλέον βήματα. Ο προορισμός πρέπει να είναι δημόσιο hostname ή δημόσια διεύθυνση, δηλαδή ένα relay, ένα hosted μηχάνημα, ή ένα port forward UDP στο router σου προς το μηχάνημά σου, με διεύθυνση τη δημόσια διεύθυνση του router. Ίδιος κανόνας για ένα laptop στο γραφείο σου.

Κενό ή μισο-επικολλημένο stream id

Οι receivers ελέγχουν την ταυτότητα των publishers, οπότε ένα κενό ή κομμένο stream id σού δίνει σύνδεση που δεν πάει πουθενά. Επικόλλησε το κλειδί ολόκληρο, μαζί με το πρόθεμα publish:, στο πεδίο Stream id.

Προσδοκία για περισσότερο bitrate

Δύο συνδέσεις δεν προστίθενται. Αν βάλεις bitrate που μόνο το Wi-Fi σου θα μπορούσε ποτέ να αντέξει, το stream θα φαίνεται χειρότερο μόλις αναλάβει η κινητή τηλεφωνία, και θα κατηγορήσεις το bonding για το αντίθετο από αυτό που έκανε. Το bonding σε κρατά live. Το bitrate είναι ξεχωριστή απόφαση.

Ένα VPN που τρέχει στο κινητό

Ένα VPN πιάνει κάθε socket της συσκευής, οπότε η εφαρμογή δεν μπορεί να ανοίξει ένα ανά δίκτυο και δεν μένει τίποτα να γίνει bonding. Τα στατιστικά το λένε ξεκάθαρα όταν συμβαίνει. Κλείσε το VPN, ή εξαίρεσε το LOLS IRL από αυτό στις ρυθμίσεις της δικής του εφαρμογής VPN.

Αποστολή srtla σε απλό server SRT

Το SRTLA χρειάζεται receiver που τρέχει srtla_rec, που είναι αυτός που ξαναενώνει τις συνδέσεις. Ένας απλός SRT listener δεν καταλαβαίνει την εγγραφή ομάδας. Χρησιμοποίησε ένα relay, ή τρέξε το srtla_rec μπροστά από τον SRT server σου όπως περιγράφει ο οδηγός self-hosting.

Επιλογή relay στην άλλη άκρη του κόσμου

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

Όταν δουλέψει

Επόμενο: χρήση των δωρεάν relays