Δημιουργήστε τον δικό σας διακομιστή ζωντανής ροής βίντεο με Linux

Τα περισσότερα εργαλεία και ιστότοποι ζωντανής ροής είναι δωρεάν για το κοινό, αλλά συχνά τείνουν να απαιτούν τη δημιουργία ενός λογαριασμού, παρέχοντας πληροφορίες που μπορεί να μην θέλετε να εμφανίζεστε στο διαδίκτυο. Μπορούν να(can ) κρατήσουν κάποιο περιεχόμενο πίσω από διαφημίσεις και να ενσωματώσουν μπερδεμένους Όρους Παροχής Υπηρεσιών(Service) που μπορεί να μην τηρούν καν οι ίδιοι. 

Υπάρχουν εκείνοι που απολαμβάνουν τη δυνατότητα να μεταδίδουν ζωντανή ροή, αλλά δεν χρειάζεται να έχουν τα βίντεό τους διαθέσιμα στις μάζες. Αντίθετα, θα προτιμούσαν να έχουν περισσότερο έλεγχο στη ροή τους και στο περιεχόμενο που παράγουν. Το λογισμικό ανοιχτού κώδικα(Open-source) , όπως το Linux , είναι η καλύτερη απάντηση σε αυτό το εμπόδιο.

Σκεφτομαι μπροστα(Thinking Ahead)

Πριν ξεκινήσετε να ρυθμίζετε τον προσωπικό σας διακομιστή ροής, θα πρέπει να κάνετε στον εαυτό σας μερικές ερωτήσεις. Πρώτον(First) , ποια ποιότητα ροής αναζητάτε; Στη συνέχεια(Next) , πόσους θεατές περιμένετε να τραβήξουν; Πού θα αποθηκεύσετε όλο το περιεχόμενο ροής σας; Ποιος θα έχει πρόσβαση σε αυτό το περιεχόμενο;

Οι απαιτήσεις συστήματος μπορούν επίσης να θεωρηθούν ως ανησυχία. Ωστόσο, δεν υπάρχουν συγκεκριμένοι κανόνες για το τι ακριβώς θα χρειαστείτε από αυτή την άποψη, γι' αυτό κάντε τη χάρη και πειραματιστείτε για να δείτε τι λειτουργεί καλύτερα για τους στόχους σας.

Θα πρέπει να καταλάβετε ποιο πρωτόκολλο θα χειρίζεται το τμήμα ήχου και βίντεο της ροής. Το πρωτόκολλο ανταλλαγής μηνυμάτων(Messaging Protocol) σε πραγματικό χρόνο ( RTMP ) είναι μια εξαιρετική επιλογή, αλλά υπάρχουν και άλλα, όπως το WebRTC , που μπορεί να είναι καλύτερα στην περίπτωσή σας. Το RTMP(RTMP) έχει ευρεία υποστήριξη, επομένως θα επικεντρωθούμε σε αυτό για αυτό το άρθρο.

Ένα άλλο πράγμα για το οποίο πρέπει να ανησυχείτε είναι πιθανές καθυστερήσεις στη "ζωντανή" ροή σας. Ακριβώς επειδή πηγαίνετε ζωντανά δεν σημαίνει ότι όλα θα ευθυγραμμιστούν τέλεια. Οι ροές βίντεο(Video) πρέπει να κωδικοποιούνται, να μεταφέρονται, να αποθηκεύονται στην προσωρινή μνήμη και να εμφανίζονται, επομένως περιμένετε την ανάγκη για λίγη προσαρμογή στα χαρακτηριστικά της ροής.

Εγκατάσταση διακομιστή Linux(Linux Server Setup)

Το Ubuntu Linux(Ubuntu Linux) είναι το προσωπικό μου αγαπημένο, οπότε αυτή θα είναι η έκδοση της επιλογής εδώ. Για όσους προτιμούν μια επιλογή GUI , το Ubuntu Desktop είναι διαθέσιμο. 

  • Ενεργοποιήστε(Fire) το πρόγραμμα εγκατάστασης του Ubuntu και επιλέξτε τις ρυθμίσεις που ταιριάζουν καλύτερα στις ανάγκες σας. Πιθανότατα θα θέλετε να ορίσετε κάποιες στατικές ρυθμίσεις δικτύου, καθώς πρόκειται να χρησιμοποιηθεί ως διακομιστής.
  • Επανεκκινήστε(Reboot) το σύστημα μετά την εγκατάσταση, εάν δεν το κάνει αυτόματα. Μόλις εκκινηθεί το σύστημα Ubuntu , εγκαταστήστε τυχόν διαθέσιμες ενημερώσεις:
sudo apt update
sudo apt upgrade

Θα χρησιμοποιήσουμε διακομιστή ιστού Nginx(Nginx web server) για αυτόν τον διακομιστή ροής. Εγκαταστήστε το:

sudo apt install nginx

Προμηθευτείτε τη μονάδα RTMP , ώστε το (RTMP)Nginx να μπορεί να χειριστεί τη ροή πολυμέσων σας:

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

Προσαρμόστε τη διαμόρφωση του Nginx έτσι ώστε να μπορεί να αποδεχτεί και να παραδώσει τη ροή πολυμέσων σας.

sudo nano /etc/nginx/nginx.conf

Προσθέστε τον ακόλουθο κώδικα στο κάτω μέρος του αρχείου διαμόρφωσης:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

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

Επανεκκινήστε το Nginx(Restart Nginx) με τη νέα του διαμόρφωση:

sudo systemctl restart nginx

Ρύθμιση λογισμικού ροής(Streaming Software Setup)

Ο διακομιστής είναι έτοιμος, οπότε τώρα είναι ώρα να ρυθμίσετε το λογισμικό ροής. Ας χρησιμοποιήσουμε το Open Broadcaster Software (OBS) σε αυτήν την εκτέλεση. 

  • Μεταβείτε στον ιστότοπο και επιλέξτε την έκδοση για Linux . Μετά την εκκίνηση του λογισμικού, διαμορφώστε το OBS με τις ρυθμίσεις που ταιριάζουν καλύτερα με το υλικό σας.
  • Προσθέστε μια πηγή ροής κάνοντας κλικ στο + ακριβώς κάτω από την Πηγή(Source) .

  • Για λόγους δοκιμής, επιλέξτε Display Capture και εισαγάγετε ένα όνομα για την πηγή.
  • Κάντε κλικ στο κουμπί OK και το OBS θα αντικατοπτρίζει την επιφάνεια εργασίας σας.
  • Στη συνέχεια, κάντε κλικ στην καρτέλα Αρχείο(File) και επιλέξτε Ρυθμίσεις(Settings)

Στην ενότητα Ροή, επιλέξτε ορισμός Τύπος ροής σε Προσαρμοσμένη…(set Stream Type to Custom…) και εισαγάγετε την ακόλουθη διεύθυνση URL(URL) στο πεδίο Διακομιστής(Server) :

rtmp://IPaddress/live 

Στη θέση της διεύθυνσης IP(IPaddress) , εισαγάγετε τη διεύθυνση IP του διακομιστή ροής σας.

Τώρα δημιουργήστε το δικό σας κλειδί ροής(Stream Key) και πληκτρολογήστε το στο πλαίσιο κλειδιού ροής(Stream) . Κάντε το κάτι που θα θυμάστε και γράψτε το. Για πρόσθετη ασφάλεια, επιλέξτε το πλαίσιο Χρήση ελέγχου ταυτότητας(Use authentication ) και προσθέστε τα διαπιστευτήρια που προτιμάτε.

Ολοκληρώστε με Εφαρμογή(Apply) ακολουθούμενη από το κουμπί ΟΚ(OK) .

Όλα θα πρέπει τώρα να ρυθμιστούν για ροή. Για να ξεκινήσετε την πρώτη σας ροή, πατήστε το κουμπί Μετάδοση ροής τώρα(Stream Now) . Το κουμπί θα αλλάξει σε Διακοπή ροής(Stop Streaming) , εφόσον όλα έγιναν σωστά. Οι μετρήσεις εύρους ζώνης της ροής σας θα εμφανίζονται στο κάτω μέρος του παραθύρου του OBS .

Γίνετε ο πρώτος σας θεατής(Be Your First Viewer)

Υπάρχουν πολλά προγράμματα αναπαραγωγής πολυμέσων ανοιχτού κώδικα που υποστηρίζουν RTMP , το πιο γνωστό από τα οποία είναι το πρόγραμμα αναπαραγωγής πολυμέσων VLC(VLC media player) . Εγκαταστήστε και εκκινήστε αυτό το λογισμικό, κάντε κλικ στην καρτέλα Media και επιλέξτε Open Network Stream από το μενού. 

Έχετε(Got) το κλειδί ροής(Stream Key) ; Πληκτρολογήστε τη διαδρομή προς τη ροή σας και συμπεριλάβετε το κλειδί ροής(Stream Key) που ρυθμίσατε νωρίτερα, μέχρι το τέλος της. Θα πρέπει να μοιάζει με:

rtmp://IPaddress/live/SecretKey

Κάντε κλικ στην Αναπαραγωγή(Play) και θα λάβετε μια ζωντανή προβολή της δικής σας ροής.

Πρόσθετα Μέτρα(Additional Measures)

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

Από προεπιλογή, οποιοσδήποτε μπορεί να δει τη ροή σας. Αυτό μπορεί να έρχεται σε αντίθεση με τον σκοπό της δημιουργίας του διακομιστή αρχικά. Θα θέλετε να ρυθμίσετε περιορισμένη πρόσβαση χρησιμοποιώντας ένα τείχος προστασίας Linux , ένα (Linux)αρχείο .htaccess(.htaccess file) ή τα ενσωματωμένα στοιχεία ελέγχου πρόσβασης στη μονάδα RTMP(built-in access controls in the RTMP module) . Αυτή η επιλογή επαφίεται σε εσάς.

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

Ορίστε(Set) μια υπάρχουσα διαδρομή για να επιτρέψετε στο Nginx να γράψει σε αυτήν. Εισάγετε τα ακόλουθα:

εφαρμογή ζωντανά { (application live {)
             ζωντανά σε; (             live on;)
             εγγραφή όλων? (             record all;)
             record_path /var/www/html/recordings;
             record_unique on;
}

Αυτό είναι το μόνο που χρειάζεστε όταν ρυθμίζετε έναν διακομιστή ζωντανής ροής χρησιμοποιώντας το Ubuntu Linux OS . Εάν σας ενδιαφέρει περισσότερο ένας διακομιστής ροής μέσων που δεν είναι ζωντανή, θα πρότεινα τη χρήση του Plex στη θέση του OBS.



About the author

"Είμαι ανεξάρτητος ειδικός στα Windows και στο Office. Έχω πάνω από 10 χρόνια εμπειρίας στην εργασία με αυτά τα εργαλεία και μπορώ να σας βοηθήσω να αξιοποιήσετε στο έπακρο. Οι δεξιότητές μου περιλαμβάνουν: εργασία με Microsoft Word, Excel, PowerPoint και Outlook, δημιουργία ιστού σελίδες και εφαρμογές και βοηθώντας τους πελάτες να επιτύχουν τους επιχειρηματικούς τους στόχους."



Related posts