2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C 、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍RTSP协议 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
Dimitte tempus: 2024-07-06 12:22:00
Hoc articulum sine permissione transmittantur! ! !
RTSP, plenum nomen Real Time Streaming Protocol
Protocollum influentia realis tempus est applicatio tabulatorum protocolli in systemate TCP/IP protocollo.
Documentum officiale de RTSP protocollo est RFC2326, nexus documenti:RFC2326-Verus Tempus Gratis Protocollum (RTSP)。
Syntaxis et operatio RTSP protocolli referuntur. HTTP/1.1
, textus-fundatur protocollum qui charactere ISO10646 utitur et utf-8 descriptam habet;TCP
, default port554
Si RTSP-super-HTTP effosso, defectus TCP portus 8080 est; imperium imperat.
RTP protocol: plenum nomen
Real-time Transport Protocol
, protocollum transmissionis reali-time, nuntiatum est a Multimedia Transmissione Societas IETF operantis anno 1996 in RFC 1889 . Protocollum RTP retinet vexillum forma fasciculi ad auditum tradendum et video per interretialem. Constructum est in UDP protocollo.
RTCP protocol: plenum nomen
Real-time Transport Control Protocol
, Protocollum Transporto real-time, adhibitum cum RTP. RTP portu par-numerato UDP utitur ; RTCP et RTP simul concurrunt. Praecipuum eius munus est feedback de qualitate servitii praeparata a RTP providere.
Discrimen inter RTSP protocollum et protocollum HTTP:
RTSP statutum est, et mandata eius semper in ordinem mittuntur, et unum mandatum semper opus est ut ante aliud mandatum mittatur. HTTP status est.
In protocollo rtsp utitur port 554, and http uses port LXXX.
Petitiones RTSP ab utroque servo et cliente mitti possunt, cum petitiones HTTP tantum ab cliente mitti possunt.
Communiter RTSP modos includunt: OPTIONES, DESCRIBE, ERGO, LUDO, SEDES, TELA, DENUNTIO, GET_PARAMETER et SET_PARAMETER, etc. Usus instructionum haec sunt:
OPTIONS
: Cliens obtinet modum servo a servo fultum. Res publica non ponitur in servo;DESCRIBE
: Cliens obtinet descriptionem instrumentorum instrumentorum quae domicilio deservire debent, ubiAccept
Forma descriptio ager cificat;SETUP
: Cliens orat ut servo sessionem condat et tradendae praeparet. Informationes petitio maxime includit protocollum transmissionis et numerum portus clientis;PLAY
: Cliens actuose notificat servo ut satus mittens notitia utens mechanism ab ERECTUS specificatorum.inRange
ager significat initium et finem temporis playback (realis temporis amnis dolor est plerumqueRange: npt=0.000-
), cum multae LUDO petitiones venerint, ministrans LUDO postulationes faciet et eas continue exequetur, hoc est, exspectandum est primum LUDO tempus ut perficiat antequam procedamus ad secundum nuntium LUDO.PAUSE
: Cliens petit ut ministri instrumentis effusis ad tempus suspendatur.potest transireRange
Modulus stat ad tempus determinatum, vel rivum morari potes.RECORD
: RECORD servo notificat clientem instrumentorum communicationis socialis memoria iuxta descriptionem priorem incipiet. intimestamp
Agri initium et finem temporum reflectunt (UTC). Si hic campus non adest, initium vel finis temporis a instrumentis instrumentorum descriptione adhibebitur. Si sessio iam incepit, statim incipit commemorare.request-URI
Deinde vel alius URI. Si servo-URI petitionem non utatur, responsio 201 (Created) debet esse et inesse entitatem et locum capitis designans statum petitionis et novae subsidii referens.TEARDOWN
: Cliens rogat ut URL certum mittat rivum ac facultates emissiones referat.REDIRECT
: Ad petitionem redirect, server notificat clientem quod alteri servo loco coniungere debet. Locus mandati caput continet, quod indicat clientem petere debere pro hoc domicilio. Continere potest modulum Range, indicando cum relatio effectum habebit. Si client mittere vel recipere media huic URI vult, cliens petitionem TEARDOWN pro hodierna sessione ferat et ERECTUS novae sessionis in certo exercitu.ANNOUNCE
: Cliens cum servo mittit, significat exhiberi descriptioni vel instrumenti obiecti, quod URL postulatio notificatum estGET_PARAMETER
: GET_PARAMETER peto ut parametri valorem recuperare pro repraesentatione seu rivulo in URI descriptis. Summa responsorum et responsorum relinquitur exsequenda. GET_PARAMETER sine corpore entientis vitam clientis vel servientis probare potest.SET_PARAMETER
: Haec methodus petit ut modulo valores demotae vel URL certae fluminis constituatur. Petitiones unam tantum modulum contineant, clienti permittens diiudicare cur peculiaris postulatio incassum sit. Si plures ambitus postulatio contineat, omnes parametri feliciter exponi possunt, et cultor tantum pro hac rogatione agere debet. Servo permittere debet parametros saepe ad eundem valorem constituendum, moduli autem valorem non mutat. Nota: Media parametris effusis ponendus est utens imperio ERECTUS. Commodum est firewalls ad parametri modum setup translationis ad ERECTUS.Summa 11 RTSP methodi superius allata sunt, inter qu;SETUP
、PLAY
、TEARDOWN
Tria praecepta in processu RTSP necessaria sunt, et aliae methodi non sunt necessariae.etANNOUNCE
、GET_PARAMETER
、SET_PARAMETER
Tria imperia mitti possunt a servo ad clientem vel a servo ad clientem.
RTSP duo genera epistularum habet: nuntii postulationis et nuntiis responsionis. Mandatum postulationis refert ad nuntium rogatum missum ab clientelam servo, et responsum refert ad responsionem a servo clientis.
RTSP nuntius petitio consistit in tribus partibus: linea petitio, petitio capitis et petitio corporis. Inter eos, recta petitio requiritur, dum petitio capitis et petitio corporis sunt ad libitum secundum condicionem specificam.
rn
) Perfice.方法
: RTSP methodus supra allata est. Eligendi comprehendo, describam, ERECTUS, LUDO, SEDIS, TERO, ETC.请求URI
: Identificat instrumentorum subsidiorum operandorum, plerumque in forma rtsp://example.com/path/to/stream.协议版本
: Protocollum versionis indicat RTSP quod petitio sequitur, usuallyRTSP/1.0
or *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 nuntius postulationis consistit in tribus partibus: linea status, responsio capitis et responsio corporis. Inter eos, status lineae requiritur, dum responsio caput et responsio corpus ad libitum secundum condicionem specificam pertinent.
协议版本
: Protocollum versionis indicat RTSP quod responsio sequitur, plerumque RTSP/1.0 vel RTSP/2.0.状态码
: tres digiti, ut: 200, 401, 500, etc., indicant processus effectus rogationis. Prima digita respondet categoriae significat: 2xx successum indicat, 4xx errorem clientem indicat, et 5xx servo errorem indicat.状态文本
: Brevis descriptio textus exprimens peculiarem significationem in codice status respondentis, ut: OK, Alienum, etc.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
Responsum caput nuntii RTSP aliquos agros continebit. Nonnulla campis communibus adhibita sunt.
SETUP
In responsione electa, cum client Sessio ID obtinet, Sessio ID in futuro operatione postulans epistulas pro Sessione habebitUtere wireshark capere fasciculos retis instrumentorum RTSP fluentium. Potes videre processum generalem hoc modo esse:
1. Client mittitOPTIONS
Modum, servo respondeo;
2. Client mittitDESCRIBE
Modum, servo respondeo;
3. Client mittitSETUP
Modum, servo respondeo;
2. Client mittitPLAY
Modum, servo respondeo;
2. Client mittitTEARDOWN
Modum, servo respondeo;
Integra fluxus fasciculus talis est:
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
Sequentia singula RTSP methodum ac responsionem in verbo superiore resolvent.
Praesto sunt modi a servo:
Cliens mittit Eligendi modum et usumCSeq
Ad petitionem serie numero definire, utereUser-Agent
cognoscere proprium procuratorem;
Et server utens Respondeo dicendum quod ad petitionemCSeq
Ad designandum quod petitio respondetur, utereDate
specificare diem,Public
Determinat modum provisum.
Ut a servortsp://192.168.3.225:554/wbc
descriptio rei mediae, ubiAccept
Ager speciem descriptionis designat:
Cliens mittit describendi modum et ususCSeq
Ad petitionem serie numero definire, utereUser-Agent
cognosce procuratorem tuum;Accept
Ager descriptionem format ut SDP designat;
In server utens Respondeo dicendum quod ad hanc petitionem CSeq
Ad designandum quod petitio respondetur, utereDate
specificare diem,Content-Type
Contentum genus indicat esse SDP,Content-Length
Specificare contentus longitudo.
Notice:
1. Pro nonnullis quae nomen usoris et tesserae requirunt, server processus authenticas methodum describet. Si LICENTIA authenticas notitias deferri non potest aut authenticas deficit, server responsionem cum errore numeri 401 reddet. Cum cliens 401 responsionem accipit, LICENTIA in notis usoris authenticas notitias generare debet et iterum describere. Si authenticas succedit, minister responsionis redit informationem deferens SDP.
2. Notitia SDP reddita a servo in posteriori articulo inspicietur.
Cliens e servis petit ut sessionem instituat et ad transmissionem paret. Informationes petitio maxime includit protocollum transmissionis et numerum portus clientis;
Cliens mittit ERECTUS modum et usumCSeq
Ad petitionem serie numero definire, utereUser-Agent
cognosce procuratorem tuum;Transport
ager significat transmissionem acceptam protocollum RTP/AVP et portum (hic portus RTP est 55320 et portus RTCP 55321);
In server utens Respondeo dicendum quod ad hanc petitionem CSeq
Ad designandum quod petitio respondetur, utereDate
specificare diem,Transport
RTP/AVP, destinatio inscriptionis, fons inscriptionis, portus clientis (RTP est 55320, RTCP est 55321), portus servo (RTP est 6970, RTCP est 6971);Session
Specificare sessionis ID.
Notice:
In hoc exemplo, RTP per UDP protocollum transmittitur. Aliquando, RTP per TCP transmittetur, deindeTransport
Agri variabunt. Posset sic:
客户端请求:Transport: RTP/AVP/TCP;unicast;interleaved=0-1
服务器响应:Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=24e4e500;mode="play"
RTP/AVP/TCP
Indicat RTP rivum per TCP transmissum. Cum valor hic apparet, nuntius campum client_port non habet;
interleaved=0-1
Repraesentat streamid, distinguens RTP streamid=0;
Cum signum amnis per TCP transmittitur, nexum TCP cum RTSP communicat, ideo novum connexionem constituere non oportet. Ut RTP, RTCP et RTSP protocolla distinguantur, adiciendum est caput identificatorium ager header hic ponitur, et tcphead est quatuor vocum sectio, forma talis est;
| magic number | channel number | embedded data length | data |
magic number
: 1 byte, certum to0x24
Est character$
indicans datam rtsp protocollo transmissam non esse;
channel number
: 1 byte, alveum ID, distinguens genus rivi, qui est amnis, de quo prius;
embedded data length
: 2 bytes indicans longitudinem amnis
data
: RTP Indicat / RTCP notitia packet
Cliens actuose notificat servo ut satus mittens notitia utens mechanism ab ERECTUS specificatorum.
Cliens fabula modum et usus mittitCSeq
Ad petitionem serie numero definire, utereUser-Agent
cognosce procuratorem tuum;Session
ager dat speciem sessionis ID;Range
Ager significat initium et finem temporis playback.
In server utens Respondeo dicendum quod ad hanc petitionem CSeq
Indica utra petitio respondeatur;Date
specificare diem;Range
Ager significat initium et finem temporis playback;Session
ager sessionem designat ID;RTP-Info
Ager RTP notitias codicis amnis mittendi describit, quales sunt seq et rtptime primi RTP conleci.
Cliens petit ut prohibere mittat certum flumen URL et facultates emissio cognata.
Cliens mittit TERDOWN modum et usumCSeq
Ad petitionem serie numero definire, utereUser-Agent
cognosce procuratorem tuum;Session
ager cificat sessionis ID.
In server utens Respondeo dicendum quod ad hanc petitionem CSeq
Indica utra petitio respondeatur;Date
Specificare diem.
RTSP responsio contenta plerumque continet 3 digiti integer responsionis codicem et rationem locutionis. Propositum locutionis est brevem textum descriptionis status notae reddere. Secundum differentiam primi digiti responsionis in codice, in quinque praedicamenta haec dividi potest;
Scilicet, RTSP errorum codes et methodi RTSP valde referuntur. Nonnulli errores tantum in certis modis urguere possunt.
Error code | causa sententia | responsum modum |
---|---|---|
100 | continue | Omnis |
200 | Success | Omnis |
201 | creatus | RECORD |
250 | Humilis in repono Space | RECORD |
300 | Multiplex electiones | Omnis |
301 | motus in perpetuum | Omnis |
302 | Motus ad tempus | Omnis |
303 | Vide Alia | Omnis |
305 | Usus proxy | Omnis |
400 | Quaestio mala | Omnis |
401 | cu | Omnis |
402 | Payment required | Omnis |
403 | vetitum | Omnis |
404 | Non Inventum | Omnis |
405 | Modus non Licitus | Omnis |
406 | Non acceptabile | Omnis |
407 | Proxy required | Omnis |
408 | Request timeout | Omnis |
410 | Gone | Omnis |
411 | Longitudo required | Omnis |
412 | Conditio Deficio PERSEQUOR | ERECTUS |
413 | Request Entity Nimis Larg | Omnis |
414 | Request-URI Nimis Long | Omnis |
415 | Media sine Type | Omnis |
451 | Aliquam parametri | ERECTUS |
452 | Conference illegalis Identifier | ERECTUS |
453 | Non satis Bandwidth | ERECTUS |
454 | Sessionem Not Found | Omnis |
455 | Modus non valet in hoc re publica | Omnis |
456 | Header Field non ratum | Omnis |
457 | Aliquam dolor | PLAY |
458 | Parameter legitur-tantum | SET_PARAMETER |
459 | Subgenera Operatio non Licitus | Omnis |
460 | Tantum Subgenera Operatio Licitus | Omnis |
461 | Sine onerariam | Omnis |
462 | Destination Unreachable | Omnis |
500 | Internum Servo Error | Omnis |
501 | Non Implemented | Omnis |
502 | Malum Porta | Omnis |
503 | Service Unavailable | Omnis |
504 | Tempus ex Porta | Omnis |
505 | RTSP Version non suffulti | Omnis |
551 | Optionem non support | Omnis |
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁
refer ad:
Real-time stream protocol-RTSP [detailed]
Magister RTSP petitiones et responsiones de integro 1
Explicatio RTSP streaming instrumentorum protocol