FMUSER Wirless Μετάδοση βίντεο και ήχου πιο εύκολα!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Αφρικανικά
sq.fmuser.org -> Αλβανικά
ar.fmuser.org -> Αραβικά
hy.fmuser.org -> Αρμενίων
az.fmuser.org -> Αζερμπαϊτζάν
eu.fmuser.org -> Βάσκων
be.fmuser.org -> Λευκορωσικά
bg.fmuser.org -> Βουλγαρικά
ca.fmuser.org -> Καταλανικά
zh-CN.fmuser.org -> Κινέζικα (απλοποιημένα)
zh-TW.fmuser.org -> Κινέζικα (Παραδοσιακά)
hr.fmuser.org -> Κροατικά
cs.fmuser.org -> Τσέχικα
da.fmuser.org -> Δανικά
nl.fmuser.org -> Ολλανδικά
et.fmuser.org -> Εσθονικά
tl.fmuser.org -> Φιλιππινέζικα
fi.fmuser.org -> Φινλανδικά
fr.fmuser.org -> Γαλλικά
gl.fmuser.org -> Γαλικιανά
ka.fmuser.org -> Γεωργιανά
de.fmuser.org -> Γερμανικά
el.fmuser.org -> Ελληνική
ht.fmuser.org -> Κρεόλ της Αϊτής
iw.fmuser.org -> Εβραϊκά
hi.fmuser.org -> Χίντι
hu.fmuser.org -> Ουγγρική
is.fmuser.org -> Ισλανδικά
id.fmuser.org -> Ινδονησιακά
ga.fmuser.org -> Ιρλανδικά
it.fmuser.org -> Ιταλικά
ja.fmuser.org -> Ιαπωνικά
ko.fmuser.org -> Κορεάτικα
lv.fmuser.org -> Λετονικά
lt.fmuser.org -> Λιθουανικά
mk.fmuser.org -> Μακεδόνας
ms.fmuser.org -> Μαλαισιανά
mt.fmuser.org -> Μαλτέζικα
no.fmuser.org -> Νορβηγική
fa.fmuser.org -> Περσικά
pl.fmuser.org -> Πολωνικά
pt.fmuser.org -> Πορτογαλικά
ro.fmuser.org -> Ρουμανικά
ru.fmuser.org -> Ρωσικά
sr.fmuser.org -> Σέρβικα
sk.fmuser.org -> Σλοβακικά
sl.fmuser.org -> Σλοβένικα
es.fmuser.org -> Ισπανικά
sw.fmuser.org -> Σουαχίλι
sv.fmuser.org -> Σουηδικά
th.fmuser.org -> Ταϊλάνδης
tr.fmuser.org -> Τουρκικά
uk.fmuser.org -> Ουκρανικά
ur.fmuser.org -> Ουρντού
vi.fmuser.org -> Βιετνάμ
cy.fmuser.org -> Ουαλικά
yi.fmuser.org -> Γίντις
Τα τελευταία χρόνια, η αυξανόμενη ζήτηση για προσαρμογή πολλαπλών πλατφορμών οδήγησε στην αύξηση της προσαρμοστικής αναπαραγωγής bitrate των μέσων ροής, η οποία ανάγκασε τους προγραμματιστές Ιστού και κινητών να επανεξετάσουν τη λογική της τεχνολογίας βίντεο. Πρώτα απ 'όλα, οι γίγαντες κυκλοφόρησαν ξεχωριστά τα πρωτόκολλα HLS, HDS και Smooth Streaming, κρύβοντας όλες τις σχετικές λεπτομέρειες στα ειδικά SDK τους. Οι προγραμματιστές δεν μπορούν να τροποποιήσουν ελεύθερα τη λογική της μηχανής πολυμέσων στη συσκευή αναπαραγωγής: δεν μπορείτε να τροποποιήσετε τους κανόνες προσαρμοστικού ρυθμού bit και cache ή ακόμη και το μήκος των slice σας. Αυτές οι συσκευές αναπαραγωγής μπορεί να είναι απλές στη χρήση, αλλά δεν έχετε πάρα πολλές επιλογές για να την προσαρμόσετε και ακόμη και τα κακά χαρακτηριστικά μπορούν να γίνουν ανεκτά μόνο.
Αλλά με την αύξηση διαφορετικών σεναρίων εφαρμογών, η ζήτηση για προσαρμόσιμες λειτουργίες γίνεται όλο και πιο έντονη. Ακριβώς μεταξύ ζωντανής μετάδοσης και κατ 'απαίτηση, υπάρχουν διαφορές στη διαχείριση buffer, στις στρατηγικές ABR και στις στρατηγικές προσωρινής αποθήκευσης. Αυτές οι απαιτήσεις γέννησαν μια σειρά API λειτουργίας πολυμέσων χαμηλότερου επιπέδου: Netstream σε Flash, Επεκτάσεις πηγής πολυμέσων σε HTML5 και Media Codec σε Android. Ταυτόχρονα, μια τυπική μορφή ροής βασισμένη σε HTTP MPEG-DASH εμφανίστηκε στον κλάδο. . Αυτές οι πιο προηγμένες δυνατότητες παρέχουν στους προγραμματιστές μεγαλύτερη ευελιξία, επιτρέποντάς τους να κατασκευάζουν παίκτες και μηχανές πολυμέσων που ταιριάζουν στις επιχειρηματικές τους ανάγκες.
Σήμερα θα μοιραστούμε πώς να οικοδομήσουμε έναν σύγχρονο παίκτη και ποια βασικά στοιχεία χρειάζονται για την κατασκευή ενός τέτοιου παίκτη. Σε γενικές γραμμές, μια τυπική συσκευή αναπαραγωγής μπορεί να χωριστεί σε τρία μέρη: UI, μηχανή πολυμέσων και αποκωδικοποιητή.
Διεπαφή χρήστη (UI): Αυτό είναι το ανώτερο μέρος της συσκευής αναπαραγωγής. Καθορίζει την εμπειρία προβολής του τελικού χρήστη μέσω τριών διαφορετικών λειτουργικών χαρακτηριστικών: δέρμα (ο σχεδιασμός εμφάνισης της συσκευής αναπαραγωγής), διεπαφή χρήστη (όλες οι προσαρμόσιμες λειτουργίες όπως λίστες αναπαραγωγής και κοινωνική κοινή χρήση κ.λπ.) και επιχειρηματική λογική (συγκεκριμένη επιχειρηματική λογική) Χαρακτηριστικά όπως όπως διαφήμιση, λογική συμβατότητας συσκευής και διαχείριση πιστοποίησης κ.λπ.).
Μηχανή πολυμέσων: Διαχειρίζεται όλη τη λογική που σχετίζεται με τον έλεγχο αναπαραγωγής, όπως η ανάλυση των αρχείων περιγραφής, το τράβηγμα των κλιπ βίντεο, καθώς και η ρύθμιση και η αλλαγή των προσαρμοστικών κανόνων bitrate. Θα εξηγήσουμε λεπτομερώς αυτό το μέρος παρακάτω. Δεδομένου ότι αυτοί οι κινητήρες είναι γενικά στενά συνδεδεμένοι με την πλατφόρμα, μπορεί να είναι απαραίτητο να χρησιμοποιήσετε μια ποικιλία διαφορετικών κινητήρων για να καλύψετε όλες τις πλατφόρμες.
Διαχειριστής αποκωδικοποιητή και DRM: Το χαμηλότερο μέρος της συσκευής αναπαραγωγής είναι ο διαχειριστής αποκωδικοποιητή και DRM. Οι λειτουργίες αυτού του επιπέδου καλούν απευθείας τα API που εκτίθενται από το λειτουργικό σύστημα. Η κύρια λειτουργία του αποκωδικοποιητή είναι η αποκωδικοποίηση και η απόδοση του περιεχομένου βίντεο, ενώ ο διαχειριστής DRM ελέγχει εάν θα έχει το δικαίωμα αναπαραγωγής μέσω της διαδικασίας αποκρυπτογράφησης.
Στη συνέχεια, θα χρησιμοποιήσουμε παραδείγματα για να εισαγάγουμε τους διαφορετικούς ρόλους που παίζονται από κάθε επίπεδο.
1. Διεπαφή χρήστη (UI)
Το επίπεδο UI είναι το ανώτερο επίπεδο της συσκευής αναπαραγωγής. Ελέγχει τι μπορούν να δουν και να αλληλεπιδράσουν οι χρήστες σας. Ταυτόχρονα, μπορείτε να το προσαρμόσετε με τη δική σας επωνυμία για να παρέχετε στους χρήστες σας μια μοναδική εμπειρία χρήστη. Αυτό το επίπεδο είναι πιο κοντά στο τμήμα ανάπτυξης front-end για το οποίο μιλάμε. Μέσα στο περιβάλλον εργασίας χρήστη, συμπεριλαμβάνουμε επίσης στοιχεία επιχειρησιακής λογικής, τα οποία αποτελούν τη μοναδικότητα της εμπειρίας αναπαραγωγής σας, αν και ο τελικός χρήστης δεν μπορεί να αλληλεπιδράσει άμεσα με αυτό το μέρος της λειτουργίας.
Το τμήμα διεπαφής χρήστη περιέχει κυρίως τρία στοιχεία:
1) Δέρμα
Το Skin είναι ένας γενικός όρος για τα οπτικά σχετικά μέρη της συσκευής αναπαραγωγής: γραμμές ελέγχου προόδου, κουμπιά, κινούμενα εικονίδια κ.λπ., όπως φαίνεται στο Σχήμα 2. Όπως και τα περισσότερα στοιχεία σχεδίασης, αυτό το μέρος του στοιχείου υλοποιείται επίσης χρησιμοποιώντας CSS, το οποίο μπορεί να ενσωματωθεί εύκολα από σχεδιαστές ή προγραμματιστές (ακόμα κι αν χρησιμοποιείτε μια ολοκληρωμένη λύση όπως το JW Player και το Bitdash).
2) Λογική διεπαφής χρήστη
Το τμήμα λογικής διεπαφής χρήστη ορίζει όλες τις ορατές αλληλεπιδράσεις κατά την αναπαραγωγή και την αλληλεπίδραση χρήστη: λίστες αναπαραγωγής, μικρογραφίες, επιλογή καναλιών αναπαραγωγής και κοινή χρήση κοινωνικών μέσων. Με βάση την εμπειρία αναπαραγωγής που περιμένετε να επιτύχετε, πολλές άλλες δυνατότητες μπορούν να προστεθούν σε αυτό το μέρος στο παρελθόν, πολλές από τις οποίες υπάρχουν με τη μορφή προσθηκών και ίσως μπορείτε να βρείτε κάποια έμπνευση: Plugins · videojs / video.js Wiki · Λογικό τμήμα GitHub Υπάρχουν πολλές λειτουργίες που περιλαμβάνονται. Δεν θα τους παρουσιάσουμε λεπτομερώς, αλλά παίρνουμε το UI του προγράμματος αναπαραγωγής Eurosport ως παράδειγμα για να βιώσετε διαισθητικά αυτές τις λειτουργίες.
Εκτός από τα παραδοσιακά στοιχεία UI, υπάρχει επίσης ένα πολύ ενδιαφέρον χαρακτηριστικό. Όταν ο χρήστης παρακολουθεί το μέσο ροής DVR, η ζωντανή μετάδοση εμφανίζεται με τη μορφή ενός μικρού παραθύρου και το κοινό μπορεί να επιστρέψει στη ζωντανή μετάδοση ανά πάσα στιγμή μέσω αυτού του μικρού παραθύρου. Δεδομένου ότι η διάταξη ή το περιβάλλον εργασίας χρήστη και η μηχανή πολυμέσων είναι εντελώς ανεξάρτητα, αυτές οι δυνατότητες μπορούν να εφαρμοστούν χρησιμοποιώντας το dash.js σε HTML5 με λίγες μόνο γραμμές κώδικα. Για το τμήμα UI, ο καλύτερος τρόπος για να το εφαρμόσετε είναι να προσθέσετε διάφορα χαρακτηριστικά στις ενότητες UI core με τη μορφή plug-ins / modules.
3) Επιχειρηματική λογική
Εκτός από τις "ορατές" δυνατότητες των παραπάνω δύο τμημάτων, υπάρχει ένα άλλο αόρατο μέρος που αποτελεί τη μοναδικότητα της επιχείρησής σας: έλεγχο ταυτότητας και πληρωμής, απόκτηση καναλιών και playlist και διαφήμιση. Υπάρχουν επίσης ορισμένα πράγματα που σχετίζονται με την τεχνολογία, όπως λειτουργικές μονάδες δοκιμών A / B και διαμορφώσεις που σχετίζονται με τη συσκευή. Αυτές οι διαμορφώσεις χρησιμοποιούνται για την επιλογή πολλαπλών διαφορετικών μηχανών πολυμέσων σε μια ποικιλία διαφορετικών τύπων συσκευών.
Για να αποκαλύψουμε την κρυφή πολυπλοκότητα στο κάτω μέρος, θα εξηγήσουμε αυτές τις ενότητες με περισσότερες λεπτομέρειες εδώ:
Λογική ανίχνευσης και διαμόρφωσης συσκευής: Αυτή είναι μια από τις πιο σημαντικές δυνατότητες, επειδή διαχωρίζει την αναπαραγωγή και την απόδοση. Για παράδειγμα, βάσει διαφορετικών εκδόσεων του προγράμματος περιήγησής σας, το πρόγραμμα αναπαραγωγής μπορεί να επιλέξει αυτόματα μια μηχανή πολυμέσων που βασίζεται σε HTML5 MSE, hls.js ή μια μηχανή αναπαραγωγής με φλας FlasHls για αναπαραγωγή ροών βίντεο HLS για εσάς. Το μεγαλύτερο χαρακτηριστικό αυτού του τμήματος είναι ότι ανεξάρτητα από τον υποκείμενο κινητήρα που χρησιμοποιείτε, μπορείτε να χρησιμοποιήσετε το ίδιο JavaScript ή CSS για να προσαρμόσετε τη διεπαφή χρήστη ή τη λογική της επιχείρησής σας στο επάνω επίπεδο.
Η δυνατότητα εντοπισμού εξοπλισμού χρήστη σάς επιτρέπει να διαμορφώσετε την εμπειρία του τελικού χρήστη ανάλογα με τις ανάγκες: εάν παίζετε σε κινητή συσκευή αντί για συσκευή οθόνης 4K, ίσως χρειαστεί να ξεκινήσετε με χαμηλότερο ρυθμό bit.
Λογική δοκιμής A / B: Η δοκιμή A / B πρέπει να είναι σε θέση να γκρίζει ορισμένους χρήστες στη διαδικασία παραγωγής. Για παράδειγμα, μπορείτε να παρέχετε σε ορισμένους χρήστες του Chrome ένα νέο κουμπί ή μια νέα μηχανή πολυμέσων και μπορείτε επίσης να διασφαλίσετε ότι όλες οι εργασίες της συνεχίζονται όπως έχει προγραμματιστεί.
Διαφήμιση (προαιρετικά): Η επεξεργασία διαφημίσεων από την πλευρά του πελάτη είναι μια από τις πιο περίπλοκες επιχειρηματικές λογικές. Όπως φαίνεται στο διάγραμμα ροής της πρόσθετης ενότητας videojs-contrib-ads, υπάρχουν πολλά βήματα στη διαδικασία εισαγωγής διαφημίσεων. Για ροή βίντεο HTTP, θα χρησιμοποιείτε περισσότερο ή λιγότερο ορισμένες υπάρχουσες μορφές, όπως VAST, VPAID ή Google IMA, οι οποίες μπορούν να σας βοηθήσουν να τραβήξετε διαφημίσεις βίντεο από το διακομιστή διαφημίσεων (συνήθως παρωχημένες μη αποκριτικές μορφές), Τοποθετούνται στις αρχές, τα μέσα και τα καθυστερημένα στάδια του βίντεο για αναπαραγωγή και δεν μπορούν να παραλειφθούν.
συνοψίζω:
Για τις ανάγκες προσαρμογής σας, μπορείτε να επιλέξετε να χρησιμοποιήσετε το JW Player που περιλαμβάνει όλες τις κλασικές λειτουργίες για αναπαραγωγή (σας επιτρέπει επίσης να προσαρμόσετε ορισμένες από τις λειτουργίες) ή να προσαρμόσετε τις δικές σας δυνατότητες βάσει ενός προγράμματος αναπαραγωγής ανοιχτού κώδικα, όπως Videojs. Ακόμη και για να ενοποιήσετε την εμπειρία χρήστη μεταξύ του προγράμματος περιήγησης και του εγγενούς προγράμματος αναπαραγωγής, μπορείτε επίσης να εξετάσετε το ενδεχόμενο χρήσης του React Native για UI ή ανάπτυξη δέρματος και Haxe για ανάπτυξη λογικής επιχείρησης. Αυτές οι εξαιρετικές βιβλιοθήκες μπορούν να είναι σε πολλούς διαφορετικούς τύπους Το ίδιο σύνολο βάσεων κώδικα μοιράζεται μεταξύ των συσκευών.
2, η μηχανή πολυμέσων
Τα τελευταία χρόνια, η μηχανή πολυμέσων εμφανίστηκε στην αρχιτεκτονική του προγράμματος αναπαραγωγής ως ένα νέο ανεξάρτητο στοιχείο. Στην εποχή του MP4, η πλατφόρμα επεξεργάστηκε όλη τη λογική που σχετίζεται με την αναπαραγωγή και μόνο ορισμένες από τις λειτουργίες που σχετίζονται με την επεξεργασία πολυμέσων (λειτουργίες όπως αναπαραγωγή, παύση, μεταφορά και απόθεση και λειτουργία πλήρους οθόνης) άνοιξαν στους προγραμματιστές.
Ωστόσο, η νέα μορφή μέσων ροής που βασίζεται σε HTTP απαιτεί ένα ολοκαίνουργιο στοιχείο για τον χειρισμό και τον έλεγχο της νέας πολυπλοκότητας: ανάλυση αρχείων δήλωσης, λήψη βίντεο κλιπ, προσαρμοστική παρακολούθηση ρυθμού bit, προσδιορισμός λήψης αποφάσεων και άλλα. Αρχικά, η πολυπλοκότητα του ABR αντιμετωπίστηκε από την πλατφόρμα ή τον πάροχο εξοπλισμού. Ωστόσο, με την αυξανόμενη ζήτηση για έλεγχο αγκύρωσης και προσαρμοσμένες συσκευές αναπαραγωγής, ορισμένοι νέοι παίκτες έχουν ανοίξει σταδιακά ορισμένα API χαμηλότερου επιπέδου (όπως Media Source Extensons στον Ιστό, Netstream στο Flash και Media Codec στην πλατφόρμα Android) και προσελκύθηκαν γρήγορα πολλές ισχυρές και ισχυρές μηχανές πολυμέσων που βασίζονται σε αυτά τα υποκείμενα API.
Στη συνέχεια, θα εξηγήσουμε λεπτομερώς τις λεπτομέρειες κάθε στοιχείου στη σύγχρονη μηχανή επεξεργασίας πολυμέσων:
1) Διερμηνεία και ανάλυση του αρχείου δήλωσης
Στη ροή βίντεο που βασίζεται σε HTTP, όλα ξεκινούν με ένα αρχείο περιγραφής. Το αρχείο δήλωσης περιέχει μετα-πληροφορίες που πρέπει να κατανοήσει ο διακομιστής πολυμέσων: πόσους διαφορετικούς τύπους ποιότητας βίντεο, γλώσσα και γράμματα κ.λπ. και ποιοι είναι αυτοί. Ο αναλυτής λαμβάνει τις πληροφορίες περιγραφής από το αρχείο XML (ένα ειδικό αρχείο m3u8 για HLS) και στη συνέχεια λαμβάνει τις σωστές πληροφορίες βίντεο από τις πληροφορίες. Φυσικά, υπάρχουν πολλοί τύποι διακομιστών πολυμέσων και δεν εφαρμόζουν σωστά όλες τις προδιαγραφές, επομένως ο αναλυτής μπορεί να χρειαστεί να αντιμετωπίσει ορισμένα επιπλέον σφάλματα εφαρμογής.
Μόλις εξαχθούν οι πληροφορίες βίντεο, ο αναλυτής θα αναλύσει τα δεδομένα από αυτό για να δημιουργήσει μια οπτική εικόνα ροής και θα μάθει πώς να αποκτά διαφορετικά βίντεο κλιπ. Σε ορισμένες μηχανές πολυμέσων, αυτές οι οπτικές εικόνες εμφανίζονται πρώτα με τη μορφή αφηρημένης εικόνας πολυμέσων και στη συνέχεια σχεδιάζουν τα διαφορετικά χαρακτηριστικά διαφορετικών μορφών ροής βίντεο HTTP στην οθόνη.
Στη σκηνή ζωντανής ροής, ο αναλυτής πρέπει επίσης να αποκτά περιοδικά το αρχείο δήλωσης για να λάβει τις πιο πρόσφατες πληροφορίες βίντεο κλιπ.
2) Λήψη (λήψη αρχείων δήλωσης, κλιπ πολυμέσων και πλήκτρα)
Το πρόγραμμα λήψης είναι μια λειτουργική μονάδα που τυλίγει το εγγενές API για την επεξεργασία αιτημάτων HTTP. Δεν χρησιμοποιείται μόνο για τη λήψη αρχείων πολυμέσων, αλλά μπορεί επίσης να χρησιμοποιηθεί για τη λήψη αρχείων δήλωσης και κλειδιών DRM όταν είναι απαραίτητο. Το πρόγραμμα λήψης παίζει πολύ σημαντικό ρόλο στο χειρισμό σφαλμάτων δικτύου και προσπαθεί ξανά, ενώ είναι σε θέση να συλλέγει δεδομένα σχετικά με το τρέχον διαθέσιμο εύρος ζώνης.
Σημείωση: Η λήψη αρχείων πολυμέσων ενδέχεται να χρησιμοποιεί το πρωτόκολλο HTTP ή άλλα πρωτόκολλα, όπως το πρωτόκολλο WebRTC στο σενάριο επικοινωνίας σε πραγματικό χρόνο από σημείο σε σημείο.
3) Μηχανή ροής
Η μηχανή αναπαραγωγής ροής είναι η κεντρική μονάδα που αλληλεπιδρά με το API αποκωδικοποιητή. Εισάγει διαφορετικά κλιπ πολυμέσων στον κωδικοποιητή και χειρίζεται την εναλλαγή πολλαπλών ρυθμών και τις διαφορές κατά την αναπαραγωγή (όπως η διαφορά μεταξύ αρχείων δήλωσης και φετών βίντεο και αυτόματων παγώσεων). Παράλειψη πλαισίου).
4) Πρόβλεψη παραμέτρων ποιότητας πόρων (εύρος ζώνης, CPU, ρυθμός καρέ κ.λπ.)
Ο εκτιμητής λαμβάνει δεδομένα από διάφορες διαστάσεις (μέγεθος μπλοκ, χρόνος λήψης ανά θραύσμα και αριθμός παραλειφθέντων καρέ) και τα συγκεντρώνει για να εκτιμήσει το εύρος ζώνης και την υπολογιστική ισχύ της CPU που διατίθενται στους χρήστες. Αυτή είναι η έξοδος που χρησιμοποιείται για τον ελεγκτή εναλλαγής ABR (Adaptive Bitrate, adaptive bitrate) για τη λήψη κρίσεων.
5) Ελεγκτής διακόπτη ABR
Ο διακόπτης ABR μπορεί να είναι το πιο κρίσιμο μέρος της μηχανής πολυμέσων - συνήθως το πιο παραβλεπόμενο μέρος. Ο ελεγκτής διαβάζει την έξοδο δεδομένων (εύρος ζώνης και αριθμός καρέ που παραλείφθηκαν) από τον εκτιμητή, χρησιμοποιεί έναν προσαρμοσμένο αλγόριθμο για τη λήψη κρίσεων βάσει αυτών των δεδομένων και ενημερώνει τη μηχανή ροής εάν χρειάζεται να αλλάξει την ποιότητα βίντεο ή ήχου. Υπάρχουν πολλές ερευνητικές εργασίες σε αυτόν τον τομέα, και η μεγαλύτερη δυσκολία είναι να βρεθεί μια ισορροπία μεταξύ του κινδύνου εκ νέου αποθήκευσης και της συχνότητας αλλαγής (η πολύ συχνή εναλλαγή μπορεί να οδηγήσει σε κακή εμπειρία χρήστη).
6) DRM Manager (προαιρετικό στοιχείο)
Σήμερα όλες οι υπηρεσίες βίντεο επί πληρωμή βασίζονται στη διαχείριση DRM και το DRM εξαρτάται σε μεγάλο βαθμό από την πλατφόρμα ή τον εξοπλισμό, θα δούμε πότε θα εξηγήσουμε το πρόγραμμα αναπαραγωγής αργότερα. Ο διαχειριστής DRM στη μηχανή πολυμέσων είναι ένα περιτύλιγμα για το API αποκρυπτογράφησης περιεχομένου στον αποκωδικοποιητή χαμηλότερου επιπέδου. Όποτε είναι δυνατόν, θα προσπαθήσει να προστατεύσει τις διαφορές στις λεπτομέρειες εφαρμογής των προγραμμάτων περιήγησης ή των λειτουργικών συστημάτων με αφηρημένους τρόπους. Αυτό το στοιχείο συνήθως συνδέεται στενά με τον κινητήρα επεξεργασίας ρεύματος επειδή συχνά αλληλεπιδρά με το στρώμα αποκωδικοποιητή.
7) Μορφοποίηση πολυπλέκτη μετατροπής (προαιρετικό στοιχείο)
Όπως θα δούμε αργότερα, κάθε πλατφόρμα έχει τους περιορισμούς της όσον αφορά τη συσκευασία και την κωδικοποίηση (το Flash διαβάζει αρχεία H.264 / AAC που είναι ενσωματωμένα σε δοχεία FLV και το MSE διαβάζει αρχεία H.264 / AAC που έχουν ενσωματωθεί σε δοχεία ISOBMFF. Αρχείο). Αυτό οδηγεί σε ορισμένα βίντεο κλιπ που πρέπει να μορφοποιηθούν πριν από την αποκωδικοποίηση. Για παράδειγμα, με τον πολυπλέκτη μετατροπής μορφής MPEG2-TS σε ISOBMFF, το hls.js μπορεί να χρησιμοποιήσει περιεχόμενο μορφής MSE για την αναπαραγωγή ροών βίντεο HLS. Έχει αμφισβητηθεί ο πολυπλέκτης μετατροπής μορφής σε επίπεδο μηχανής πολυμέσων. Ωστόσο, με τη βελτίωση της σύγχρονης ισχύος ερμηνείας JavaScript ή Flash, η απώλεια απόδοσης που φέρνει είναι σχεδόν αμελητέα και δεν θα έχει μεγάλο αντίκτυπο στην εμπειρία του χρήστη.
συνοψίζω
Υπάρχουν επίσης πολλά διαφορετικά στοιχεία και λειτουργίες στη μηχανή πολυμέσων, από υπότιτλους έως στιγμιότυπα οθόνης έως εισαγωγή διαφημίσεων και ούτω καθεξής. Στη συνέχεια, θα γράψουμε επίσης ένα ξεχωριστό άρθρο για να συγκρίνουμε τις διαφορές μεταξύ μιας ποικιλίας διαφορετικών κινητήρων, μέσω ορισμένων δοκιμών και δεδομένων αγοράς για να δώσουμε κάποια ουσιαστική καθοδήγηση για την επιλογή κινητήρα. Αξίζει να σημειωθεί ότι για να δημιουργήσετε ένα πρόγραμμα αναπαραγωγής συμβατό με διάφορες πλατφόρμες, είναι πολύ σημαντικό να παρέχετε πολλαπλούς ελεύθερα αντικαταστάσιμους κινητήρες πολυμέσων, επειδή ο υποκείμενος αποκωδικοποιητής σχετίζεται με την πλατφόρμα χρήστη. Στη συνέχεια, θα επικεντρωθούμε σε αυτήν την πτυχή.
3. Αποκωδικοποιητής και DRM Manager
Για την απόδοση αποκωδικοποίησης (αποκωδικοποιητής) και θέματα ασφαλείας (DRM), ο αποκωδικοποιητής και ο διαχειριστής DRM συνδέονται στενά με την πλατφόρμα του λειτουργικού συστήματος.
1) Αποκωδικοποιητής
Ο αποκωδικοποιητής χειρίζεται τη λογική που σχετίζεται με την αναπαραγωγή του κάτω επιπέδου. Αποσυσκευάζει βίντεο σε διαφορετικές μορφές ενθυλάκωσης, αποκωδικοποιεί το περιεχόμενό τους και, στη συνέχεια, παραδίδει τα αποκωδικοποιημένα καρέ βίντεο στο λειτουργικό σύστημα για απόδοση, και τελικά επιτρέπει στους τελικούς χρήστες να δουν.
Καθώς οι αλγόριθμοι συμπίεσης βίντεο γίνονται όλο και πιο περίπλοκοι, η διαδικασία αποκωδικοποίησης είναι μια διαδικασία που απαιτεί εντατικούς υπολογισμούς και για να εξασφαλιστεί η απόδοση αποκωδικοποίησης και η ομαλή εμπειρία αναπαραγωγής, η διαδικασία αποκωδικοποίησης πρέπει να εξαρτάται σε μεγάλο βαθμό από το λειτουργικό σύστημα και το υλικό. Το μεγαλύτερο μέρος της τρέχουσας αποκωδικοποίησης βασίζεται στη βοήθεια της επιταχυνόμενης αποκωδικοποίησης GPU (αυτός είναι επίσης ένας από τους λόγους για τους οποίους ο δωρεάν και ισχυρότερος αποκωδικοποιητής VP9 δεν έχει κερδίσει τη θέση στην αγορά H.264). Εάν δεν υπάρχει επιτάχυνση GPU, η αποκωδικοποίηση βίντεο 1080P θα καταλάβει περίπου το 70% του υπολογισμού της CPU και ο ρυθμός απώλειας καρέ μπορεί να είναι πολύ σοβαρός.
Με βάση την αποκωδικοποίηση και την απόδοση καρέ βίντεο, ο διαχειριστής παρέχει επίσης ένα εγγενές buffer. Η μηχανή πολυμέσων μπορεί να αλληλεπιδράσει άμεσα με το buffer για να κατανοήσει το μέγεθός της σε πραγματικό χρόνο και να την ανανεώσει όταν χρειάζεται.
Όπως αναφέραμε προηγουμένως, κάθε πλατφόρμα έχει τη δική της μηχανή απόδοσης και το αντίστοιχο API: Η πλατφόρμα Flash έχει Netstream, η πλατφόρμα Android διαθέτει Media Codec API και ο Ιστός διαθέτει τυπικές επεκτάσεις πηγών πολυμέσων. Το MSE γίνεται όλο και πιο εντυπωσιακό και μπορεί να γίνει το de facto πρότυπο σε άλλες πλατφόρμες μετά το πρόγραμμα περιήγησης στο μέλλον.
2) Διαχείριση DRM
Σήμερα, το DRM είναι απαραίτητο κατά τη μεταφορά περιεχομένου επί πληρωμή που παράγεται από στούντιο. Αυτά τα περιεχόμενα πρέπει να αποτραπούν από την κλοπή, επομένως ο κώδικας και η διαδικασία εργασίας του DRM αποκλείονται από τους τελικούς χρήστες και προγραμματιστές. Το αποκρυπτογραφημένο περιεχόμενο δεν θα αφήσει το στρώμα αποκωδικοποίησης, επομένως δεν θα υποκλαπεί.
Για την τυποποίηση του DRM και την παροχή ορισμένης διαλειτουργικότητας για την εφαρμογή διαφόρων πλατφορμών, αρκετοί γίγαντες Web δημιούργησαν από κοινού Common Encryption (CENC) και την καθολική επέκταση κρυπτογράφησης πολυμέσων Encrypted Media Extensions για να παρέχουν πολλούς παρόχους DRM (για παράδειγμα, το EME μπορεί να χρησιμοποιηθεί για Play ήδη στην πλατφόρμα Edge και Widewine στην πλατφόρμα Chrome για τη δημιουργία ενός συνόλου κοινών API που μπορούν να διαβάσουν το κλειδί κρυπτογράφησης περιεχομένου βίντεο από τη μονάδα εξουσιοδότησης DRM για αποκρυπτογράφηση.
Η CENC δήλωσε ένα σύνολο τυπικών μεθόδων κρυπτογράφησης και χαρτογράφησης κλειδιών, οι οποίες μπορούν να χρησιμοποιηθούν για την αποκρυπτογράφηση του ίδιου περιεχομένου σε πολλά συστήματα DRM, μόνο παρέχοντας το ίδιο κλειδί.
Μέσα στο πρόγραμμα περιήγησης, βάσει των μετα-πληροφοριών του περιεχομένου βίντεο, το EME μπορεί να προσδιορίσει ποιο σύστημα DRM χρησιμοποιείται για κρυπτογράφηση και να καλέσει την αντίστοιχη ενότητα αποκρυπτογράφησης (Content Decryption Module, CDM) για να αποκρυπτογραφήσει το περιεχόμενο που κρυπτογραφείται από το CENC. Η μονάδα αποκρυπτογράφησης CDM θα χειριστεί το έργο που σχετίζεται με την εξουσιοδότηση περιεχομένου, θα αποκτήσει το κλειδί και θα αποκρυπτογραφήσει το περιεχόμενο βίντεο.
Η CENC δεν καθορίζει την έκδοση εξουσιοδότησης, τη μορφή εξουσιοδότησης, τον αποθηκευτικό χώρο εξουσιοδότησης και τους κανόνες χρήσης και τη σχέση χαρτογράφησης αδειών και άλλες λεπτομέρειες. Ο χειρισμός αυτών των λεπτομερειών είναι ευθύνη του παρόχου DRM.
4. περίληψη
Σήμερα έχουμε μια βαθιά κατανόηση των διαφορετικών περιεχομένων των τριών επιπέδων του προγράμματος αναπαραγωγής βίντεο. Το καλύτερο μέρος αυτής της σύγχρονης δομής του προγράμματος αναπαραγωγής είναι ότι το διαδραστικό του μέρος διαχωρίζεται εντελώς από το λογικό μέρος του κινητήρα πολυμέσων, επιτρέποντας στην άγκυρα να προσαρμόζει την εμπειρία του τελικού χρήστη χωρίς ραφή και ελεύθερα και ευέλικτα. Η ταυτόχρονη χρήση διαφορετικών μηχανών πολυμέσων σε μια ποικιλία διαφορετικών τερματικών συσκευών μπορεί να διασφαλίσει την ομαλή αναπαραγωγή μιας ποικιλίας διαφορετικών μορφών περιεχομένου βίντεο.
Στην πλατφόρμα Web, χάρη στη βοήθεια μηχανών πολυμέσων, όπως dash.js, Shaka Player και hls.js, που τείνουν να είναι ώριμες βιβλιοθήκες, το MSE και το EME γίνονται νέα πρότυπα για την αναπαραγωγή και όλο και περισσότεροι κατασκευαστές με επιρροή χρησιμοποιούν τους. Αυτές οι μηχανές αναπαραγωγής. Τα τελευταία χρόνια, η προσοχή άρχισε επίσης να επεκτείνεται σε αποκωδικοποιητές και τηλεοράσεις Διαδικτύου, και έχουμε επίσης δει όλο και περισσότερες τέτοιες συσκευές να χρησιμοποιούν το MSE ως την υποκείμενη μηχανή επεξεργασίας πολυμέσων. Θα συνεχίσουμε να επενδύουμε περισσότερες προσπάθειες για να υποστηρίξουμε αυτά τα πρότυπα.
|
Εισαγάγετε email για να εκπλήξετε
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Αφρικανικά
sq.fmuser.org -> Αλβανικά
ar.fmuser.org -> Αραβικά
hy.fmuser.org -> Αρμενίων
az.fmuser.org -> Αζερμπαϊτζάν
eu.fmuser.org -> Βάσκων
be.fmuser.org -> Λευκορωσικά
bg.fmuser.org -> Βουλγαρικά
ca.fmuser.org -> Καταλανικά
zh-CN.fmuser.org -> Κινέζικα (απλοποιημένα)
zh-TW.fmuser.org -> Κινέζικα (Παραδοσιακά)
hr.fmuser.org -> Κροατικά
cs.fmuser.org -> Τσέχικα
da.fmuser.org -> Δανικά
nl.fmuser.org -> Ολλανδικά
et.fmuser.org -> Εσθονικά
tl.fmuser.org -> Φιλιππινέζικα
fi.fmuser.org -> Φινλανδικά
fr.fmuser.org -> Γαλλικά
gl.fmuser.org -> Γαλικιανά
ka.fmuser.org -> Γεωργιανά
de.fmuser.org -> Γερμανικά
el.fmuser.org -> Ελληνική
ht.fmuser.org -> Κρεόλ της Αϊτής
iw.fmuser.org -> Εβραϊκά
hi.fmuser.org -> Χίντι
hu.fmuser.org -> Ουγγρική
is.fmuser.org -> Ισλανδικά
id.fmuser.org -> Ινδονησιακά
ga.fmuser.org -> Ιρλανδικά
it.fmuser.org -> Ιταλικά
ja.fmuser.org -> Ιαπωνικά
ko.fmuser.org -> Κορεάτικα
lv.fmuser.org -> Λετονικά
lt.fmuser.org -> Λιθουανικά
mk.fmuser.org -> Μακεδόνας
ms.fmuser.org -> Μαλαισιανά
mt.fmuser.org -> Μαλτέζικα
no.fmuser.org -> Νορβηγική
fa.fmuser.org -> Περσικά
pl.fmuser.org -> Πολωνικά
pt.fmuser.org -> Πορτογαλικά
ro.fmuser.org -> Ρουμανικά
ru.fmuser.org -> Ρωσικά
sr.fmuser.org -> Σέρβικα
sk.fmuser.org -> Σλοβακικά
sl.fmuser.org -> Σλοβένικα
es.fmuser.org -> Ισπανικά
sw.fmuser.org -> Σουαχίλι
sv.fmuser.org -> Σουηδικά
th.fmuser.org -> Ταϊλάνδης
tr.fmuser.org -> Τουρκικά
uk.fmuser.org -> Ουκρανικά
ur.fmuser.org -> Ουρντού
vi.fmuser.org -> Βιετνάμ
cy.fmuser.org -> Ουαλικά
yi.fmuser.org -> Γίντις
FMUSER Wirless Μετάδοση βίντεο και ήχου πιο εύκολα!
Επικοινωνία
Διεύθυνση:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Κίνα 510620
Κατηγορίες
Newsletter