Η μετατροπή RTMP σε HLS είναι μια παράδοση από την είσοδο ροής για κωδικοποιητές στην αναπαραγωγή μέσω HTTP. Πρώτα λάβετε και επαληθεύστε τον εκδότη RTMP· έπειτα πακετάρετε ή κωδικοποιήστε τη ροή για HLS· κατόπιν δοκιμάστε τη λίστα αναπαραγωγής και το τελικό σημείο του προγράμματος αναπαραγωγής που χρησιμοποιεί πραγματικά ο θεατής. Μια σύνδεση RTMP από μόνη της δεν αποτελεί αναπαραγωγή στο πρόγραμμα περιήγησης.
Η διαδρομή RTMP προς HLS
Τουλάχιστον, η διαδρομή είναι πηγή → ακροατής RTMP → επεξεργασία ή πακετάρισμα μέσων → λίστα αναπαραγωγής HLS και τμήματα → πρόγραμμα αναπαραγωγής. Κάθε στάδιο μπορεί να είναι υγιές ενώ ένα μεταγενέστερο δεν είναι. Γι’ αυτό ο χειριστής πρέπει να διατηρεί ως ξεχωριστούς ελέγχους την απόδειξη εισόδου και την απόδειξη προβολής.
Αποφασίστε αν τα μέσα μπορούν να αντιγραφούν
Το πακετάρισμα μπορεί να είναι εφικτό χωρίς επανακωδικοποίηση βίντεο μόνο όταν οι εισερχόμενοι κωδικοποιητές, ο ήχος, οι χρονικές σημάνσεις, ο ρυθμός των καρέ-κλειδιών και το συμβόλαιο πακεταρίσματος ταιριάζουν με τη διαδρομή HLS προορισμού. Αν δεν ταιριάζουν, επανακωδικοποιήστε σκόπιμα και τεκμηριώστε την κλίμακα εξόδου. Μην το αποκαλείτε καθολική διαδρομή αντιγραφής χωρίς να ελέγξετε τη ρυθμισμένη έξοδο.
Επικυρώστε με τη σωστή σειρά
- Δημοσιεύστε μια γνωστή πηγή RTMP και επιβεβαιώστε ότι ο ακροατής αναφέρει δραστηριότητα και αξιοποιήσιμα μέσα.
- Ανοίξτε τη δημιουργημένη διεύθυνση URL της λίστας αναπαραγωγής HLS και επιβεβαιώστε ότι ενημερώνεται όσο η πηγή είναι ζωντανή.
- Ελέγξτε ότι τα αναφερόμενα τμήματα μπορούν να ληφθούν από το προβλεπόμενο περιβάλλον του προγράμματος αναπαραγωγής.
- Ακούστε τον ήχο, επιθεωρήστε το βίντεο και μετρήστε την πραγματική καθυστέρηση θεατή για τη διαδρομή που έχει εγκατασταθεί.
- Διακόψτε και επανεκκινήστε τον εκδότη· επιβεβαιώστε ότι η λίστα αναπαραγωγής και το πρόγραμμα αναπαραγωγής ανακάμπτουν όπως προβλέπει το σχέδιο λειτουργίας σας.
Καρέ-κλειδιά, τμήματα και καθυστέρηση
Το HLS ομαδοποιεί τα μέσα σε τμήματα που αναφέρονται από μια λίστα αναπαραγωγής. Η επισκόπηση HLS της Apple και το RFC 8216 περιγράφουν το μοντέλο παράδοσης με λίστα αναπαραγωγής και τμήματα. Η διάρκεια των τμημάτων, τα καρέ-κλειδιά του κωδικοποιητή, η προσωρινή αποθήκευση του προγράμματος αναπαραγωγής, η συμπεριφορά προέλευσης και κάθε ρύθμιση CDN συμβάλλουν όλα στην καθυστέρηση θεατή. Η μείωση ενός buffer δεν τεκμηριώνει αποτέλεσμα καθυστέρησης για ολόκληρη τη διαδρομή· μετρήστε τη διαδρομή που σκοπεύετε να λειτουργήσετε.
Όταν το RTMP είναι υγιές αλλά το HLS αποτυγχάνει
| Παρατηρούμενο αποτέλεσμα | Επόμενος έλεγχος |
|---|---|
| Ο εκδότης είναι ενεργός, χωρίς λίστα αναπαραγωγής | Επιθεωρήστε την εργασία RTMP σε HLS και τη ρύθμιση εξόδου της. |
| Η λίστα αναπαραγωγής φορτώνει, το πρόγραμμα αναπαραγωγής σταματά | Ελέγξτε την παράδοση τμημάτων, τα σφάλματα του προγράμματος αναπαραγωγής, τη συμβατότητα κωδικοποιητών και την πολιτική πρόσβασης. |
| Η αναπαραγωγή ξεκινά αργά | Μετρήστε τα buffer του κωδικοποιητή, του πακεταρίσματος, της λίστας αναπαραγωγής, του προγράμματος αναπαραγωγής και της παράδοσης πριν αλλάξετε μια ρύθμιση. |
Το Callaba μπορεί να λάβει μια ρυθμισμένη πηγή RTMP και να την παραδώσει στην επιλεγμένη κατάντη ροή εργασίας. Ο ακροατής δεν είναι από μόνος του δημόσιο πρόγραμμα αναπαραγωγής στο πρόγραμμα περιήγησης. Για διάγνωση στο πρόγραμμα περιήγησης, χρησιμοποιήστε το πρόγραμμα αναπαραγωγής RTMP και την αναπαραγωγή στο πρόγραμμα περιήγησης· για ρύθμιση εισόδου, χρησιμοποιήστε το RTMP Server.
Σχετική ρύθμιση
Χρησιμοποιήστε τον οδηγό χειριστή RTMP Server για να αποδείξετε την είσοδο και έπειτα δείτε την τεκμηρίωση Web Player για τη μονάδα που απευθύνεται στον θεατή. Κρατήστε τον οδηγό πρωτοκόλλου RTMP για το ζήτημα μεταφοράς στην πλευρά της πηγής.
Τοπική διάγνωση: πακετάρισμα HLS με FFmpeg
mkdir -p hls-out && ffmpeg -re -i input.mp4 -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -f hls -hls_time 2 -hls_list_size 6 -hls_flags delete_segments hls-out/live.m3u8
Αναμενόμενο αποτέλεσμα: το live.m3u8 αλλάζει όσο εκτελείται η είσοδος και αναφέρεται σε πρόσφατα τμήματα μέσων στο hls-out. Εξυπηρετήστε αυτόν τον κατάλογο μέσω διακομιστή HTTP για δοκιμή σε πρόγραμμα περιήγησης· το άνοιγμα μιας διαδρομής συστήματος αρχείων δεν είναι δοκιμή προέλευσης HLS. Στα 30 fps, το -g 60 δίνει ρυθμό καρέ-κλειδιών δύο δευτερολέπτων, ευθυγραμμισμένο με την ενδεικτική διάρκεια τμήματος. Προσαρμόστε το στον πραγματικό ρυθμό καρέ.
Το Safari διαθέτει αναπαραγωγή HLS σε επίπεδο πλατφόρμας· πολλές άλλες υλοποιήσεις προγραμμάτων περιήγησης χρησιμοποιούν Media Source Extensions μέσω βιβλιοθήκης προγράμματος αναπαραγωγής, αντί να αντιμετωπίζουν κάθε .m3u8 ως εγγενή πηγή βίντεο HTML. Δοκιμάστε το πραγματικό ζεύγος προγράμματος περιήγησης και προγράμματος αναπαραγωγής. Η τεκμηριωμένη ροή του UI της Callaba είναι να δημιουργήσετε ένα Web Player από τον επιλεγμένο RTMP Server ή άλλη υποστηριζόμενη είσοδο, να ανοίξετε τη διεύθυνση URL του προκύπτοντος προγράμματος αναπαραγωγής και να επαληθεύσετε την πρόσβαση και την αναπαραγωγή· δείτε την τεκμηρίωση Web Player.
Επόμενα βήματα
Χρησιμοποιήστε τον οδηγό χειριστή RTMP Server για να αποδείξετε την είσοδο και έπειτα δείτε την τεκμηρίωση Web Player για τη μονάδα που απευθύνεται στον θεατή.