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 -> Γίντις
Πρόσφατα άρχισα να έρχομαι σε επαφή με το πρόγραμμα ζωντανής μετάδοσης βίντεο, συνόψισα επίσης μερικές έννοιες, τεχνολογίες και λύσεις που σχετίζονται με το βίντεο.
Καταρχάς, κατανοήστε την έννοια του ζωντανού βίντεο. Αρκετά κοινά πρωτόκολλα βίντεο είναι: RTMP, http-flv, HLS, RTP / RTCP.
Στη συνέχεια, θα εξηγήσουμε ολόκληρη τη διαδικασία ζωντανών εκπομπών και σχετικών τεχνολογιών.
1 protocol Πρωτόκολλο ζωντανών βίντεο
Στον τομέα της ζωντανής μετάδοσης, υπάρχουν δύο τύποι ζωντανών εκπομπών: η διαδραστική ζωντανή μετάδοση και η μη διαδραστική ζωντανή μετάδοση.
Η μη διαδραστική ζωντανή μετάδοση (όπως: ζωντανή παρέλαση, ζωντανή μετάδοση NBA, ζωντανή μετάδοση του Champions League κ.λπ.) δεν είναι ιδιαίτερα διαδραστική, επιτρέποντας καθυστέρηση 10 δευτερολέπτων ή περισσότερο. Χαρακτηρίζεται από σχετικά λίγες πηγές και κατάλληλο για διακωδικοποίηση πολλαπλών καναλιών (οι χρήστες μπορούν να το παρακολουθήσουν σύμφωνα με τις συνθήκες του δικτύου).
Οι τυπικές σκηνές της διαδραστικής ζωντανής μετάδοσης περιλαμβάνουν εκπομπή ζωντανής εκπομπής, ζωντανή μετάδοση παιχνιδιών κ.λπ. Λόγω των υψηλών απαιτήσεων για την αλληλεπίδραση μεταξύ της άγκυρας και του κοινού, αυτές οι ζωντανές εκπομπές πρέπει να καθυστερήσουν εντός 5S. Τα χαρακτηριστικά της διαδραστικής ζωντανής μετάδοσης είναι: περισσότερες πηγές, δεν είναι κατάλληλες για διακωδικοποίηση πολλαπλών καναλιών, ενδιάμεσος διακομιστής μόνο ως ρόλος διέλευσης.
Το μέσο μετάδοσης ζωντανού περιεχομένου είναι το δίκτυο και απαιτούνται τα αντίστοιχα πρωτόκολλα για τη μετάδοση βίντεο ή ήχου στο δίκτυο. Προς το παρόν, τα κοινά πρωτόκολλα κατάλληλα για ζωντανές σκηνές έχουν ως εξής.
1. Πρωτόκολλο RTMP (δεν υποστηρίζεται από HTML 5, υποστηρίζεται από φλας)
Το RTMP είναι ένα πρωτόκολλο ροής μέσων, το οποίο είναι το πρωτόκολλο ευρεσιτεχνίας της Adobe. Με βάση το TCP, είναι πολύ δημοφιλές στην Κίνα.
Δημοφιλής λόγος: η υποστήριξη λογισμικού ανοιχτού κώδικα και βιβλιοθήκης ανοιχτού κώδικα είναι σταθερή και ολοκληρωμένη και οι πιο συχνά χρησιμοποιούμενες λύσεις ροής και ροής μπορούν βασικά να λειτουργούν σταθερά. Για παράδειγμα: βιβλιοθήκη ροής ανοιχτού κώδικα librtmp, από την πλευρά της υπηρεσίας έχει nginx RTMP plug-in, pull stream έχει βιβλιοθήκη αναπαραγωγής ijkplayer.
2. Πρωτόκολλο Http-flv (δεν υποστηρίζεται από HTML 5, υποστηρίζεται από φλας)
Δηλαδή να χρησιμοποιήσετε πρωτόκολλο HTTP για ροή περιεχομένου πολυμέσων. Το HTTP είναι απλούστερο και πιο γνωστό από το RTMP. Η καθυστέρηση περιεχομένου μπορεί επίσης να είναι 2-5 δευτερόλεπτα και η ταχύτητα ανοίγματος είναι ταχύτερη, επειδή το ίδιο το HTTP δεν έχει πολύπλοκη αλληλεπίδραση κατάστασης. Έτσι, από την άποψη της καθυστέρησης, το http-flv είναι καλύτερο από το RTMP.
3. Πρωτόκολλο HLS (υποστήριξη HTML, υποστήριξη Flash)
Η ζωντανή ροή HTTP είναι ένα πρωτόκολλο μεταφοράς μέσων ροής που βασίζεται στο HTTP που προτείνει η Apple. Το HLS έχει ένα πολύ μεγάλο πλεονέκτημα: Το HTML5 μπορεί να ανοίξει και να παίξει άμεσα. Αυτό σημαίνει ότι ένας ζωντανός σύνδεσμος μπορεί να κοινοποιηθεί μέσω wechat και άλλης προώθησης, χωρίς την ανάγκη εγκατάστασης ανεξάρτητης εφαρμογής με πρόγραμμα περιήγησης, οπότε είναι πολύ δημοφιλής. Κοινωνική ζωντανή εφαρμογή, το HLS χρειάζεται μόνο. Το URL ζωντανής ροής που βασίζεται στο HLS είναι ένα αρχείο m3u8, το οποίο περιέχει αρκετά πρόσφατα μικρά αρχεία TS βίντεο. Η καθυστέρηση αυτής της λειτουργίας αναπαραγωγής είναι σχετικά υψηλή (που σχετίζεται με το μέγεθος του αρχείου TS) και μπορεί να επιτύχει καθυστέρηση 5-7 δευτερολέπτων στο ίδιο δίκτυο πόλης.
4. Πρωτόκολλο RTP / RTCP
Το πρωτόκολλο μεταφοράς σε πραγματικό χρόνο είναι ένα πρωτόκολλο επιπέδου μεταφοράς για ροή δεδομένων πολυμέσων στο Διαδίκτυο. Το RTCP μεταδίδει τη σηματοδότηση του διαδραστικού ελέγχου και το RTP μεταδίδει τα πραγματικά δεδομένα μέσων.
Το RTP χρησιμοποιείται ευρέως στην παρακολούθηση βίντεο, στη διάσκεψη βίντεο και στο τηλέφωνο IP, επειδή μία από τις σημαντικές εμπειρίες της τηλεδιάσκεψης και του τηλεφώνου IP είναι το ισχυρό περιεχόμενο σε πραγματικό χρόνο.
Σε σύγκριση με τα παραπάνω τρία πρωτόκολλα, μια σημαντική διαφορά μεταξύ RTP και αυτών είναι ότι το πρωτόκολλο UDP χρησιμοποιείται για τη μετάδοση δεδομένων από προεπιλογή, ενώ τα RTMP και HTTP βασίζονται σε πρωτόκολλο TCP.
Χρήση ανάλυσης σεναρίων: η σκηνή της ροής ήχου και βίντεο σε πραγματικό χρόνο δεν χρειάζεται αξιόπιστη εγγύηση, επομένως δεν χρειάζεται να υπάρχει μηχανισμός αναμετάδοσης. Δεν είναι σημαντικό να βλέπετε την εικόνα και τον ήχο σε πραγματικό χρόνο, να χάνετε περιεχόμενο όταν τρελαίνεται το δίκτυο, να θολώνει την εικόνα και την οθόνη splash. Προκειμένου να γίνει εκ νέου μετάδοση, το TCP θα προκαλέσει καθυστέρηση και ασύγχρονο. Εάν μια συγκεκριμένη ενότητα περιεχομένου φτάσει μετά από ένα δευτερόλεπτο λόγω αναμετάδοσης, τότε ολόκληρη η συνομιλία θα καθυστερήσει κατά ένα δευτερόλεπτο. Με το jitter του δικτύου, η καθυστέρηση θα αυξηθεί σε δύο δευτερόλεπτα ή τρία δευτερόλεπτα. Εάν ο πελάτης δεν χειριστεί την αναπαραγωγή, η άμεση εμπειρία μετάδοσης θα επηρεαστεί σοβαρά. Πώς να βελτιστοποιήσετε, θα εξηγηθεί στο ακόλουθο άρθρο.
Συμπέρασμα: στην επιλογή του πρωτοκόλλου ζωντανής μετάδοσης, εάν έχει επιλεγεί RTMP ή http-flv, αυτό σημαίνει ότι υπάρχει καθυστέρηση περιεχομένου 2-5 δευτερολέπτων, αλλά όσον αφορά την ανοιχτή καθυστέρηση, το http-flv είναι καλύτερο από το RTMP . Το HLS έχει καθυστέρηση περιεχομένου 5-7 δευτερολέπτων. Η επιλογή RTP για ζωντανή μετάδοση μπορεί να καθυστερήσει τη ζωντανή μετάδοση εντός 1 δευτερολέπτου. Ωστόσο, από όσο γνωρίζουμε, οι μεγαλύτεροι κατασκευαστές CDN δεν υποστηρίζουν ζωντανή μετάδοση με βάση το RTP, επομένως η τρέχουσα εσωτερική ροή είναι RTMP ή http-flv.
2 process Διαδικασία ζωντανής μετάδοσης βίντεο
Η τεχνική διαδικασία που σχετίζεται με το ζωντανό βίντεο είναι: απόκτηση ροής βίντεο σε πραγματικό χρόνο --- κωδικοποίηση ροής βίντεο --- μετάδοση ροής βίντεο --- αποκωδικοποίηση ροής βίντεο --- αναπαραγωγή βίντεο.
1. Η ιδέα της καταγραφής βίντεο σε πραγματικό χρόνο
α) Ρυθμίζοντας το setpreviewcallback στην προεπισκόπηση λήψης κάμερας Android, η διεπαφή onpreviewframe πραγματοποιείται για τη λήψη των δεδομένων κάθε ροής βίντεο σε πραγματικό χρόνο.
β) Μέσω της διαμεσολάβησης Android, συνδέστε την τοπική υποδοχή στη λειτουργία setoutputfile.
γ) Λειτουργία διακομιστή μέσων ροής, χρησιμοποιώντας ffmpeg ή getstreamer για λήψη βίντεο κάμερας.
2. Η πραγματοποίηση κωδικοποίησης συμπίεσης βίντεο
α) Χωρίς κωδικοποίηση, το αρχικό πλαίσιο βίντεο yuv420sp μεταδίδεται απευθείας μέσω υποδοχής.
b) Το JEPG συμπιέζει το αρχικό πλαίσιο βίντεο yuv420sp στο H.264 και μετά το μεταδίδει.
γ) H.264 / avc Το αρχικό πλαίσιο βίντεο yuv420sp συμπιέζεται στο H.264 και μετά μεταδίδεται. Οι κοινόχρηστοι κωδικοποιητές ανοιχτού κώδικα που βασίζονται στο H264 περιλαμβάνουν JM, x264, t264, hdot264, κ.λπ.
δ). mpeg4. Συμπίεση του αρχικού καρέ βίντεο yuv420sp σε MPEG4 και μετά μετάδοση
3. Η ιδέα της μετάδοσης βίντεο
ένα) . μετάδοση πρίζας
β) Μεταφορά HTTP
γ). Μετάδοση RTP / RTSP
δ). λειτουργία διακομιστή μέσων ροής, όπως το live555 κ.λπ.
4. Η πραγματοποίηση αποκωδικοποίησης βίντεο
ένα) . αποκωδικοποιητής που αντιστοιχεί στην κωδικοποίηση
5. Η ιδέα της αναπαραγωγής βίντεο
ένα) . μέσω βιντεοπροβολής Android
β) μέσω του Mediaplay Android
γ). επικολλήστε την εικόνα του πλαισίου απευθείας μέσω καμβά
|
Εισαγάγετε 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