Μετάβαση στο περιεχόμενο
Callaba

WebRTC έναντι HLS έναντι RTMP για ζωντανό βίντεο

Σε αυτή τη σελίδα

Σύντομη απάντηση: χρησιμοποιήστε RTMP όταν ζητείται από έναν κωδικοποιητή να δημοσιεύσει σε τελικό σημείο εισαγωγής, WebRTC όταν το δικαιολογούν η αλληλεπίδραση του θεατή και η διαδρομή πραγματικού χρόνου και HLS όταν η παράδοση κοινού μέσω HTTP είναι η επιλεγμένη διαδρομή. Μια ζωντανή υπηρεσία συχνά χρησιμοποιεί περισσότερα από ένα· τα ονόματα πρωτοκόλλων περιγράφουν διαφορετικά όρια.

Επιλέξτε από τον θεατή προς τα πίσω, έως την πηγή

ΕρώτησηWebRTCHLSRTMP
Κύριος δέκτηςΔιαδραστικό ομότιμο πρόγραμμα περιήγησης/εφαρμογής ή υπηρεσία μέσωνΠρόγραμμα αναπαραγωγής με δυνατότητα HTTP και διαδρομή παράδοσηςΔιακομιστής εισαγωγής ή τελικό σημείο πλατφόρμας
Μοντέλο μεταφοράς/παράδοσηςΣυνεδρία μέσων πραγματικού χρόνου που διαπραγματεύεται για τα ομότιμα άκραΛίστα αναπαραγωγής και τμήματα μέσων που ανακτώνται μέσω HTTPΜόνιμη συνεδρία δημοσίευσης TCP
Ρόλος προγράμματος περιήγησηςΣχεδιασμένο για API μέσων πραγματικού χρόνου του προγράμματος περιήγησηςΠαραδίδεται μέσω διαδρομής προγράμματος αναπαραγωγής· η υποστήριξη πλατφόρμας διαφέρειΌχι εγγενής αναπαραγωγή σε σύγχρονο πρόγραμμα περιήγησης
Έλεγχος κωδικοποιητήΕπιβεβαιώστε υποστήριξη προγράμματος περιήγησης, υπηρεσίας και διαπραγμάτευσηςΕπιβεβαιώστε συμβατότητα προγράμματος αναπαραγωγής, πακεταρίσματος και renditionΕπιβεβαιώστε συμβατότητα κωδικοποιητή και τελικού σημείου εισαγωγής
Έλεγχος δικτύουΣυνθήκες signalling, ICE/STUN/TURN και τείχους προστασίαςΣυμπεριφορά origin, cache/CDN και αιτημάτων προγράμματος αναπαραγωγήςΠροσβασιμότητα του εκχωρημένου host και port εισαγωγής
Ταιριάζει ότανΗ αλληλεπίδραση αποτελεί μέρος της απαίτησης προϊόντοςΗ παράδοση στο κοινό είναι η εργασίαΈνας κωδικοποιητής πρέπει να παραδώσει ροή σε δέκτη εισαγωγής

Τι να δοκιμάσετε πρώτα

Επιλογή ροής εργασίαςΤελικό σημείο προς δοκιμήΠρώτος έλεγχος αποδοχής
Διαδραστική συνεισφορά ή κοινό: WebRTCΈνα διαμορφωμένο τελικό σημείο θεατή/συνεδρίας WebRTCSignalling συν συνδεσιμότητα ICE/TURN και έπειτα ήχος/βίντεο προγράμματος
Ευρεία αναπαραγωγή στο πρόγραμμα περιήγησης: HLShttps://example.invalid/live/master.m3u8Λήψη manifest και η προβλεπόμενη rendition του προγράμματος αναπαραγωγής
Εισαγωγή κωδικοποιητή/πλατφόρμας: RTMPrtmp://example.invalid/app συν εκχωρημένο κλειδίΚατάσταση εκδότη και έπειτα η ρητά επιλεγμένη έξοδος HLS ή WebRTC

Αυτές είναι μορφές τελικών σημείων και όχι διευθύνσεις που παρέχει το Callaba. Για τα υποκείμενα μοντέλα παράδοσης, δείτε τα W3C WebRTC, IETF HLS και την προδιαγραφή RTMP.

Γρήγορη απόφαση: επιλέξτε πρωτόκολλο ανά εργασία

Για διαδραστική συνεισφορά ή συμμετοχή κοινού, δοκιμάστε signalling WebRTC και ICE/TURN πριν το επιλέξετε. Για ευρεία αναπαραγωγή στο πρόγραμμα περιήγησης, δοκιμάστε το manifest HLS και το πρόγραμμα αναπαραγωγής. Για εισαγωγή από κωδικοποιητή σε πλατφόρμα, δοκιμάστε RTMP στο εκχωρημένο τελικό σημείο και έπειτα επιλέξτε και δοκιμάστε τη μεταγενέστερη έξοδο HLS ή WebRTC.

Αν η απόφαση είναι «πώς λαμβάνουν οι θεατές το πρόγραμμα σε πρόγραμμα περιήγησης;», ξεκινήστε από WebRTC ή HLS και τις απαιτήσεις προγράμματος αναπαραγωγής, πρόσβασης και παράδοσης. Αν είναι «πώς δημοσιεύει αυτός ο κωδικοποιητής στην πλατφόρμα;», ξεκινήστε από τη σύμβαση εισαγωγής RTMP της πλατφόρμας. Το RTMP μπορεί να τροφοδοτήσει μεταγενέστερο στάδιο HLS ή WebRTC, αλλά δεν δημιουργεί το ίδιο αυτό το στάδιο.

Συνήθεις λανθασμένες συγκρίσεις

WebRTC έναντι HLS

Αυτή είναι απόφαση παράδοσης. Το WebRTC χρειάζεται διαδρομή συνεδρίας πραγματικού χρόνου· το HLS χρειάζεται παράδοση λίστας αναπαραγωγής/τμημάτων και συμβατό πρόγραμμα αναπαραγωγής. Δοκιμάστε το ακριβές τελικό σημείο κοινού και το μοντέλο πρόσβασής του αντί μόνο τη ροή πηγής.

RTMP έναντι WebRTC

Συνήθως καταλαμβάνουν διαφορετικά άκρα της ροής εργασίας: RTMP ως εισαγωγή κωδικοποιητή, WebRTC ως διαδραστική παράδοση. Μια γέφυρα είναι διαμορφωμένη λειτουργία διακομιστή μέσων ή υπηρεσίας με δικούς της κωδικοποιητές, signalling και λειτουργία—όχι ιδιότητα οποιουδήποτε URL.

HLS έναντι RTMP

Το HLS πακετάρει μέσα για παράδοση HTTP· το RTMP δημοσιεύει μέσα σε δέκτη εισαγωγής. Ένας θεατής που δεν μπορεί να ανοίξει URL RTMP χρειάζεται την επιλεγμένη διαδρομή εξόδου HLS ή WebRTC, όχι διαφορετικό πρόγραμμα περιήγησης.

Μια μικτή ροή εργασίας πρωτοκόλλων

Ένας κωδικοποιητής προγράμματος μπορεί να δημοσιεύσει RTMP σε ελεγχόμενο πόρο εισαγωγής. Ο χειριστής επιβεβαιώνει δραστηριότητα πηγής και έπειτα διαμορφώνει ξεχωριστή έξοδο για παράδοση στο κοινό—HLS για ροή εργασίας προγράμματος αναπαραγωγής HTTP ή WebRTC για τη διαδρομή αλληλεπίδρασης. Επαληθεύστε κάθε όριο στη σειρά: κωδικοποιητής προς εισαγωγή, δημιουργία επεξεργασίας/εξόδου και έπειτα το πραγματικό URL θεατή.

Λίστα ελέγχου πρωτοκόλλων πριν την παραγωγή

  • Σημειώστε κωδικοποιητή πηγής, ρυθμό καρέ, ήχο και περιορισμούς δέκτη προορισμού.
  • Εκχωρήστε υπεύθυνο για διαπιστευτήρια δημοσίευσης, signalling/πρόσβαση και δοκιμή προγράμματος αναπαραγωγής.
  • Χρησιμοποιήστε ιδιωτικό κοινό πρόβας και δοκιμάστε αποκατάσταση μετά τη διακοπή της πηγής.
  • Κρατήστε ισχυρισμούς άμεσης αναπαραγωγής στο πρόγραμμα περιήγησης συνδεδεμένους με τη διαμορφωμένη έξοδο, ποτέ με το URL πηγής RTMP.

Επιλέξτε το επόμενο βήμα

Για εισαγωγή κωδικοποιητή και πρόσβαση εκδότη/δέκτη, δείτε τον RTMP Server. Ένα URL δημοσίευσης RTMP μπορεί να χρησιμοποιεί την ίδια εφαρμογή και όνομα ροής με URL δέκτη, αλλά ο εκδότης και ο δέκτης εξακολουθούν να έχουν διαφορετικούς ρόλους. Για έξοδο στο πρόγραμμα περιήγησης, ξεκινήστε από τις οδηγίες Web Player· για πρόθεση πακεταρίσματος, δείτε το RTMP προς HLS. Αν η ροή εργασίας είναι συνεισφορά SRT αντί δημοσίευσης RTMP, ο SRT Server είναι ο κατάλληλος υπεύθυνος.