Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Τον τελευταίο καιρό, ως χόμπι, γυρίζω διαλέξεις ενός γνωστού μου ψυχολόγου. Επεξεργάζομαι το υλικό και το δημοσιεύω στον ιστότοπό μου. Πριν από ένα μήνα, μου ήρθε η ιδέα να οργανώσω μια 24/7 μετάδοση αυτών των διαλέξεων στο YouTube. Ένα είδος θεματικού «τηλεοπτικού καναλιού» αφιερωμένου στην προσωπική ανάπτυξη.

Ξέρω να κάνω κανονική εκπομπή. Αλλά πώς να το κάνετε έτσι ώστε να είναι μια μετάδοση αρχείων βίντεο; Έτσι ώστε να λειτουργεί 24/7, να είναι ευέλικτο, όσο το δυνατόν πιο αυτόνομο και ταυτόχρονα να μην εξαρτάται σε καμία περίπτωση από τον υπολογιστή του σπιτιού μου. Αυτό έπρεπε να μάθω.

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

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

Εν ολίγοις, η τελική λύση ήταν η εξής: VPS + ffmeg + σενάριο bash. Κάτω από την περικοπή, περιγράφω τα βήματα που έγιναν και μιλώ για τις παγίδες που ανακαλύφθηκαν κατά την οργάνωση της εκπομπής.

Βήμα 1 – από πού θα προέλθει η μετάδοση;

Στην αρχή, ήταν απαραίτητο να αποφασίσουμε από πού θα γίνει η εκπομπή και πού θα είναι η πηγή της. Το πρώτο πράγμα που μου ήρθε στο μυαλό ήταν από τον υπολογιστή του σπιτιού σας. Συλλέξτε βίντεο σε μια λίστα αναπαραγωγής και ξεκινήστε την αναπαραγωγή τους σε οποιοδήποτε πρόγραμμα αναπαραγωγής βίντεο. Στη συνέχεια, τραβήξτε την εικόνα της οθόνης και μεταδώστε την στο YouTube. Αλλά σχεδόν αμέσως απέρριψα αυτήν την επιλογή γιατί... Για να το εφαρμόσετε, πρέπει να έχετε συνεχώς αναμμένο τον υπολογιστή του σπιτιού σας, κάτι που σημαίνει θόρυβο από ψύκτες ακόμα και τη νύχτα και αυξημένη κατανάλωση ρεύματος (+100-150 kWh κάθε μήνα). Και αποδεικνύεται ότι δεν θα μπορείτε να χρησιμοποιήσετε τον οικιακό σας υπολογιστή κατά τη διάρκεια της εκπομπής. οποιαδήποτε κίνηση του ποντικιού θα είναι ορατή στην εκπομπή.

Μετά άρχισα να κοιτάζω στο πλάι υπηρεσίες cloud. Έψαχνα για μια έτοιμη υπηρεσία όπου θα μπορούσα να ανεβάσω τα βίντεό μου ή, για παράδειγμα, να εισάγω συνδέσμους σε βίντεο από το YouTube και θα συσκευάζονταν όλα σε μια συνεχή μετάδοση. Αλλά δεν βρήκα κάτι κατάλληλο. Ίσως δεν έψαξα καλά. Το μόνο που ταιριάζει στη λειτουργικότητα είναι το restream.io, μια υπηρεσία που βοηθά στην ταυτόχρονη μετάδοση σε πολλές πλατφόρμες. Φαίνεται ότι σας επιτρέπουν να ανεβάσετε τα δικά σας βίντεο. Αλλά αυτή η υπηρεσία δημιουργήθηκε για εντελώς διαφορετικούς σκοπούς και αναμένουν ότι η μετάδοση θα διαρκέσει μόνο μερικές ώρες. Νομίζω ότι εάν μέσω αυτής της υπηρεσίας ήταν δυνατό να οργανωθεί μια XNUMXωρη μετάδοση, τότε θα εκτοξευόταν σε δεκάδες ή και εκατοντάδες δολάρια το μήνα. Ήθελα όμως να οργανώσω την εκπομπή είτε δωρεάν είτε με ελάχιστη οικονομική επένδυση.

Έγινε σαφές ότι για την εκπομπή ήταν απαραίτητο ή ξεχωριστή συσκευή ή ακόμα και ξεχωριστό υπολογιστή. Σκεφτόμουν κάτι σαν το Raspberri Pi. Και τι? Δεν έχει ψυγείο. Έγραψα το βίντεο σε μια μονάδα flash, συνέδεσα το καλώδιο Ethernet και το άφησα να βρίσκεται κάπου σε ένα απομονωμένο μέρος και το μετέδωσα. Επιλογή. Αλλά δεν είχα ούτε το ίδιο το ταμπλό ούτε εμπειρία να δουλέψω μαζί του, οπότε αρνήθηκα και αυτή την επιλογή.

Ως αποτέλεσμα, συνάντησα μια συγκεκριμένη συζήτηση όπου συζήτησαν τη δημιουργία δικός διακομιστής εκπομπές. Δεν ήταν ακριβώς αυτό που έψαχνα, αλλά πήρα την κύρια ιδέα - μπορείτε να χρησιμοποιήσετε έναν διακομιστή! Σε εκείνη τη συζήτηση, προτάθηκε να χρησιμοποιηθεί ένας συνδυασμός VPS + nginx + OBS. Έγινε σαφές ότι αυτός ο συνδυασμός θα μπορούσε να μου ταιριάζει και εγώ. Το μόνο πράγμα που με μπέρδεψε ήταν ότι δεν είχα διαχειριστεί ποτέ διακομιστή και μου φάνηκε ότι το να έχω τον δικό μου αποκλειστικό διακομιστή ήταν μπερδεμένο και ακριβό. Αποφάσισα να μάθω πόσο θα κοστίσει η ενοικίαση ενός διακομιστή με ελάχιστη διαμόρφωση και εξεπλάγην ευχάριστα.

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Οι τιμές αναφέρονται σε ρούβλια Λευκορωσίας και αυτά είναι απλά ψίχουλα. Για να καταλάβετε, 8 ρούβλια Λευκορωσίας είναι περίπου 3.5 δολάρια ή 240 Ρωσικά ρούβλια. Για ένα μήνα χρήσης ενός πλήρους υπολογιστή που είναι ενεργοποιημένος 24/7 και έχει γρήγορη πρόσβαση στο Διαδίκτυο. Για κάποιο λόγο, αυτή η ανακάλυψη έγινε πολύ χαρούμενη για μένα και για αρκετές μέρες περπατούσα τρομερά χαρούμενος, σαν παιδί που ανακάλυψε διαστημικούς πυραύλους :)

Παρεμπιπτόντως, εκμεταλλεύτηκα την προσφορά του πρώτου ιστότοπου που μου έδωσε η Google για το ερώτημα "VPS rental". Ίσως υπάρχουν ακόμα περισσότερες λύσεις προϋπολογισμού, αλλά αυτή η τιμή μου ταίριαζε και δεν έψαξα περισσότερο.

Κατά τη δημιουργία ενός διακομιστή, μπορείτε να επιλέξετε το λειτουργικό σύστημα στο οποίο θα εκτελείται. Μπορείτε να οργανώσετε μια εκπομπή σε οποιοδήποτε από τα αναφερόμενα συστήματα και να κάνετε μια επιλογή με βάση τις προτιμήσεις και τις οικονομικές σας δυνατότητες (για διακομιστή με Windows ζητούν επιπλέον χρέωση). Επέλεξα το CentOS. Απλά επειδή είχα λίγη εμπειρία με αυτό πριν.

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Βήμα 2 – Ρύθμιση διακομιστή

Το πρώτο πράγμα που χρειάζεστε μετά τη δημιουργία ενός διακομιστή είναι να συνδεθείτε σε αυτόν μέσω SSH. Στην αρχή χρησιμοποίησα το PuTTy, αλλά μετά άρχισα να χρησιμοποιώ την εφαρμογή Secure Shell, η οποία εκτελείται στο Google Chrome. Μου φάνηκε πιο βολικό.

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

Εδώ είναι τα βήματα που πρέπει να κάνετε:

  1. Συνδέστε το αποθετήριο EPEL.
  2. Ρύθμιση διακομιστή FTP (εγώ επέλεξα vsftp).
  3. Εγκαταστήστε το ffmpeg.

Δεν θα δώσω τις εντολές λεπτομερώς· αυτές οι οδηγίες είναι μάλλον εννοιολογικές για να μεταφέρουν το γενικό σχέδιο δράσης. Εάν αντιμετωπίζετε δυσκολίες με οποιοδήποτε από τα βήματα, μπορούν να επιλυθούν γρήγορα χρησιμοποιώντας ένα ερώτημα μηχανής αναζήτησης όπως "CentOS connect EPEL" ή "CentOS install FTP server". Και στους πρώτους συνδέσμους μπορείτε να βρείτε αναλυτικές οδηγίες βήμα προς βήμα.

Έτσι, όπως έγραψα νωρίτερα, χρειαζόμουν έναν συνδυασμό VPS + nginx + OBS. VPS – έτοιμο. Όμως άρχισαν να δημιουργούνται ερωτήματα σε άλλα σημεία. Το OBS είναι ένα πρόγραμμα εκπομπής, Open Broadcaster Software. Και λειτουργεί μόνο με streams π.χ. για παράδειγμα, παίρνει μια εικόνα από μια κάμερα web και τη μεταδίδει. Ή εγγραφή οθόνης. Ή μια εκπομπή που βρίσκεται ήδη σε εξέλιξη ανακατευθύνεται σε άλλη τοποθεσία. Αλλά δεν έχω ροή, έχω μόνο ένα σύνολο αρχείων βίντεο που πρέπει να γίνουν ροή.

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

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

Βήμα 3 – Ρύθμιση εκπομπής

Δημιουργούμε μια εκπομπή στο YouTube. Σε αυτό το στάδιο χρειαζόμαστε μόνο τον σύνδεσμο και το κλειδί εκπομπής. Στο παρακάτω στιγμιότυπο οθόνης επισημαίνονται με κόκκινο χρώμα.

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Επόμενο ανεβάστε αρχεία βίντεο στον διακομιστή, που σκοπεύουμε να μεταδώσουμε. Στην πραγματικότητα, το FTP χρειάζεται μόνο για αυτό το στάδιο. Εάν έχετε έναν άλλο βολικό τρόπο για να ανεβάσετε αρχεία στον διακομιστή, τότε δεν χρειάζεται να ρυθμίσετε έναν διακομιστή FTP.

Μεταδίδουμε τη ροή στο YouTube. Για να ξεκινήσετε τη μετάδοση, πρέπει να εκτελέσετε το ffmpeg με πολλά χαρακτηριστικά. Έτσι μοιάζει η συντομότερη εντολή που πήρα:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%

Αποκωδικοποίηση χαρακτηριστικών-re – υποδεικνύει ότι το αρχείο πρέπει να μετατραπεί σε ροή.

-i – υποδεικνύει ποιο αρχείο πρέπει να αναπαραχθεί. Είναι σημαντικό η εντολή να εκκινείται από τον ίδιο κατάλογο όπου βρίσκεται το ίδιο το αρχείο βίντεο. Διαφορετικά, θα πρέπει να καθορίσετε έναν απόλυτο σύνδεσμο προς το αρχείο, π.χ /usr/media/lecture1.mp4.

-f – ορίζει τη μορφή αρχείου εξόδου. Στην περίπτωσή μου, αποδεικνύεται ότι το ffmpeg μετατρέπει το αρχείο μου από mp4 σε flv on the fly.

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

Εάν τα κάνατε όλα σωστά, μετά την εκτέλεση αυτής της εντολής, το YouTube θα δει τη ροή που μεταδόθηκε. Για να ξεκινήσετε τη μετάδοση, πρέπει απλώς να κάνετε κλικ στο κουμπί "Έναρξη εκπομπής" στο ίδιο το YouTube.

Βήμα 4 – προσθέστε αυτονομία

Συγχαρητήρια! Τώρα ξέρετε πώς να ξεκινήσετε τη μετάδοση από ένα αρχείο βίντεο. Αλλά αυτό δεν αρκεί για μετάδοση XNUMX/XNUMX. Είναι σημαντικό αφού τελειώσει η αναπαραγωγή του πρώτου βίντεο, να ξεκινήσει αμέσως το επόμενο και όταν εμφανιστούν όλα τα βίντεο, να ξεκινήσει ξανά η αναπαραγωγή.

Βρήκα την ακόλουθη επιλογή: δημιουργήστε ένα αρχείο .sh στο οποίο έγραψα μια εντολή για κάθε αρχείο βίντεο και στο τέλος υπέδειξα μια εντολή για να εκτελέσετε ξανά το ίδιο σενάριο. Το αποτέλεσμα είναι μια αναδρομή όπως αυτή:

Команда 1... (запуск трансляции файла lecture1.mp4)
Команда 2... (запуск трансляции файла lecture2.mp4)
Команда 3... (запуск трансляции файла lecture3.mp4)
bash start.sh

Και, ναι, λειτούργησε. Ικανοποιημένος με τον εαυτό μου, ξεκίνησα μια δοκιμαστική εκπομπή και πήγα για ύπνο.

Το πρωί με περίμενε μια δυσάρεστη έκπληξη. Αποδείχθηκε ότι η εκπομπή διήρκεσε μόνο μερικά λεπτά και τελείωσε σχεδόν αμέσως καθώς έκλεισα τον υπολογιστή μου. Η έρευνα έδειξε ότι οι εντολές που ξεκινούν με αυτόν τον τρόπο εκτελούνται ενώ ο χρήστης είναι συνδεδεμένος στον διακομιστή. Μόλις αποσυνδέθηκα, οι εντολές που έτρεχα διακόπηκαν. Για να μην συμβεί αυτό, αρκεί μπροστά στην ομάδα bash προσθέστε την εντολή nohup. Αυτό θα επιτρέψει στη διαδικασία εκτέλεσης να εκτελεστεί ανεξάρτητα από την παρουσία σας.

Η τελική minimal έκδοση του σεναρίου μοιάζει με αυτό:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
ffmpeg -re -i lecture2.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
ffmpeg -re -i lecture3.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
nohup bash start.sh $

Όπου start.sh είναι το αρχείο στο οποίο είναι γραμμένο αυτό το σενάριο. Και αυτό το αρχείο πρέπει να βρίσκεται στον ίδιο κατάλογο με τα αρχεία βίντεο.

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

Τα μπόνους περιελάμβαναν τα ακόλουθα καλούδια:

  • Μπορείτε να αλλάξετε χειροκίνητα την αναπαραγωγή αρχείων. Για να το κάνετε αυτό, πρέπει να "σκοτώσετε" την τρέχουσα διαδικασία ffmpeg. Μετά από αυτό, η αναπαραγωγή του επόμενου αρχείου από τη λίστα θα ξεκινήσει αυτόματα.
  • Μπορούν να προστεθούν νέα βίντεο στη μετάδοση χωρίς διακοπή της μετάδοσης. Απλώς ανεβάστε το βίντεο στον διακομιστή, προσθέστε μια εντολή για να εκτελέσετε αυτό το αρχείο στο σενάριο και αποθηκεύστε το. Αυτό είναι όλο. Στον επόμενο γύρο αναπαραγωγής, το νέο αρχείο θα μεταδοθεί μαζί με τα παλιά αρχεία.

Βήμα 5 – προσαρμόστε το ffmpeg

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

Ας πούμε ότι κάποιος πήγε στην εκπομπή, άρχισε να παρακολουθεί, του άρεσε και ήθελε να παρακολουθήσει αυτή τη διάλεξη από την αρχή, αλλά η μετάδοση δεν επιτρέπει την επαναφορά. Για να παρακολουθήσετε μια διάλεξη από την αρχή, ένα άτομο θα πρέπει να μεταβεί στον ιστότοπό μου και να λάβει μια ηχογράφηση της διάλεξης που σας ενδιαφέρει. Πώς μπορείς να καταλάβεις ποια διάλεξη τον ενδιαφέρει; Υπάρχουν ήδη 16 διαλέξεις στον ιστότοπο και υπάρχουν μόνο περισσότερες από αυτές κάθε εβδομάδα. Νομίζω ότι ακόμη κι εγώ, που γύρισα και επιμελήθηκα όλες αυτές τις διαλέξεις, δεν θα μπορέσω να προσδιορίσω από ένα τυχαίο κομμάτι ποια διάλεξη είναι. Επομένως, είναι απαραίτητο κάθε διάλεξη να ορίζεται με κάποιο τρόπο.

Η επιλογή προσθήκης λεζάντας στα αρχεία βίντεο πηγής στο πρόγραμμα επεξεργασίας δεν μου ταιριάζει. Ήταν απαραίτητο να διασφαλιστεί ότι χρησιμοποιήθηκαν τα αρχικά αρχεία. Έτσι ώστε η υποστήριξη της εκπομπής απαιτεί όσο το δυνατόν λιγότερες κινήσεις του σώματος από εμένα.

Αποδείχθηκε ότι το ffmpeg θα μπορούσε να με βοηθήσει και σε αυτό. Έχει μια ιδιαίτερη ιδιότητα -vf, που επιτρέπει την τοποθέτηση κειμένου πάνω από βίντεο. Για να προσθέσετε κείμενο σε ένα βίντεο, πρέπει να προσθέσετε το ακόλουθο τμήμα στην εντολή:

-vf drawtext="fontfile=OpenSans.ttf:text='Лекция 13: Психология эмоций. Как создавать радость?':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670"

Επεξήγηση των παραμέτρωνfontfile= – σύνδεσμος προς το αρχείο γραμματοσειράς. Χωρίς αυτό, η λεζάντα δεν θα προστεθεί στο βίντεο. Ο ευκολότερος τρόπος είναι να τοποθετήσετε το αρχείο γραμματοσειράς στον ίδιο φάκελο με το βίντεο. Ή θα χρειαστεί να καθορίσετε την πλήρη διαδρομή προς το αρχείο.

text= – στην πραγματικότητα, το ίδιο το κείμενο που πρέπει να τοποθετηθεί πάνω από το βίντεο.

fontsize= – μέγεθος γραμματοσειράς σε pixel.

fontcolor= – χρώμα γραμματοσειράς.

borderw= – το πάχος του περιγράμματος γύρω από το κείμενο σε pixel (έχω λευκό κείμενο με μαύρο περίγραμμα πάχους 1 pixel).

bordercolor= – χρώμα περιγράμματος.

x= и y= – συντεταγμένες κειμένου. Τελεία 0;0 βρίσκεται στην επάνω αριστερή γωνία. Οι συντεταγμένες μου επιλέγονται με τέτοιο τρόπο ώστε το κείμενο να τοποθετείται στην κάτω αριστερή γωνία με ανάλυση βίντεο 1280x720 pixel.

Μοιάζει με αυτό:

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Βήμα 6 – προσδιορίστε την ποιότητα της εκπομπής

Αυτό ήταν, η εκπομπή είναι έτοιμη. Εκπέμπει FFmpeg, παίζονται αρχεία, η παρουσία μου δεν χρειάζεται για μετάδοση. Ακόμη και κάθε διάλεξη είναι υπογεγραμμένη. Δες ότι αυτό είναι.

Αλλά μια ακόμη απόχρωση εμφανίστηκε - επέλεξα την ελάχιστη διαμόρφωση διακομιστή και δεν ανέβασε την εκπομπή. Διαμόρφωση διακομιστή: 1 πυρήνας (όπως 2.2 GHz), 1 gigabyte μνήμης RAM, 25 GB SSD. Υπήρχε αρκετή μνήμη RAM, αλλά ο επεξεργαστής ήταν σχεδόν πλήρως φορτωμένος στο 100% (και μερικές φορές ακόμη και 102-103% :) Αυτό οδήγησε στο πάγωμα της εκπομπής κάθε λίγα δευτερόλεπτα. Δεν είναι ωραίο.

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

Η υψηλή ποιότητα εικόνας μπορεί να επιτευχθεί με δύο τρόπους: είτε υψηλό φορτίο CPU είτε υψηλή εξερχόμενη κίνηση. Αποδεικνύεται ότι όσο περισσότερο φορτίο μπορεί να αναλάβει ο επεξεργαστής, τόσο λιγότερο εύρος ζώνης θα χρειαστείτε. Ή δεν μπορείτε να φορτώσετε πολύ τον επεξεργαστή, αλλά θα χρειαστείτε ένα ευρύ κανάλι με μεγάλο χώρο κίνησης. Εάν υπάρχουν περιορισμοί τόσο στον επεξεργαστή όσο και στο μέγεθος του εξερχόμενου καναλιού/επισκεψιμότητας, τότε θα πρέπει να μειώσετε την ποιότητα της εικόνας ώστε η μετάδοση να πηγαίνει ομαλά.

Ο διακομιστής μου έχει πρόσβαση σε ένα κανάλι πλάτους 10 Mbit/s. Αυτό το πλάτος είναι ακριβώς το σωστό. Αλλά υπάρχει ένα όριο κυκλοφορίας - 1 TB το μήνα. Επομένως, για να ανταποκριθώ στους περιορισμούς κυκλοφορίας, η εξερχόμενη ροή μου δεν πρέπει να υπερβαίνει τα ~300 KB ανά δευτερόλεπτο, δηλ. Ο ρυθμός bit της εξερχόμενης ροής δεν πρέπει να είναι μεγαλύτερος από 2,5 Mbit/s. Το YouTube, παρεμπιπτόντως, συνιστά τη μετάδοση σε αυτό το bitrate.

Για να ρυθμίσει το φορτίο στο σύστημα, το ffmpeg χρησιμοποιεί διαφορετικές προσεγγίσεις. Καλά γραμμένο για αυτό εδώ. Κατέληξα να χρησιμοποιώ δύο χαρακτηριστικά: -crf и -preset.

Συντελεστής σταθερού ρυθμού (CRF) – αυτός είναι ένας συντελεστής χάρη στον οποίο μπορείτε να προσαρμόσετε την ποιότητα της εικόνας. Το CRF μπορεί να έχει τιμές από 0 έως 51, όπου 0 είναι η ποιότητα του αρχείου προέλευσης, 51 είναι η χειρότερη δυνατή ποιότητα. Συνιστάται η χρήση τιμών από 17 έως 28, η προεπιλογή είναι 23. Με συντελεστή 17, το βίντεο θα είναι οπτικά πανομοιότυπο με το πρωτότυπο, αλλά τεχνικά δεν θα είναι το ίδιο. Η τεκμηρίωση αναφέρει επίσης ότι το μέγεθος του τελικού βίντεο, ανάλογα με το καθορισμένο CRF, αλλάζει εκθετικά, δηλ. Η αύξηση του συντελεστή κατά 6 πόντους θα διπλασιάσει το bitrate του εξερχόμενου βίντεο.

Εάν χρησιμοποιείτε CRF, μπορείτε να επιλέξετε το «βάρος» της εξερχόμενης εικόνας και στη συνέχεια να χρησιμοποιήσετε προεπιλογές (-προκαθορισμένες) μπορείτε να καθορίσετε πόσο πολύ θα φορτωθεί ο επεξεργαστής. Αυτό το χαρακτηριστικό έχει τις ακόλουθες παραμέτρους:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium - Προεπιλεγμένη τιμή
  • slow
  • slower
  • veryslow

Όσο «γρηγορότερη» καθορίζεται η παράμετρος, τόσο μεγαλύτερο θα είναι το φορτίο στον επεξεργαστή.

Πρώτα επέλεξα μια προεπιλογή που ήταν βασικά πολύ δύσκολη για τον επεξεργαστή μου και μετά επέλεξα πιο λεπτή το φορτίο χρησιμοποιώντας CRF. Στην περίπτωσή μου, η προεπιλογή λειτούργησε fast, και για το crf συμβιβάστηκα στην τιμή 24.

Συμπέρασμα

Αυτό είναι όλο. Η τελευταία εντολή για την έναρξη της εκπομπής ήταν η εξής:

ffmpeg -re -i lecture1.mp4 -vf drawtext="fontfile=OpenSans.ttf:text='Лекция 1: Жонглирование картинами мира':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670" -c:v libx264 -preset fast -crf 24 -g 3 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%

Απομένουν μόνο δύο σημεία που δεν περιγράφονται εδώ:

1) -c:v libx264 – καθορισμός συγκεκριμένου κωδικοποιητή για εργασία με το αρχείο προέλευσης.
2) -g 3 – ρητή ένδειξη του αριθμού των βασικών πλαισίων. Σε αυτήν την περίπτωση, ορίζεται ότι κάθε τρίτο πλαίσιο πρέπει να είναι ένα πλαίσιο κλειδιού. Η τυπική τιμή είναι είτε 5 είτε 8, αλλά το YouTube ορκίζεται και ζητά τουλάχιστον 3.

Μπορείτε να δείτε τι ποιότητα αποδείχθηκε η μετάδοση εδώ.

Το φορτίο στον διακομιστή ήταν ως εξής:

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Μεταδώστε τα βίντεό σας στο YouTube XNUMX/XNUMX

Με βάση τα δεδομένα παρακολούθησης, είναι σαφές ότι το φορτίο του επεξεργαστή κυμαίνεται από 70% έως 95% και κατά τη διάρκεια της εβδομάδας η εκπομπή δεν έφτασε ποτέ στο 100%. Αυτό σημαίνει ότι με αυτές τις ρυθμίσεις ο επεξεργαστής είναι αρκετός.

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

Αλλά ο όγκος της εξερχόμενης κίνησης με ανησυχεί. Αποδεικνύεται ότι η εξερχόμενη ροή μου κυμαίνεται από 450 έως 650 KB ανά δευτερόλεπτο. Σε ένα μήνα αυτό θα είναι περίπου 1,8 terabyte. Ίσως χρειαστεί να αγοράσετε επιπλέον κίνηση ή να μεταβείτε σε μια διαμόρφωση με δύο πυρήνες επειδή... Δεν θα ήθελα να μειώσω την ποιότητα της εικόνας.

***

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

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

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

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

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

***

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο