τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C 、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍RTSP协议 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
⏰Ώρα κυκλοφορίας⏰: 06-07-2024 12:22:00
Αυτό το άρθρο δεν μπορεί να προωθηθεί χωρίς άδεια! ! !
RTSP, πλήρες όνομα Real Time Streaming Protocol
, το πρωτόκολλο ροής σε πραγματικό χρόνο, είναι ένα πρωτόκολλο επιπέδου εφαρμογής στο σύστημα πρωτοκόλλου TCP/IP Είναι ένα πρότυπο IETF RFC που υποβάλλεται από το Πανεπιστήμιο Columbia, το Netscape και το RealNetworks.
Το επίσημο έγγραφο σχετικά με το πρωτόκολλο RTSP είναι RFC2326, σύνδεσμος εγγράφου:RFC2326-Πρωτόκολλο ροής σε πραγματικό χρόνο (RTSP)。
Αναφέρεται η σύνταξη και η λειτουργία του πρωτοκόλλου RTSP. HTTP/1.1
, ένα πρωτόκολλο που βασίζεται σε κείμενο που χρησιμοποιεί το σύνολο χαρακτήρων ISO10646 και την κωδικοποίηση UTF-8 το πρωτόκολλο του επιπέδου μεταφοράς που φέρει το RTSPTCP
, προεπιλεγμένη θύρα554
Εάν πρόκειται για σήραγγα RTSP-over-HTTP, η προεπιλεγμένη θύρα TCP χρησιμοποιείται γενικά σε συνδυασμό με το πρωτόκολλο RTP/RTCP, το πρωτόκολλο RTP μεταδίδει δεδομένα ροής σε πραγματικό χρόνο και το πρωτόκολλο RTCP ολοκληρώνει τη μετάδοση των ροών δεδομένων. εντολές ελέγχου.
Πρωτόκολλο RTP: πλήρες όνομα
Real-time Transport Protocol
, το πρωτόκολλο μετάδοσης σε πραγματικό χρόνο, ανακοινώθηκε από την Ομάδα Εργασίας Μεταφοράς Πολυμέσων του IETF το 1996 στο RFC 1889. Το πρωτόκολλο RTP περιγράφει λεπτομερώς την τυπική μορφή πακέτου για την παράδοση ήχου και βίντεο μέσω του Διαδικτύου. Είναι χτισμένο σε πρωτόκολλο UDP.
Πρωτόκολλο RTCP: πλήρες όνομα
Real-time Transport Control Protocol
, Πρωτόκολλο ελέγχου μεταφοράς σε πραγματικό χρόνο, που χρησιμοποιείται με RTP. Το RTP χρησιμοποιεί μια θύρα UDP με ζυγό αριθμό. Το RTCP και το RTP λειτουργούν μαζί, το RTP υλοποιεί τη μετάδοση των πραγματικών δεδομένων και το RTCP είναι υπεύθυνο για την αποστολή πακέτων ελέγχου σε όλους στη συνεδρία. Η κύρια λειτουργία του είναι να παρέχει ανατροφοδότηση σχετικά με την ποιότητα της υπηρεσίας που παρέχεται από το RTP.
Η διαφορά μεταξύ πρωτοκόλλου RTSP και πρωτοκόλλου HTTP:
Το RTSP είναι κατάστασης και οι εντολές του αποστέλλονται πάντα με τη σειρά και μπορεί πάντα να χρειάζεται να σταλεί μια εντολή πριν από μια άλλη εντολή. Το HTTP είναι χωρίς κατάσταση Αφού το πρωτόκολλο στείλει μια εντολή, η σύνδεση θα αποσυνδεθεί και δεν υπάρχει εξάρτηση μεταξύ των εντολών.
Το πρωτόκολλο rtsp χρησιμοποιεί τη θύρα 554 και το http χρησιμοποιεί τη θύρα 80.
Τα αιτήματα RTSP μπορούν να σταλούν τόσο από τον διακομιστή όσο και από τον πελάτη, ενώ τα αιτήματα HTTP μπορούν να σταλούν μόνο από τον πελάτη.
Οι κοινώς χρησιμοποιούμενες μέθοδοι RTSP περιλαμβάνουν: ΕΠΙΛΟΓΕΣ, ΠΕΡΙΓΡΑΦΗ, ΡΥΘΜΙΣΗ, ΑΝΑΠΑΡΑΓΩΓΗ, ΠΑΥΣΗ, ΚΑΤΑΧΩΡΗΣΗ, ΑΝΑΚΟΙΝΩΣΗ, GET_PARAMETER και SET_PARAMETER, κ.λπ. Αναλυτικές οδηγίες χρήσης είναι οι εξής:
OPTIONS
: Ο πελάτης λαμβάνει τη μέθοδο που υποστηρίζεται από τον διακομιστή από τον διακομιστή. Δεν επηρεάζει την κατάσταση του διακομιστή.DESCRIBE
: Ο πελάτης λαμβάνει την περιγραφή του αντικειμένου πολυμέσων που καθορίζεται από τη διεύθυνση URL από τον διακομιστή, όπουAccept
Το πεδίο καθορίζει τη μορφή περιγραφής.SETUP
: Ο πελάτης ζητά από τον διακομιστή να δημιουργήσει μια περίοδο λειτουργίας και να προετοιμαστεί για μετάδοση. Οι πληροφορίες αιτήματος περιλαμβάνουν κυρίως το πρωτόκολλο μετάδοσης και τον αριθμό θύρας του πελάτη.PLAY
: Ο πελάτης ειδοποιεί ενεργά τον διακομιστή να ξεκινήσει την αποστολή δεδομένων χρησιμοποιώντας τον μηχανισμό που καθορίζεται από το SETUP.σεRange
Το πεδίο καθορίζει την ώρα έναρξης και λήξης της αναπαραγωγής (το εύρος ροής σε πραγματικό χρόνο είναι γενικάRange: npt=0.000-
), όταν φτάνουν πολλά αιτήματα PLAY, ο διακομιστής θα βάλει στην ουρά τα αιτήματα PLAY και θα τα εκτελέσει διαδοχικά, δηλαδή θα πρέπει να περιμένει να ολοκληρωθεί ο πρώτος χρόνος PLAY πριν συνεχίσει να επεξεργάζεται το δεύτερο μήνυμα PLAY.PAUSE
: Ο πελάτης ζητά να ανασταλεί προσωρινά η ροή πολυμέσων του διακομιστή.ικανός να περάσειRange
Η παράμετρος διακόπτεται σε ένα καθορισμένο χρονικό σημείο ή μπορείτε να καθορίσετε μια ροή για παύση, για παράδειγμα, εάν καθορίσετε μια ροή ήχου για παύση, η αναπαραγωγή θα είναι αθόρυβη.RECORD
: RECORD ειδοποιεί τον διακομιστή ότι ο πελάτης θα ξεκινήσει την εγγραφή δεδομένων πολυμέσων σύμφωνα με την προηγούμενη περιγραφή. σεtimestamp
Τα πεδία αντικατοπτρίζουν τους χρόνους έναρξης και λήξης (UTC). Εάν αυτό το πεδίο δεν υπάρχει, θα χρησιμοποιηθεί η ώρα έναρξης ή λήξης από την περιγραφή του μέσου. Εάν η συνεδρία έχει ήδη ξεκινήσει, η εγγραφή ξεκινά αμέσως.request-URI
Επόμενο ή άλλο URI. Εάν ο διακομιστής δεν χρησιμοποιεί αίτημα-URI, η απάντηση θα πρέπει να είναι 201 (Δημιουργήθηκε) και να περιέχει μια κεφαλίδα οντότητας και τοποθεσίας που περιγράφει την κατάσταση του αιτήματος και αναφέρεται στον νέο πόρο.TEARDOWN
: Ο πελάτης ζητά να σταματήσει η αποστολή της καθορισμένης ροής URL και να αποδεσμεύσει σχετικούς πόρους.REDIRECT
: Για να ανακατευθύνει ένα αίτημα, ο διακομιστής ειδοποιεί τον πελάτη ότι πρέπει να συνδεθεί σε άλλη θέση διακομιστή. Περιέχει την υποχρεωτική κεφαλίδα Τοποθεσία, η οποία υποδεικνύει ότι ο πελάτης πρέπει να υποβάλει αίτημα για αυτήν τη διεύθυνση URL. Μπορεί να περιέχει την παράμετρο Εύρος, που υποδεικνύει πότε θα τεθεί σε ισχύ η ανακατεύθυνση. Εάν ο πελάτης θέλει να συνεχίσει να στέλνει ή να λαμβάνει πολυμέσα για αυτό το URI, ο πελάτης πρέπει να εκδώσει ένα αίτημα TEARDOWN για την τρέχουσα περίοδο λειτουργίας και ένα SETUP για τη νέα περίοδο λειτουργίας στον καθορισμένο κεντρικό υπολογιστή.ANNOUNCE
: Όταν ο πελάτης στέλνει στον διακομιστή, αυτό σημαίνει ότι υποβάλλει την περιγραφή της παρουσίασης ή το αντικείμενο πολυμέσων που προσδιορίζεται από τη διεύθυνση URL αιτήματος στον διακομιστήGET_PARAMETER
:GET_PARAMETER αίτημα για ανάκτηση τιμών παραμέτρων για την αναπαράσταση ή τη ροή που καθορίζεται στο URI. Το περιεχόμενο των απαντήσεων και των απαντήσεων επαφίεται στην υλοποίηση. Το GET_PARAMETER χωρίς σώμα οντότητας μπορεί να χρησιμοποιηθεί για τον έλεγχο της ζωντανότητας ("ping") ενός πελάτη ή διακομιστή.SET_PARAMETER
: Αυτή η μέθοδος ζητά να ορίσετε τις τιμές παραμέτρων της καθορισμένης ροής επίδειξης ή διεύθυνσης URL. Τα αιτήματα πρέπει να περιέχουν μόνο μία παράμετρο, επιτρέποντας στον πελάτη να αποφασίσει γιατί ένα συγκεκριμένο αίτημα απέτυχε. Εάν το αίτημα περιέχει πολλές παραμέτρους, όλες οι παράμετροι μπορούν να ρυθμιστούν με επιτυχία και ο διακομιστής πρέπει να ενεργήσει μόνο σε αυτό το αίτημα. Ο διακομιστής πρέπει να επιτρέπει την επανειλημμένη ρύθμιση των παραμέτρων στην ίδια τιμή, αλλά να μην αλλάζει την τιμή της παραμέτρου. Σημείωση: Οι παράμετροι ροής πολυμέσων πρέπει να ρυθμιστούν χρησιμοποιώντας την εντολή SETUP. Είναι επωφελές για τα τείχη προστασίας να περιορίζουν τις παραμέτρους μεταφοράς εγκατάστασης στο SETUP.Συνολικά 11 μέθοδοι RTSP εισάγονται παραπάνω, μεταξύ των οποίων:SETUP
、PLAY
、TEARDOWN
Οι τρεις εντολές είναι απαραίτητες στη διαδικασία RTSP και άλλες μέθοδοι δεν είναι απαραίτητες.καιANNOUNCE
、GET_PARAMETER
、SET_PARAMETER
Οι τρεις εντολές μπορούν να σταλούν από τον πελάτη στον διακομιστή ή από τον διακομιστή στον πελάτη.
Το RTSP έχει δύο τύπους μηνυμάτων: μηνύματα αιτήματος και μηνύματα απάντησης. Το μήνυμα αίτησης αναφέρεται στο μήνυμα αιτήματος που αποστέλλεται από τον πελάτη στον διακομιστή και το μήνυμα απάντησης αναφέρεται στην απάντηση από τον διακομιστή στον πελάτη.
Το μήνυμα αιτήματος RTSP αποτελείται από τρία μέρη: γραμμή αιτήματος, κεφαλίδα αιτήματος και σώμα αιτήματος. Μεταξύ αυτών, απαιτείται η γραμμή αιτήματος, ενώ η κεφαλίδα και το σώμα αιτήματος είναι προαιρετικά ανάλογα με τη συγκεκριμένη κατάσταση.
rn
)Φινίρισμα.方法
: Είναι η μέθοδος RTSP που εισήχθη παραπάνω. Συμπεριλαμβανομένων OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, TEARDOWN κ.λπ.请求URI
: Προσδιορίζει τον πόρο πολυμέσων προς λειτουργία, συνήθως με τη μορφή rtsp://example.com/path/to/stream.协议版本
: Υποδεικνύει την έκδοση πρωτοκόλλου RTSP που ακολουθεί συνήθως το αίτημαRTSP/1.0
ήRTSP/2.0
。OPTIONS rtsp://192.168.3.225:554/wbc RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.19 (LIVE555 Streaming Media v2016.11.28)
Το μήνυμα αιτήματος RTSP αποτελείται από τρία μέρη: γραμμή κατάστασης, κεφαλίδα απόκρισης και σώμα απόκρισης. Μεταξύ αυτών, απαιτείται η γραμμή κατάστασης, ενώ η κεφαλίδα απόκρισης και το σώμα απόκρισης είναι προαιρετικά ανάλογα με τη συγκεκριμένη κατάσταση.
协议版本
: Υποδεικνύει την έκδοση του πρωτοκόλλου RTSP που ακολουθεί η απόκριση, συνήθως RTSP/1.0 ή RTSP/2.0.状态码
: Τρία ψηφία, όπως: 200, 401, 500 κ.λπ., που χρησιμοποιούνται για να υποδείξουν το αποτέλεσμα επεξεργασίας του αιτήματος. Το πρώτο ψηφίο αντιπροσωπεύει την κατηγορία απόκρισης: 2xx υποδηλώνει επιτυχία, 4xx δηλώνει σφάλμα πελάτη και 5xx σφάλμα διακομιστή.状态文本
: Μια σύντομη περιγραφή κειμένου που εξηγεί τη συγκεκριμένη σημασία του αντίστοιχου κωδικού κατάστασης, όπως: ΟΚ, Μη εξουσιοδοτημένο κ.λπ.RTSP/1.0 200 OK
CSeq: 2
Date: Wed, Feb 04 1970 03:25:10 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
v=0
o=- 8913478 1 IN IP4 192.168.3.91
s=LIVE555 Streaming Media v2016.07.19
i=1080
t=0 0
a=tool:LIVE555 Streaming Media v2016.07.19
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:LIVE555 Streaming Media v2016.07.19
a=x-qt-text-inf:1080
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64002A;sprop-parameter-sets=Z2QAKq2EAQwgCGEAQwgCGEAQwgCEO1A8ARPyoA==,aO48sA==
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:768
a=rtpmap:97 PCMA/48000/2
a=control:track2
Η κεφαλίδα απόκρισης του μηνύματος RTSP θα περιέχει ορισμένα πεδία Τα ακόλουθα είναι μερικά πεδία που χρησιμοποιούνται συνήθως:
SETUP
Επιλεγμένο στην απάντηση, μόλις ο πελάτης λάβει το Session ID, θα συμπεριλάβει το Session ID σε μελλοντικά μηνύματα αιτήματος λειτουργίας για την SessionΧρησιμοποιήστε το wireshark για να καταγράψετε τα πακέτα δικτύου των μέσων ροής RTSP Μπορείτε να δείτε ότι η γενική διαδικασία είναι η εξής:
1. Ο πελάτης στέλνειOPTIONS
Μέθοδος, απάντηση διακομιστή.
2. Ο πελάτης στέλνειDESCRIBE
Μέθοδος, απάντηση διακομιστή.
3. Ο πελάτης στέλνειSETUP
Μέθοδος, απάντηση διακομιστή.
2. Ο πελάτης στέλνειPLAY
Μέθοδος, απάντηση διακομιστή.
2. Ο πελάτης στέλνειTEARDOWN
Μέθοδος, απάντηση διακομιστή.
Το πλήρες πακέτο ροής έχει ως εξής:
OPTIONS rtsp://192.168.3.225:554/wbc RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.19 (LIVE555 Streaming Media v2016.11.28)
RTSP/1.0 200 OK
CSeq: 2
Date: Wed, Jul 03 2024 14:42:11 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
DESCRIBE rtsp://192.168.3.225:554/wbc RTSP/1.0
CSeq: 3
User-Agent: LibVLC/3.0.19 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp
RTSP/1.0 200 OK
CSeq: 3
Date: Wed, Jul 03 2024 14:42:11 GMT
Content-Base: rtsp://192.168.3.225/wbc/
Content-Type: application/sdp
Content-Length: 472
v=0
o=- 1720014950032000 1 IN IP4 192.168.3.225
s=LIVE555 Streaming Media v2016.07.19
i=wbc
t=0 0
a=tool:LIVE555 Streaming Media v2016.07.19
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:LIVE555 Streaming Media v2016.07.19
a=x-qt-text-inf:wbc
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=640029;sprop-parameter-sets=Z2QAKawsaoHgCJ WbgoCCgQ=,aO4xshs=
a=control:track1
SETUP rtsp://192.168.3.225/wbc/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/3.0.19 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP;unicast;client_port=55320-55321
RTSP/1.0 200 OK
CSeq: 4
Date: Wed, Jul 03 2024 14:42:11 GMT
Transport: RTP/AVP;unicast;destination=192.168.2.180;source=192.168.3.225;client_port=55320-55321;server_port=6970-6971
Session: 4581E0AE;timeout=65
PLAY rtsp://192.168.3.225/wbc/ RTSP/1.0
CSeq: 5
User-Agent: LibVLC/3.0.19 (LIVE555 Streaming Media v2016.11.28)
Session: 4581E0AE
Range: npt=0.000-
RTSP/1.0 200 OK
CSeq: 5
Date: Wed, Jul 03 2024 14:42:11 GMT
Range: npt=0.000-
Session: 4581E0AE
RTP-Info: url=rtsp://192.168.3.225/wbc/track1;seq=7880;rtptime=3548171463
TEARDOWN rtsp://192.168.3.225/wbc/ RTSP/1.0
CSeq: 6
User-Agent: LibVLC/3.0.19 (LIVE555 Streaming Media v2016.11.28)
Session: 4581E0AE
RTSP/1.0 200 OK
CSeq: 6
Date: Wed, Jul 03 2024 14:42:19 GMT
Τα παρακάτω θα αναλύσουν κάθε μέθοδο RTSP και απάντηση που χρησιμοποιήθηκαν στο προηγούμενο μήνυμα.
Λάβετε διαθέσιμες μεθόδους από τον διακομιστή:
Ο πελάτης στέλνει τη μέθοδο OPTIONS και χρησιμοποιείCSeq
Για να καθορίσετε τον αριθμό σειράς αιτημάτων, χρησιμοποιήστεUser-Agent
προσδιορίζει τον δικό του αντιπρόσωπο·
Ο διακομιστής θα απαντήσει στο αίτημα χρησιμοποιώνταςCSeq
Για να υποδείξετε σε ποιο αίτημα ανταποκρίνεται, χρησιμοποιήστε τοDate
καθορίστε την ημερομηνία,Public
Καθορίζει τη μέθοδο που παρέχεται.
Λήψη από διακομιστήrtsp://192.168.3.225:554/wbc
περιγραφή του αντικειμένου μέσων, όπουAccept
Το πεδίο καθορίζει τη μορφή περιγραφής:
Ο πελάτης στέλνει τη μέθοδο DESCRIBE και χρησιμοποιείCSeq
Για να καθορίσετε τον αριθμό σειράς αιτημάτων, χρησιμοποιήστεUser-Agent
αναγνωρίστε τον αντιπρόσωπό σας,Accept
Το πεδίο καθορίζει τη μορφή περιγραφής ως SDP.
Ο διακομιστής θα απαντήσει σε αυτό το αίτημα χρησιμοποιώντας CSeq
Για να υποδείξετε σε ποιο αίτημα ανταποκρίνεται, χρησιμοποιήστε τοDate
καθορίστε την ημερομηνία,Content-Type
Υποδεικνύει ότι ο τύπος περιεχομένου είναι SDP,Content-Length
Καθορίστε το μήκος του περιεχομένου.
Ειδοποίηση:
1. Για ορισμένα που απαιτούν όνομα χρήστη και κωδικό πρόσβασης, ο διακομιστής θα επεξεργαστεί τη μέθοδο DESCRIBE για έλεγχο ταυτότητας. Εάν οι πληροφορίες ελέγχου ταυτότητας εξουσιοδότησης δεν μεταφερθούν ή ο έλεγχος ταυτότητας αποτύχει, ο διακομιστής θα επιστρέψει μια απάντηση με αριθμό σφάλματος 401. Όταν ο πελάτης λάβει την απάντηση 401, πρέπει να δημιουργήσει Εξουσιοδότηση με βάση τις πληροφορίες ελέγχου ταυτότητας γνωστού χρήστη και να στείλει ξανά περιγραφή. Εάν ο έλεγχος ταυτότητας είναι επιτυχής, ο διακομιστής επιστρέφει πληροφορίες απόκρισης που φέρουν SDP.
2. Οι πληροφορίες SDP που επιστρέφονται από τον διακομιστή θα αναλυθούν σε επόμενο άρθρο.
Ο πελάτης ζητά από τον διακομιστή να δημιουργήσει μια συνεδρία και να προετοιμαστεί για μετάδοση. Οι πληροφορίες αιτήματος περιλαμβάνουν κυρίως το πρωτόκολλο μετάδοσης και τον αριθμό θύρας του πελάτη.
Ο πελάτης στέλνει τη μέθοδο SETUP και χρησιμοποιείCSeq
Για να καθορίσετε τον αριθμό σειράς αιτημάτων, χρησιμοποιήστεUser-Agent
αναγνωρίστε τον αντιπρόσωπό σας,Transport
Το πεδίο καθορίζει το αποδεκτό πρωτόκολλο μετάδοσης RTP/AVP και τη θύρα (εδώ η θύρα RTP είναι 55320 και η θύρα RTCP είναι 55321).
Ο διακομιστής θα απαντήσει σε αυτό το αίτημα χρησιμοποιώντας CSeq
Για να υποδείξετε σε ποιο αίτημα ανταποκρίνεται, χρησιμοποιήστε τοDate
καθορίστε την ημερομηνία,Transport
Καθορίστε το πρωτόκολλο μεταφοράς RTP/AVP, τη διεύθυνση προορισμού, τη διεύθυνση πηγής, τη θύρα πελάτη (το RTP είναι 55320, το RTCP είναι 55321), τη θύρα διακομιστή (το RTP είναι 6970, το RTCP είναι 6971),Session
Καθορίστε το αναγνωριστικό περιόδου σύνδεσης.
Ειδοποίηση:
Σε αυτό το παράδειγμα, το RTP μεταδίδεται μέσω πρωτοκόλλου UDP Μερικές φορές, το RTP θα μεταδοθεί μέσω TCPTransport
Τα πεδία θα διαφέρουν. Μπορεί να είναι ως εξής:
客户端请求:Transport: RTP/AVP/TCP;unicast;interleaved=0-1
服务器响应:Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=24e4e500;mode="play"
RTP/AVP/TCP
Υποδεικνύει ότι η ροή RTP μεταδίδεται μέσω TCP Όταν εμφανίζεται αυτή η τιμή, το μήνυμα δεν έχει το πεδίο client_port.
interleaved=0-1
Αντιπροσωπεύει το streamid, προσδιορίζοντας το RTP streamid=0;
Όταν η ροή κώδικα μεταδίδεται μέσω TCP, μοιράζεται μια σύνδεση TCP με το RTSP, επομένως δεν χρειάζεται να δημιουργήσει μια νέα σύνδεση για να διακρίνει τα πρωτόκολλα RTP, RTCP και RTSP, πρέπει να προστεθεί ένα αναγνωριστικό κεφαλίδας Το πεδίο κεφαλίδας χρησιμοποιείται εδώ και η ενότητα tcphead είναι τέσσερις λέξεις, η μορφή είναι η εξής:
| magic number | channel number | embedded data length | data |
magic number
: 1 byte, σταθερό σε0x24
, είναι ένας χαρακτήρας$
, υποδεικνύοντας ότι τα δεδομένα που μεταδίδονται δεν είναι το πρωτόκολλο rtsp.
channel number
: 1 byte, αναγνωριστικό καναλιού, που προσδιορίζει τον τύπο ροής, που είναι το streamid που αναφέρθηκε προηγουμένως.
embedded data length
: 2 byte, υποδεικνύοντας το μήκος ροής
data
: Υποδεικνύει δεδομένα πακέτων RTP/RTCP
Ο πελάτης ειδοποιεί ενεργά τον διακομιστή να ξεκινήσει την αποστολή δεδομένων χρησιμοποιώντας τον μηχανισμό που καθορίζεται από το SETUP.
Ο πελάτης στέλνει τη μέθοδο PLAY και χρησιμοποιείCSeq
Για να καθορίσετε τον αριθμό σειράς αιτημάτων, χρησιμοποιήστεUser-Agent
αναγνωρίστε τον αντιπρόσωπό σας,Session
Το πεδίο καθορίζει το αναγνωριστικό συνεδρίας,Range
Το πεδίο καθορίζει την ώρα έναρξης και λήξης της αναπαραγωγής.
Ο διακομιστής θα απαντήσει σε αυτό το αίτημα χρησιμοποιώντας CSeq
Υποδείξτε σε ποιο αίτημα ανταποκρίνεται η χρήσηDate
καθορίστε την ημερομηνία?Range
Το πεδίο καθορίζει την ώρα έναρξης και λήξης της αναπαραγωγής.Session
Το πεδίο καθορίζει το αναγνωριστικό περιόδου σύνδεσης.RTP-Info
Το πεδίο περιγράφει τις πληροφορίες RTP της ροής κώδικα που θα σταλεί, όπως η συνέχεια και ο χρόνος rtp του πρώτου πακέτου RTP.
Ο πελάτης ζητά να σταματήσει την αποστολή της καθορισμένης ροής URL και να αποδεσμεύσει σχετικούς πόρους.
Ο πελάτης στέλνει τη μέθοδο TEARDOWN και χρησιμοποιείCSeq
Για να καθορίσετε τον αριθμό σειράς αιτημάτων, χρησιμοποιήστεUser-Agent
αναγνωρίστε τον αντιπρόσωπό σας,Session
Το πεδίο καθορίζει το αναγνωριστικό περιόδου σύνδεσης.
Ο διακομιστής θα απαντήσει σε αυτό το αίτημα χρησιμοποιώντας CSeq
Υποδείξτε σε ποιο αίτημα ανταποκρίνεται η χρήσηDate
Καθορίστε την ημερομηνία.
Το περιεχόμενο απόκρισης του RTSP συνήθως περιέχει έναν ακέραιο κωδικό απόκρισης και μια αιτιολογική φράση Ο σκοπός της φράσης είναι να δώσει μια σύντομη περιγραφή κειμένου του κωδικού κατάστασης. Σύμφωνα με τη διαφορά μεταξύ του πρώτου ψηφίου του κωδικού απάντησης, μπορεί να χωριστεί στις ακόλουθες πέντε κατηγορίες:
Φυσικά, οι κωδικοί σφαλμάτων RTSP και οι μέθοδοι RTSP συνδέονται στενά με ορισμένα σφάλματα μόνο σε συγκεκριμένες μεθόδους.
κωδικός λάθους | αιτιολογική φράση | μέθοδος απόκρισης |
---|---|---|
100 | Να συνεχίσει | Ολα |
200 | Επιτυχία | Ολα |
201 | Δημιουργήθηκε | ΡΕΚΟΡ |
250 | Χαμηλό αποθηκευτικό χώρο | ΡΕΚΟΡ |
300 | Πολλαπλές επιλογές | Ολα |
301 | μετακινήθηκε για πάντα | Ολα |
302 | μετακινήθηκε προσωρινά | Ολα |
303 | Βλέπε Άλλα | Ολα |
305 | Χρήση διακομιστή μεσολάβησης | Ολα |
400 | Κακό αίτημα | Ολα |
401 | Ανεξουσιοδότητος | Ολα |
402 | Απαιτείται πληρωμή | Ολα |
403 | Απαγορευμένος | Ολα |
404 | Δεν βρέθηκε | Ολα |
405 | μη επιτρεπτή μέθοδος | Ολα |
406 | Μη αποδεκτό | Ολα |
407 | Απαιτείται έλεγχος ταυτότητας διακομιστή μεσολάβησης | Ολα |
408 | Αίτημα χρονικού ορίου | Ολα |
410 | Χαμένος | Ολα |
411 | Απαιτούμενο μήκος | Ολα |
412 | Η προϋπόθεση απέτυχε ΠΕΡΙΓΡΑΦΗ | ΡΥΘΜΙΣΗ |
413 | Αίτημα οντότητας πολύ μεγάλο | Ολα |
414 | Αίτημα-URI Πολύ μεγάλο | Ολα |
415 | Μη υποστηριζόμενος τύπος μέσου | Ολα |
451 | Μη έγκυρη παράμετρος | ΡΥΘΜΙΣΗ |
452 | Παράνομο αναγνωριστικό συνδιάσκεψης | ΡΥΘΜΙΣΗ |
453 | Δεν υπάρχει αρκετό εύρος ζώνης | ΡΥΘΜΙΣΗ |
454 | Η συνεδρία δεν βρέθηκε | Ολα |
455 | Η μέθοδος δεν ισχύει σε αυτήν την κατάσταση | Ολα |
456 | Το πεδίο κεφαλίδας δεν είναι έγκυρο | Ολα |
457 | Μη έγκυρο εύρος | ΠΑΙΖΩ |
458 | Η παράμετρος είναι μόνο για ανάγνωση | SET_PARAMETER |
459 | Δεν επιτρέπεται η συνολική λειτουργία | Ολα |
460 | Επιτρέπεται μόνο η συνολική λειτουργία | Ολα |
461 | Μη υποστηριζόμενη μεταφορά | Ολα |
462 | Ο προορισμός δεν είναι προσβάσιμος | Ολα |
500 | Εσωτερικό Σφάλμα Διακομιστή | Ολα |
501 | Δεν εφαρμόζεται | Ολα |
502 | κακή πύλη | Ολα |
503 | Μη διαθέσιμη υπηρεσία | Ολα |
504 | Πύλη Ώρα αναχώρησης | Ολα |
505 | Η έκδοση RTSP δεν υποστηρίζεται | Ολα |
551 | Η επιλογή δεν υποστηρίζεται | Ολα |
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁
αναφέρομαι σε:
Πρωτόκολλο ροής σε πραγματικό χρόνο—RTSP [λεπτομερής εξήγηση]
Κύρια αιτήματα και απαντήσεις RTSP από την αρχή 1
Λεπτομερής επεξήγηση του πρωτοκόλλου ροής μέσων RTSP