Το προφίλ μας στο Google Plus
3

Φτιάξτε το δικό σας Netflix, με το Plex!

Οι πρόσφατες εξελίξεις με το Netflix μάς έβαλαν στην πρίζα. Χωρίς καμία καθυστέρηση ξεκινήσαμε να ψάχνουμε το όλο θέμα και γρήγορα συνειδητοποιήσαμε ότι, πράγματι, η παγκόσμια διάθεση του περιεχομένου της δημοφιλούς υπηρεσίας streaming, αν μη τι άλλο αποτελεί αξιοπρόσεκτη κίνηση. Σίγουρα δεν πρόκειται για κάποια ενδιαφέρουσα διαπίστωση από μέρους μας. Ό,τι ακολούθησε, πάντως, για εμάς τουλάχιστον *ήταν* ενδιαφέρον.

Εκεί που κάναμε τις διαπιστώσεις μας κι αναλογιζόμασταν αν και πόσο θα αλλάξει το ιντερνετικό τοπίο με ένα παγκόσμιο, πλέον, Netflix, επαληθεύσαμε μια υποψία μας: Το περιεχόμενο που θα παρέχεται σε διάφορες χώρες, αρχικά τουλάχιστον θα είναι ένα μικρό υποσύνολο του περιεχομένου που παρέχεται στην Αμερική. Κάπως έτσι βάλαμε στον πάγο την ιδέα για μηνιαία συνδρομή στην υπηρεσία. Στην επόμενη σκηνή είχαμε ήδη στήσει τον δικό μας media server και, απόλυτα ευχαριστημένοι με την ευχρηστία και τις επιδόσεις του, τον χαιρόμασταν στο τοπικό μας δίκτυο.

Δεν θα ήταν υπερβολή αν λέγαμε ότι με το κατάλληλο hardware, ένα καλό media server/player software και μια προσεκτικά συγκροτημένη συλλογή περιεχομένου, δικαιούται κάποιος να μιλά για το προσωπικό του Netflix. Είναι βέβαια αδύνατον να έχει στη διάθεσή του όλο το περιεχόμενο που σερβίρει η υπηρεσία, αλλά ας μην ξεχνάμε και τα ακόλουθα:

  • κανείς στο Ηλιακό Σύστημα δεν νοιάζεται για *όλο* το περιεχόμενο που διαθέτει το Netflix
  • λόγω πνευματικών δικαιωμάτων δεν διατίθεται το 100% του περιεχομένου σε κάθε χώρα
  • η εταιρεία έχει αρχίσει να εντατικοποιεί τις πολιτικές μπλοκαρίσματος για όσους επιχειρούν πρόσβαση σε περιεχόμενο άλλης χώρας, π.χ., μέσω proxy ή VPN.

Επιστρέφοντας στα δικά μας, ας σημειώσουμε ότι οι σειρές που μας αρέσουν και παρακολουθούμε δεν είναι πολλές. Κάτι παρόμοιο συμβαίνει και με τις ταινίες, αφού απ’ ό,τι φαίνεται τα τελευταία χρόνια έχουμε γίνει κάπως επιλεκτικοί. Κάθε φορά πάντως που θέλουμε να παρακολουθήσουμε ένα επεισόδιο μιας σειράς ή μία ταινία, μας αρέσει να έχουμε επιλογή για το πού θα την παρακολουθήσουμε (TV, tablet ή ακόμη και smartphone). Είναι επίσης επιθυμητός ένας κάποιος αυτοματοποιημένος τρόπος οργάνωσης του περιεχομένου, π.χ., ανά τηλεοπτική σειρά και σεζόν. Τα δε metadata, όπως τα πόστερ ταινιών και σειρών, οι περιλήψεις, οι αξιολογήσεις κ.ο.κ., όταν υπάρχουν διευκολύνουν σημαντικά την οργάνωση αλλά και βελτιώνουν την όλη εμπειρία παρακολούθησης.

Αν το σκεφτούμε λίγο βλέπουμε όλες αυτές οι επιθυμίες ουσιαστικά είναι παράμετροι ενός γενικότερου προβλήματος — κι ευτυχώς λύσεις υπάρχουν. Και οι εν λόγω λύσεις υλοποιούνται με το κατάλληλο λογισμικό οργάνωσης, streaming ή/και αναπαραγωγής. Πράγματι, ένας δικτυωμένος υπολογιστής ή συσκευή που είναι εφοδιασμένος με κάποιον αξιοπρεπή media server, αφενός διατηρεί οργανωμένο το περιεχόμενό μας, αφετέρου είναι σε θέση να το στέλνει σε όποια άλλη συσκευή διαθέτει τον κατάλληλο player, ώστε να μιλά με τον server.

Δύο δημοφιλείς προτάσεις για home theater
Ο λόγος γίνεται για τα Kodi και Plex: δεν είναι παρόμοια σε λειτουργία, αλλά αμφότερα μπορούν να χρησιμοποιηθούν για τη δημιουργία ενός οικιακού συστήματος ψυχαγωγίας.

Το Kodi, ο απόγονος του πάλαι ποτέ XBMC, είναι ένας media player Ανοικτού Λογισμικού που διανέμεται δωρεάν. Είναι εξαιρετικά ευέλικτο και προσαρμόσιμο και διατίθεται για Windows, Linux, OS X — ακόμη και για συσκευές με επεξεργαστή ARM, όπως είναι το Raspberry Pi. Το δε Plex είναι ένας media server και player που αποτελεί ιδιόκτητο λογισμικό αλλά κι αυτός διανέμεται δωρεάν, εκτός από ορισμένες εκδοχές του player. Μέρος του κώδικα του Plex ξεκίνησε ως fork του XBMC, τον Μάιο του 2008. Το αποτέλεσμα αυτής της κοινής καταγωγής που μοιράζονται τα Kodi και Plex είναι ότι, πέρα από την αναπαραγωγή, αμφότερες οι εφαρμογές οργανώνουν αυτόματα το περιεχόμενό μας χρησιμοποιώντας μια ευέλικτη βάση δεδομένων και metadata, τα οποία συλλέγουν από online συστήματα όπως, π.χ., αυτά των thetvdb.com και themoviedb.org.

Τα Kodi και Plex έχουν όμως και σημαντικές διαφορές. Στο Kodi, για παράδειγμα, η βάση δεδομένων για την οργάνωση του περιεχομένου βρίσκεται σε κάθε client ή κεντρικά, σε έναν MySQL server. Από την άλλη, στο Plex η βάση συντηρείται πάντοτε κεντρικά, από τον Plex server. Το transcoding του ίδιου του περιεχομένου, ώστε να μπορεί ν’ αναπαράγεται σε μια πληθώρα συσκευών με δυνατότητες και ισχύ που ποικίλουν, στην περίπτωση του Kodi γίνεται από τον client ενώ στην περίπτωση του Plex το αναλαμβάνει ο server. Για το Kodi εξάλλου διατίθεται μια υπερπληθώρα από add-ons, ενώ και οι δυνατότητες που έχει ο χρήστης για την τροποποίηση/προσαρμογή του περιβάλλοντος είναι πολύ μεγάλες. Απέναντι, στον κόσμο του Plex, η εικόνα είναι εντελώς διαφορετική: τα add-ons είναι λιγοστά, ενώ οι δυνατότητες για προσαρμογή του περιβάλλοντος είναι περιορισμένες.

Για το δικό μας setup στραφήκαμε στο Plex. Δεν μας ενδιαφέρει η πληθώρα των add-ons, τα οποία, σημειωτέον, μερικές φορές εγκαταλείπονται από τους προγραμματιστές τους και κατά συνέπεια δεν παίζουν σωστά σε επόμενες εκδόσεις του Kodi. Την ίδια στιγμή, μας αρέσει που η βάση δεδομένων του Plex media server είναι μία και τηρείται κεντρικά, ενώ και το transcoding γίνεται επίσης κεντρικά. Θεωρούμε εξάλλου θετικό για το μέλλον του Plex το γεγονός ότι η εταιρεία πίσω του έχει συγκεκριμένο επιχειρηματικό πλάνο. Αναλυτικότερα, ο media server διανέμεται δωρεάν, το ίδιο και ο player για υπολογιστές με Windows, Linux, OS X, καθώς και για τα Apple TV και XBox. Από εκεί και πέρα, υπάρχει μια χρέωση της τάξης των 5 ευρώ για τους players συσκευών με iOS, Android, Windows Phone κ.ά. Επιπρόσθετα, για όποιον ενδιαφέρεται παρέχεται το προαιρετικό Plex Pass, με μηνιαία (4,99 ευρώ), ετήσια (39,99 ευρώ) ή Lifetime (149,99 ευρώ) χρέωση. Ο κάτοχος Plex Pass έχει έξτρα παροχές όπως, π.χ., offline playback για συγκεκριμένες συσκευές, λογαριασμούς χρηστών με περιορισμούς (βλ. parental controls), αυτόματο uploading φωτογραφιών από smartphones και tablets, τρέιλερς υψηλής ποιότητας και δωρεάν εφαρμογές αναπαραγωγής.

Στο υπόλοιπο του παρόντος άρθρου μάς απασχολεί το Plex.

Διαμορφώσεις για το σερβίρισμα περιεχομένου
Πού πρέπει να αποθηκεύονται τα media files μας; Στο ίδιο μηχάνημα με τον media server ή σε ξεχωριστό; Η απάντηση εξαρτάται από τον όγκο των αρχείων, όπως επίσης κι από το hardware που ήδη διαθέτουμε. Γενικά, θα μπορούσαμε να πούμε ότι υπάρχουν δύο βασικές προσεγγίσεις: εκείνη του Όλα σ’ Ένα και Νοικοκυρεμένα (TM), καθώς κι εκείνη του Κατανεμημένα κι Ευλογημένα (TM). Εμείς επιλέξαμε μια τρίτη, ενδιάμεση προσέγγιση, πιο κοντά στην πρώτη. Πριν όμως πούμε περισσότερα, ας δούμε τις δύο βασικές προσεγγίσεις.

Όλα Σ’ Ένα και Νοικοκυρεμένα (TM). Όλα τα αρχεία εικόνας/ήχου/βίντεο βρίσκονται στον ίδιο υπολογιστή ή NAS, όπου βρίσκεται κι ο Plex media server. (Σημειώστε ότι εκτός από τα βασικά OSes, ο Plex media server διατίθεται και για αρκετά μοντέλα NAS.) Η συγκεκριμένη προσέγγιση είναι αρκετά οικονομική, αφού δεν χρειαζόμαστε hardware και για τον file server και για τον media server. Έχει όμως και τα αρνητικά της: Αν το hardware δεν έχει την απαιτούμενη ισχύ, όπως συχνά συμβαίνει με τα NAS, είναι τότε πιθανό να παρατηρούνται προβλήματα κατά το playback — ειδικά όταν περισσότεροι από ένας πελάτες προσπαθούν να εξυπηρετηθούν.

Κατανεμημένα κι Ευλογημένα (TM). Τα αρχεία εικόνας/ήχου/βίντεο κατοικούν σε file server ή NAS και, μέσω NFS ή CIFS, μοιράζονται δικτυακά (και) προς το μηχάνημα στο οποίο τρέχει ο Plex media server. Το προαναφερθέν έχει την απαραίτητη ισχύ –ή τουλάχιστον πρέπει να την έχει– ώστε να ικανοποιεί έναν ή περισσότερους πελάτες ταυτόχρονα. Η συγκεκριμένη προσέγγιση είναι φανερά πιο ευέλικτη από την προηγούμενη. Είναι όμως και πιο ακριβή, ειδικά αν δεν διαθέτουμε file server ή NAS.

Όπως ήδη αναφέραμε, η δική μας προσέγγιση βρίσκεται ανάμεσα στις δύο βασικές — και πιο κοντά στην Όλα Σ’ Ένα και Νοικοκυρεμένα (TM). Το θέμα είναι ότι, με εξαίρεση ένα VM σε ρόλο Dropbox node, αυτή την περίοδο δεν έχουμε κάποιον file server στο τοπικό δίκτυο. Έχουμε όμως έναν virtualization server με openSUSE (βλ. εδώ κι εδώ), ο οποίος είναι: α) ικανός να φιλοξενήσει τη σχετικά μικρή συλλογή από media files που διαθέτουμε στο host OS και β) αρκετά ισχυρός ώστε να φιλοξενήσει άλλο ένα VM με Ubuntu Server και τον Plex media server. Το host OS (δηλαδή το openSUSE) μοιράζει τον κατάλογο με τα media files μέσω NFS, ενώ το Ubuntu Server VM με το Plex έχει προσαρτημένο το NFS exported directory με τα media files. Θα μπορούσαμε να εγκαταστήσουμε το Plex στο host OS κι όχι σε VM, όμως η ιδέα με το virtualization είναι ότι ο φυσικός υπολογιστής τρέχει τα απολύτως απαραίτητα κι από εκεί και πέρα έχουμε πολλά αυτόνομα κι εξειδικευμένα VMs. Υπό αυτή την έννοια, θα παρατηρούσε κάποιος ότι θα έπρεπε να έχουμε κι ένα VM σε ρόλο file server, με όλα τα media files. Έτσι είναι — και ίσως να το φροντίσουμε για το μέλλον. Προς το παρόν όμως η συλλογή με τα media files δεν είναι μεγάλη, ενώ η μνήμη RAM του φυσικού υπολογιστή δεν περισσεύει. Ακριβώς για τους λόγους αυτούς αποφασίσαμε να αποθηκεύσουμε τα media files απευθείας στον virtualization host — και να τα κάνουμε export μέσω NFS.

Ένα KVM VM με Ubuntu Server
Όταν υπάρχει δυνατότητα επιλογής του λειτουργικού συστήματος για το μηχάνημα που θα φιλοξενήσει τον Plex media server, προτείνεται το Linux. Ο media server θα έχει καλύτερες επιδόσεις στο ίδιο –εικονικό ή φυσικό– hardware, όταν αντί για Windows ή OS X χρησιμοποιείται κάποια διανομή Linux. Φτιάξαμε λοιπόν ένα νέο KVM VM με 2GiB μνήμης RAM, δύο εικονικούς πυρήνες και sparse RAW file μεγέθους 64GiB για σκληρό δίσκο (βλ. κι εδώ).

Οι προδιαγραφές της εικονικής μηχανής που φιλοξενεί τον Plex media server. Παρατηρήστε, μεταξύ άλλων, ότι έχει 2 εικονικούς επεξεργαστές και 2GiB RAM. Έχει εξάλλου ενεργοποιηθεί το Autostart, που σημαίνει ότι το VM ξεκινά αυτόματα κατά το boot του host OS.

Οι προδιαγραφές της εικονικής μηχανής που φιλοξενεί τον Plex media server. Παρατηρήστε, μεταξύ άλλων, ότι έχει 2 εικονικούς επεξεργαστές και 2GiB RAM. Έχει εξάλλου ενεργοποιηθεί το Autostart, που σημαίνει ότι το VM ξεκινά αυτόματα κατά το boot του host OS.

Παρεμπιπτόντως, το πραγματικό μέγεθος που καταλαμβάνει ο εικονικός δίσκος μετά την εγκατάσταση του Ubuntu Server, τις αναβαθμίσεις και την εγκατάσταση του Plex media server, είναι μόλις 5,04GiB.

Το VM με το Ubuntu Server νομίζει ότι έχει έναν δίσκο μεγέθους 64GiB. Καλά κάνει και το νομίζει, ωστόσο αυτή τη στιγμή το αρχείο-δίσκος του VM καταλαμβάνει μόλις 5,04GiB στον αληθινό δίσκο του host computer.

Το VM με το Ubuntu Server νομίζει ότι έχει έναν δίσκο μεγέθους 64GiB. Καλά κάνει και το νομίζει, ωστόσο αυτή τη στιγμή το αρχείο-δίσκος του VM καταλαμβάνει μόλις 5,04GiB στον αληθινό δίσκο του host computer.

Η διαδικασία εγκατάστασης του Ubuntu Server –εμείς επιλέξαμε την έκδοση 14.04 LTS 64bit– είναι η τυπική και δεν αξίζει να σημειώσουμε κάτι. Απλά, αν θέλετε επιλέξτε από τον installer την ενεργοποίηση του OpenSSH server — αν κι αυτή η ενέργεια κάλλιστα μπορεί να γίνει και μετά την εγκατάσταση του λειτουργικού συστήματος.

Το openSUSE host ως NFS server
Βρισκόμαστε στο openSUSE, δηλαδή σε ένα σύστημα Linux, και θέλουμε να μοιράσουμε έναν κατάλογο με αρχεία (τα media files μας) στο Ubuntu Server, δηλαδή σε ένα άλλο σύστημα Linux. Με δεδομένα τα εμπλεκόμενα OSes, το καλύτερο πρωτόκολλο για τον διαμοιρασμό είναι το NFS (Network File System). Αναλυτικότερα, θα κάνουμε export τον κατάλογο ~/Media από το openSUSE (εκεί κρατάμε τα media files) κι από το Ubuntu Server θα τον προσαρτήσουμε (mount) κάτω από τον κατάλογο /mnt/media. Στα screenshots που ακολουθούν –διαβάστε και τις αντίστοιχες περιγραφές– δείχνουμε πώς εργαστήκαμε για να εγκαταστήσουμε, να ρυθμίσουμε και να ενεργοποιήσουμε τον NFS server, καθώς και για να κάνουμε export αυτόν τον κατάλογο Media, από το home directory του χρήστη μας (cvar).

Για τη ρύθμιση του NSF server θα καταφύγουμε στο σχετικό άρθρωμα του YaST, το οποίο όμως απουσιάζει. Φροντίζουμε και το εγκαθιστούμε με το zypper, από τη γραμμή εντολών (το όνομα του πακέτου που χρειαζόμαστε είναι yast2-nfs-server).

Για τη ρύθμιση του NSF server θα καταφύγουμε στο σχετικό άρθρωμα του YaST, το οποίο όμως απουσιάζει. Φροντίζουμε και το εγκαθιστούμε με το zypper, από τη γραμμή εντολών (το όνομα του πακέτου που χρειαζόμαστε είναι yast2-nfs-server).

Ξεκινάμε το YaST κι από τις κατηγορίες στη στήλη αριστερά, κάνουμε κλικ στο Network Services. Από τα αρθρώματα δεξιά, πατάμε πάνω στο NSF Server.

Ξεκινάμε το YaST κι από τις κατηγορίες στη στήλη αριστερά, κάνουμε κλικ στο Network Services. Από τα αρθρώματα δεξιά, πατάμε πάνω στο NSF Server.

Θέλουμε ο NFS server να ξεκινά αυτόματα κατά την εκκίνηση του openSUSE (1) και τα απαραίτητα ports να μη μπλοκάρονται από το firewall (2). Ενεργοποιούμε επίσης και την υποστήριξη του NFSv4 (3). Η έκδοση 4 του NFS είναι βελτιωμένη τόσο ως προς την ασφάλεια, όσο κι ως προς τις επιδόσεις.

Θέλουμε ο NFS server να ξεκινά αυτόματα κατά την εκκίνηση του openSUSE (1) και τα απαραίτητα ports να μη μπλοκάρονται από το firewall (2). Ενεργοποιούμε επίσης και την υποστήριξη του NFSv4 (3). Η έκδοση 4 του NFS είναι βελτιωμένη τόσο ως προς την ασφάλεια, όσο κι ως προς τις επιδόσεις.

Στο νέο παράθυρο που εμφανίζεται κάνουμε ένα κλικ στο κουμπί Add Directory (1). Από το παράθυρο του file manager που ανοίγει, υποδεικνύουμε τον κατάλογο που πρόκειται να γίνει export. Για την περίπτωσή μας ο εν λόγω κατάλογος είναι ο /home/cvar/Media (2). Με το exported directory επιλεγμένο, στο πλαίσιο από κάτω βλέπουμε τις ιδιότητες που το χαρακτηρίζουν. Πατάμε στο κουμπί Edit και το μόνο που αλλάζουμε είναι το 'ro', το οποίο κάνουμε 'rw' (3). Έτσι, οι NFS clients που θα προσαρτούν το exported directory θα έχουν δικαίωμα τόσο για ανάγνωση, όσο και για εγγραφή. Ολοκληρώνουμε την εργασία μας με ένα κλικ στο κουμπί Finish, κάτω δεξιά.

Στο νέο παράθυρο που εμφανίζεται κάνουμε ένα κλικ στο κουμπί Add Directory (1). Από το παράθυρο του file manager που ανοίγει, υποδεικνύουμε τον κατάλογο που πρόκειται να γίνει export. Για την περίπτωσή μας ο εν λόγω κατάλογος είναι ο /home/cvar/Media (2). Με το exported directory επιλεγμένο, στο πλαίσιο από κάτω βλέπουμε τις ιδιότητες που το χαρακτηρίζουν. Πατάμε στο κουμπί Edit και το μόνο που αλλάζουμε είναι το “ro”, το οποίο κάνουμε “rw” (3). Έτσι, οι NFS clients που θα προσαρτούν το exported directory θα έχουν δικαίωμα τόσο για ανάγνωση, όσο και για εγγραφή. Ολοκληρώνουμε την εργασία μας με ένα κλικ στο κουμπί Finish, κάτω δεξιά.

Ένας τρόπος για να βεβαιωθούμε ότι ο κατάλογος /home/cvar/Media είναι πράγματι NFS exported, είναι ν’ ανοίξουμε ένα τερματικό και να πληκτρολογήσουμε το ακόλουθο:

cvar@thehost:~> sudo showmount -e thehost
Export list for thehost:
/home/cvar/Media *
cvar@thehost:~>

(Το “thehost” είναι το άριστο hostname του virtualization host.)

Το Ubuntu VM ως NFS client
Συνδεόμαστε τώρα στο KVM VM με το Ubuntu Server, π.χ., μέσω SSH. Το username του χρήστη μας εκεί, είναι sub0. Φροντίζουμε ώστε το λειτουργικό σύστημα να είναι σε θέση να λειτουργεί ως NFS client. Τα πακέτα rpcbind και nfs-common πρέπει να είναι παρόντα, οπότε τα εγκαθιστούμε δίνοντας

sub0@plex:~$ sudo apt-get install rpcbind nfs-common

Ας δημιουργήσουμε τον κατάλογο υπό τον οποίο θα γίνει η προσάρτηση, μέσω NFS, του προαναφερθέντος exported directory:

sub0@plex:~$ mkdir -p ~/exported/Media

Με δικαιώματα υπερχρήστη ανοίγουμε το αρχείο /etc/fstab (π.χ., με ένα sudo nano /etc/fstab) και στο τέλος του προσθέτουμε την ακόλουθη γραμμή:

thehost.colder.xyz:/home/cvar/Media /home/sub0/exported/Media nfs rw,hard,intr 0 0

Στη θέση του “thehost.colder.xyz” θα βάλετε το FQDN ή το IP του NFS server σας, ενώ στις θέσεις των “/home/cvar/Media” και “/home/sub0/exported/Media” θα βάλετε τις διαδρομές του exported directory (στον NFS server) και του mount point (στον NFS client) αντίστοιχα. Μετά απ’ αυτή την προσθήκη στο fstab, κάθε φορά που θα εκκινεί το λειτουργικό ο απομακρυσμένος κατάλογος θα προσαρτάται αυτόματα κατά NFS. Δεν χρειάζεται να κάνουμε reboot, αφού για το mounting αρκεί ένα

sub0@plex:~$ sudo mount /home/sub0/exported/Media

Προκειμένου να βεβαιωθούμε ότι όλα έγιναν σωστά μπορούμε, π.χ., να χρησιμοποιήσουμε το εργαλείο df.

Προσαρτάμε το απομακρυσμένο exported directory μέσω NFS (1) και με τη βοήθεια του df (2) ελέγχουμε αν η διαδικασία πέτυχε. Η τελευταία γραμμή στην έξοδο του df φανερώνει πως όλα πήγαν καλά (3).

Προσαρτάμε το απομακρυσμένο exported directory μέσω NFS (1) και με τη βοήθεια του df (2) ελέγχουμε αν η διαδικασία πέτυχε. Η τελευταία γραμμή στην έξοδο του df φανερώνει πως όλα πήγαν καλά (3).

Εγκατάσταση Plex media server στο Ubuntu
Στο σημείο αυτό έχουμε το openSUSE σε ρόλο file server και όλα τα media files μοιράζονται, μέσω NFS, στο VM με το Ubuntu Server. Στο προαναφερθέν έχει έρθει η ώρα να εγκαταστήσουμε τον Plex media server, ο οποίος θα λειτουργεί ως άλλη μια υπηρεσία του συστήματος. Από τον web browser της προτίμησής μας πηγαίνουμε απευθείας στο https://plex.tv/downloads#pms-desktop. Στις τέσσερις καρτέλες πάνω πάνω, φροντίζουμε ώστε να είναι επιλεγμένη η “Linux”. Παρατηρήστε ότι διατίθενται πακέτα για τρεις διαφορετικές διανομές Linux (Ubuntu, Fedora και CentOS). Επιπλέον, για κάθε διανομή διατίθενται δύο εκδοχές (64bit και 32bit). Εμείς τώρα θέλουμε το πακέτο για Ubuntu και συγκεκριμένα την εκδοχή 64bit. Κάνουμε δεξί κλικ πάνω στο αντίστοιχο κουμπί κι επιλέγουμε το “Copy Link” ή την αντίστοιχη λειτουργία του browser μας. Ουσιαστικά, αυτό που μας ενδιαφέρει είναι το πλήρες URL προς το πακέτο DEB του Plex media server, για Ubuntu Server 64bit. Στη συνέχεια συνδεόμαστε στο Plex μέσω SSH, αν δεν είμαστε ήδη συνδεδεμένοι, και κατεβάζουμε το πακέτο με τη βοήθεια του wget. Δείτε στα δύο ακόλουθα screenshots το downloading και την εγκατάσταση, με τη βοήθεια του dpkg.

Αφού αντιγράψαμε το πλήρες URL προς την εκδοχή του πακέτου με τον Plex media server για τη διανομή μας, συνδεόμαστε στο Ubuntu Server μέσω SSH και κατεβάζουμε το σχετικό αρχείο με το wget.

Αφού αντιγράψαμε το πλήρες URL προς την εκδοχή του πακέτου με τον Plex media server για τη διανομή μας, συνδεόμαστε στο Ubuntu Server μέσω SSH και κατεβάζουμε το σχετικό αρχείο με το wget.

Για την εγκατάσταση του πακέτου DEB που μόλις κατεβάσαμε, επιστρατεύουμε το εργαλείο dpkg όπως φαίνεται στο screenshot. Η εγκατάσταση απαιτεί δικαιώματα διαχειριστή συστήματος, γι' αυτό και χρησιμοποιούμε το sudo.

Για την εγκατάσταση του πακέτου DEB που μόλις κατεβάσαμε, επιστρατεύουμε το εργαλείο dpkg όπως φαίνεται στο screenshot. Η εγκατάσταση απαιτεί δικαιώματα διαχειριστή συστήματος, γι’ αυτό και χρησιμοποιούμε το sudo.

Στην έξοδο του netstat παρατηρούμε ότι ο Plex media server έχει ήδη ενεργοποιηθεί. Τέλεια όλα!

Στην έξοδο του netstat παρατηρούμε ότι ο Plex media server έχει ήδη ενεργοποιηθεί. Τέλεια όλα!

Η ρύθμιση και γενικά ο χειρισμός του Plex media server γίνονται από το web panel που παρέχει. Μέσα από το τοπικό μας δίκτυο, στο εν λόγω panel συνδεόμαστε από έναν οποιονδήποτε web browser και συγκεκριμένα επισκεπτόμενοι τη διεύθυνση http://plex.colder.xyz:32400/web. Φυσικά, στη θέση του “plex.colder.xyz” θα βάλετε είτε το FQDN του Plex box/VM είτε το IP του. Όπως θα διαπιστώσετε, το περιβάλλον που παρέχει το Plex είναι απλό, λειτουργικό κι αυτό που θα λέγαμε “διαισθητικό”. Εκτός από κάποιες αρχικές ρυθμίσεις που δεν είναι απαραίτητες και μπορούν να γίνουν κι αργότερα, η πρώτη μας μέριμνα θα είναι να υποδείξουμε στο Plex φακέλους με περιεχόμενο που μπορεί να χειριστεί (βίντεο, φωτογραφίες, αρχεία ήχου). Δείτε μερικά χαρακτηριστικά screenshots και διαβάστε τις αντίστοιχες περιγραφές.

Από τις πρώτες δουλειές που θα θέλουμε να κάνουμε στο web panel του Plex media server είναι να ορίσουμε στην εφαρμογή βιβλιοθήκες με περιεχόμενο. Στο παράδειγμα βλέπουμε τον ορισμό βιβλιοθήκης με ταινίες (για τις δικές μας παραγωγές υπάρχει άλλη κατηγορία).

Από τις πρώτες δουλειές που θα θέλουμε να κάνουμε στο web panel του Plex media server είναι να ορίσουμε στην εφαρμογή βιβλιοθήκες με περιεχόμενο. Στο παράδειγμα βλέπουμε τον ορισμό βιβλιοθήκης με ταινίες (για τις δικές μας παραγωγές υπάρχει άλλη κατηγορία).

Φυσικά, κάθε βιβλιοθήκη που ορίζουμε στο Plex αντιστοιχεί σε έναν κατάλογο στο δίσκο. Εδώ, π.χ., βλέπουμε ότι η βιβλιοθήκη Movies αντιστοιχεί στον κατάλογο /home/sub0/exported/Media/Movies. Υπενθυμίζουμε ότι κάτω από τον /home/sub0/exported/Media είναι προσαρτημένο, μέσω NSF, ένα exported directory του openSUSE.

Φυσικά, κάθε βιβλιοθήκη που ορίζουμε στο Plex αντιστοιχεί σε έναν κατάλογο στο δίσκο. Εδώ, π.χ., βλέπουμε ότι η βιβλιοθήκη Movies αντιστοιχεί στον κατάλογο /home/sub0/exported/Media/Movies. Υπενθυμίζουμε ότι κάτω από τον /home/sub0/exported/Media είναι προσαρτημένο, μέσω NSF, ένα exported directory του openSUSE.

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

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

Με παρόμοιο τρόπο προσθέτουμε και μια βιβλιοθήκη ονόματι TV Shows, η οποία περιλαμβάνει τηλεοπτικές σειρές. Παρεμπιπτόντως, αυτή την περίοδο παρακολουθούμε την τρίτη σεζόν του House of Cards. Την είχαμε ξεκινήσει το καλοκαίρι, αλλά δεν κατορθώσαμε τότε να την ολοκληρώσουμε.

Με παρόμοιο τρόπο προσθέτουμε και μια βιβλιοθήκη ονόματι TV Shows, η οποία περιλαμβάνει τηλεοπτικές σειρές. Παρεμπιπτόντως, αυτή την περίοδο παρακολουθούμε την τρίτη σεζόν του House of Cards. Την είχαμε ξεκινήσει το καλοκαίρι, αλλά δεν κατορθώσαμε τότε να την ολοκληρώσουμε.

Τις τηλεοπτικές σειρές το Plex media server τις οργανώνει σε σεζόν. Παρατηρήστε ότι μάς δείχνει το συνολικό αριθμό επεισοδίων της σειράς που έχουμε (39), καθώς και τον αριθμό των επεισοδίων κάθε σεζόν (13). Προσέξτε το background της σελίδας: Τη διακόσμηση τη φρόντισε το Plex -- εμείς μόνο μερικά κλικ κάναμε!

Τις τηλεοπτικές σειρές το Plex media server τις οργανώνει σε σεζόν. Παρατηρήστε ότι μάς δείχνει το συνολικό αριθμό επεισοδίων της σειράς που έχουμε (39), καθώς και τον αριθμό των επεισοδίων κάθε σεζόν (13). Προσέξτε το background της σελίδας: Τη διακόσμηση τη φρόντισε το Plex — εμείς μόνο μερικά κλικ κάναμε!

Η αναπαραγωγή του περιεχομένου που σερβίρει ο Plex media server γίνεται από έναν web browser, αφού πρώτα επισκεφθούμε τη διεύθυνση http://plex.colder.xyz:32400/web. Διατίθενται επίσης βολικοί players για Windows, OS X, iOS, Android και Windows Phone. Επιπρόσθετα, players υπάρχουν και για το Xbox, το Apple TV κι άλλες συσκευές. Ας υπογραμμιστεί εδώ ότι, όσον αφορά στο Apple TV, το Plex παίζει μόνο στις συσκευές 4ης γενεάς, δηλαδή στις πλέον πρόσφατες για τη στιγμή που γράφεται το παρόν.

Στο στιγμιότυπο βλέπουμε να παίζει ένα επεισόδιο του House of Cards σε παράθυρο του Safari. Αυτό που δεν φαίνεται είναι και η ταυτόχρονη αναπαραγωγή μιας ταινίας, σε ένα Samsung Galaxy Note 4. Στο τερματικό είμαστε συνδεδεμένοι στον virtualization host και τρέχουμε το htop. Γενικά, το σύστημα συμπεριφερόταν ομαλότατα και είχαμε μόνο στιγμιαίες εξάρσεις στο CPU occupancy. Με δεδομένα α) τα ταπεινά χαρακτηριστικά του host computer (επεξεργαστής Core i3 με δύο πυρήνες, 8GiB μνήμης RAM), β) την ταυτόχρονη εκτέλεση δύο VMs και γ) το ταυτόχρονο streaming προς δύο συσκευές από το ένα εκ των δύο VMs, είμαστε σε θέση να πούμε ότι το Plex αποδίδει άριστα -- ακόμη και σε σχετικά low-end hardware.

Στο στιγμιότυπο βλέπουμε να παίζει ένα επεισόδιο του House of Cards σε παράθυρο του Safari. Αυτό που δεν φαίνεται είναι και η ταυτόχρονη αναπαραγωγή μιας ταινίας, σε ένα Samsung Galaxy Note 4. Στο τερματικό είμαστε συνδεδεμένοι στον virtualization host και τρέχουμε το htop. Γενικά, το σύστημα συμπεριφερόταν ομαλότατα και είχαμε μόνο στιγμιαίες εξάρσεις στο CPU occupancy. Με δεδομένα α) τα ταπεινά χαρακτηριστικά του host computer (επεξεργαστής Core i3 με δύο πυρήνες, 8GiB μνήμης RAM), β) την ταυτόχρονη εκτέλεση δύο VMs και γ) το ταυτόχρονο streaming προς δύο συσκευές από το ένα εκ των δύο VMs, είμαστε σε θέση να πούμε ότι το Plex αποδίδει άριστα — ακόμη και σε σχετικά low-end hardware.

VLC και Handbrake για το openSUSE
Από τη στιγμή που αρχίζουμε να αποθηκεύουμε media files στο openSUSE μας, είναι λογικό να θέλουμε και το VLC. Όχι απαραίτητα για να καθόμαστε μπροστά από τον virtualization host και να παρακολουθούμε σειρές και ταινίες, αλλά επειδή κάποιες φορές θα θέλουμε να ελέγξουμε στα γρήγορα ένα αρχείο video. Δεν ξέρουμε για εσάς, αλλά εμείς τουλάχιστον κάνουμε τέτοιους ελέγχους. Προκειμένου να εγκαταστήσουμε το VLC, οφείλουμε πρώτα να προσθέσουμε στο σύστημα το Packman. Πρόκειται για ένα αποθετήριο πακέτων (package repository) με χρήσιμα εργαλεία κι εφαρμογές, το οποίο δεν είναι παρόν μετά την εγκατάσταση του λειτουργικού αλλά μπορούμε να το προσθέσουμε “χειροκίνητα”. Στο εν λόγω repository υπάρχει, μεταξύ άλλων, το υπέροχο κι εξαιρετικά χρήσιμο HandBrake, το οποίο λύνει τα χέρια εκείνων που έχουν ταινίες σε DVD και ψάχνουν έναν εύκολο τρόπο ώστε να τις μετατρέπουν σε αρχεία MP4, MKV ή οποιασδήποτε άλλης μορφής τους βολεύει.

Για την προσθήκη του Packman repository στο openSUSE, πληκτρολογούμε:

cvar@thehost:~> sudo zypper ar -f -n packman \
http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ packman

Μετά την προσθήκη του νέου αποθετηρίου, εγκαθιστούμε VLC και Handbrake ως ακολούθως:

cvar@thehost:~> sudo zypper in vlc vlc-codecs handbrake-cli handbrake-gtk

Το μόνο ζήτημα που ίσως αντιμετωπίσουμε με το HandBrake και τα δισκάκια DVD που διαθέτουμε, είναι ότι τα DVD drives στις μέρες μας σπανίζουν. Από την άλλη βέβαια μιλάμε για PC, οπότε, δεν μπορεί, μάλλον θα ‘χει και DVD drive. Από το δικό μας PC το είχαμε αφαιρέσει εδώ και μήνες. Όταν όμως αποφασίσαμε να προσθέσουμε στη βιβλιοθήκη του Plex media server μια σειρά από αγαπημένες ταινίες σε DVD, χαρήκαμε που αντί να χαρίσουμε το DVD drive το είχαμε ξεχασμένο σ’ ένα συρτάρι.

3 Responses to “Φτιάξτε το δικό σας Netflix, με το Plex!”

  1. sip03ds | 21/01/2016 at 14:54

    Για τον NFS client, καλύτερη λύση για να ‘κρυφτούν’ τα αρχεία είναι το autofs στο /media και όποτε το κάνει access το PLEX να γίνονται mount.
    Το μόνο κακό του PLEX, γιατί μόνο καλά έχει (π.χ. native client για LG smart TV ή extra downloadable client για Samsung TV), είναι η χρήση MySQLite.
    Αν γίνει corrupt, δεν έχεις την δυνατότητα να το επαναφέρεις, πρέπει να την χτίσεις από την αρχή.

    Αυτό που θα παρακαλούσα πολύ (αν μπορείτε) είναι να παρουσιάσετε την διασύνδεση MythTV και PLEX για transcoding και αναπαραγωγή Live TV content από το PLEX μέσω MythTV.

    Υπάρχει ενα channel για integration MythTV και PLEX, https://github.com/tschaumburg/MythRecordings.bundle/releases
    ΑΛΛΑ δεν επιτρέπει LIVE TV content, επειδή το communication API του MythTV (SOAP Web Services με backend σε C) δεν έχει exposed τέτοιο service.
    ΟΜΩΣ υπάρχει wrapper σε Java (jMyth) που είναι wrapper για το native C API και εκεί κάνει expose service για LIVE TV content. Έχω γράψει εναν SOAP wrapper χρησιμποποιώντας το jMyth και κάνω expose τα services σε Tomcat 7.
    Το ερώτημα, αν έχει εμπειρία κανείς είναι πως τα κάνω consume το service απο το Plex;

  2. kitsos33 | 24/01/2016 at 14:35

    Καλησπέρα είμαι νέος σε αυτόν τον κύκλο και θα ήθελα να ρωτήσω κάποια πράγματα σχετικά με το παραπάνω άρθρο . Έχω αγοράσει ένα host εδώ https://www.digitalocean.com/?refcode=cf04a4d5ca88 έτρεξα πάνω το Plex αλλά οι ταινίες που έχει το Plex μου είναι απο το Pc μου για να τις δει κάποιος φίλος μου πρέπει να έχω το Pc μου ανοιχτό. Πως θα μπορούσα να αποθηκεύω τις ταινίες που έχω στον server που αγόρασα ώστε να μην χρειάζεται να έχω το Pc μου ανοιχτό ;

    • subZraw | 24/01/2016 at 21:52

      Το να αποθηκεύσεις μια media library με σειρές και ταινίες στο cloud, δεν είναι οικονομικό. Ακόμη όμως κι αν το έκανες, το streaming προς τους clients κατά πάσα πιθανότητα θα γινόταν πολύ αργά — ή έστω σε μη ικανοποιητικές ταχύτητες.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων