Streamovací protokol v reálném čase - Real Time Streaming Protocol
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
The Streamovací protokol v reálném čase (RTSP) je ovládání sítě protokol navržen pro použití v zábavních a komunikačních systémech k ovládání streamování médií servery. Protokol se používá pro vytváření a řízení mediálních relací mezi koncovými body. Vydání klientů mediálních serverů VHS stylové příkazy, jako např hrát si, záznam a pauza, pro usnadnění kontroly médií streamovaných ze serveru na klienta v reálném čase (Video On Demand) nebo z klienta na server (hlasový záznam).
Samotný přenos streamovaných dat není úkolem RTSP. Většina serverů RTSP používá Transportní protokol v reálném čase (RTP) ve spojení s Řídicí protokol v reálném čase (RTCP) pro doručování mediálního proudu. Někteří prodejci však implementují proprietární transportní protokoly. Serverový software RTSP od RealNetworks například používá také proprietární RealNetworks Skutečný přenos dat (RDT).
RTSP byl vyvinut společností RealNetworks, Netscape[1] a Columbia University s prvním návrhem předloženým IETF v roce 1996.[2] Byla standardizována Pracovní skupinou pro multimédia pro ovládání multimediálních relací (MMUSIC WG) Pracovní skupina pro internetové inženýrství (IETF) a zveřejněna jako RFC 2326 v roce 1998.[3] RTSP 2.0 publikováno jako RFC 7826 v roce 2016 jako náhrada RTSP 1.0. RTSP 2.0 je založen na RTSP 1.0, ale není zpětně kompatibilní jinak než v mechanismu vyjednávání základní verze.
Sada internetového protokolu |
---|
Aplikační vrstva |
Transportní vrstva |
Internetová vrstva |
Propojit vrstvu |
Směrnice protokolu
I když je to v některých ohledech podobné HTTP „RTSP definuje řídicí sekvence užitečné při ovládání přehrávání multimédií. Zatímco HTTP je bez státní příslušnosti, RTSP má stav; identifikátor se používá v případě potřeby ke sledování souběžných relací. Stejně jako HTTP používá RTSP protokol TCP k udržování spojení typu end-to-end a zatímco většina řídicích zpráv RTSP je odesílána klientem na server, některé příkazy cestují opačným směrem (tj. Ze serveru na klienta).
Zde jsou uvedeny základní požadavky RTSP. Některé typické HTTP požadavky, stejně jako požadavek MOŽNOSTI, jsou také k dispozici. Výchozí transportní vrstva číslo portu je 554[3] pro oba TCP a UDP, přičemž toto se zřídka používá pro požadavky na kontrolu.
- MOŽNOSTI
- Požadavek OPTIONS vrací typy požadavků, které server přijme.
C-> S: OPTIONS rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 1 Vyžadovat: implicitní přehrávání Proxy-Vyžadovat: gzipped-messagesS-> C: RTSP / 1.0 200 OK CSeq: 1 Veřejné: POPIS , NASTAVENÍ, TEARDOWN, PLAY, PAUSE
- POPSAT
- Požadavek DESCRIBE obsahuje RTSP URL (rtsp: // ...) a typ dat odpovědi, se kterými lze manipulovat. Tato odpověď obsahuje popis prezentace, obvykle v Protokol popisu relace (SDP). V popisu prezentace je mimo jiné uveden seznam mediálních proudů ovládaných agregovanou adresou URL. V typickém případě je každý jeden stream médií pro streamování zvuku a videa. Adresy URL mediálního streamu se získávají buď přímo z ovládacích polí SDP, nebo se získají připojením ovládacího pole SDP k agregované URL.
C-> S: DESCRIBE rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 2S-> C: RTSP / 1.0 200 OK CSeq: 2 Content-Base: rtsp: //example.com/media.mp4 Typ obsahu: aplikace / sdp Délka obsahu: 460 m = video 0 RTP / AVP 96 a = ovládání: streamid = 0 a = rozsah: npt = 0-7,741000 a = délka: npt = 7,741000 a = rtpmap: 96 MP4V- ES / 5544 a = mimetype: string; "video / MP4V-ES" a = AvgBitRate: integer; 304018 a = StreamName: string; "naznačená stopa videa" m = audio 0 RTP / AVP 97 a = ovládání: streamid = 1 a = rozsah: npt = 0-7,712000 a = délka: npt = 7,712000 a = rtpmap: 97 mpeg4-generic / 32000/2 a = mimetype: string; "audio / mpeg4-generic" a = AvgBitRate: integer; 65790 a = StreamName : string; "naznačená zvuková stopa"
- ZALOŽIT
- Požadavek NASTAVENÍ určuje, jak musí být přenesen jeden mediální proud. To je nutné provést před odesláním požadavku PLAY. Požadavek obsahuje adresu URL mediálního streamu a specifikátor přenosu. Tento specifikátor obvykle zahrnuje místní port pro příjem RTP data (audio nebo video) a další pro RTCP data (meta informace). Odpověď serveru obvykle potvrdí zvolené parametry a vyplní chybějící části, například vybrané porty serveru. Před odesláním agregovaného požadavku na přehrávání musí být každý mediální stream nakonfigurován pomocí SETUP.
C-> S: SETUP rtsp: //example.com/media.mp4/streamid=0 RTSP / 1.0 CSeq: 3 Transport: RTP / AVP; unicast; client_port = 8000-8001S-> C: RTSP / 1,0 200 OK CSeq : 3 Transport: RTP / AVP; unicast; client_port = 8000-8001; server_port = 9000-9001; ssrc = 1234ABCD Relace: 12345678C-> S: SETUP rtsp: //example.com/media.mp4/streamid=1 RTSP / 1.0 CSeq: 3 Transport: RTP / AVP; unicast; client_port = 8002-8003 Relace: 12345678S-> C: RTSP / 1,0 200 OK CSeq: 3 Transport: RTP / AVP; unicast; client_port = 8002-8003; server_port = 9002- 9003; ssrc = 1234ABCD relace: 12345678
- HRÁT SI
- Požadavek PLAY způsobí přehrání jednoho nebo všech mediálních streamů. Požadavky na přehrávání lze skládat odesláním více požadavků PLAY. Adresa URL může být agregovaná adresa URL (pro přehrávání všech mediálních streamů) nebo jediná adresa URL mediálního proudu (pro přehrávání pouze tohoto proudu). Lze zadat rozsah. Pokud není zadán žádný rozsah, stream se přehrává od začátku a přehrává až do konce, nebo pokud je stream pozastaven, je obnoven v místě, kde byl pozastaven.
C-> S: PLAY rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 4 Rozsah: npt = 5-20 Session: 12345678S-> C: RTSP / 1.0 200 OK CSeq: 4 Session: 12345678 RTP- Informace: url = rtsp: //example.com/media.mp4/streamid=0; seq = 9810092; rtptime = 3450012
- PAUZA
- Požadavek PAUSE dočasně zastaví jeden nebo všechny mediální streamy, takže jej lze později obnovit s požadavkem PLAY. Požadavek obsahuje adresu URL agregovaného nebo mediálního streamu. Parametr rozsahu v požadavku PAUSE určuje, kdy se má pozastavit. Když je parametr rozsahu vynechán, pauza nastane okamžitě a na neurčito.
C-> S: PAUSE rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 5 Session: 12345678S-> C: RTSP / 1.0 200 OK CSeq: 5 Session: 12345678
- ZÁZNAM
- Tato metoda iniciuje záznam řady mediálních dat podle popisu prezentace. Časové razítko odráží čas začátku a konce (UTC). Pokud není uveden žádný časový rozsah, použijte počáteční nebo koncový čas uvedený v popisu prezentace. Pokud relace již byla zahájena, okamžitě začněte nahrávat. Server rozhodne, zda uložit zaznamenaná data pod URI požadavku nebo jiným URI. Pokud server nepoužívá identifikátor URI požadavku, měla by být odpověď 201 a obsahovat entitu, která popisuje stavy požadavku a odkazuje na nový prostředek, a hlavičku umístění.
C-> S: RECORD rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 6 Session: 12345678S-> C: RTSP / 1.0 200 OK CSeq: 6 Session: 12345678
- OZNÁMIT
- Metoda HLÁSENÍ slouží dvěma účelům:
- Při odeslání z klienta na server ANNOUNCE odešle na server popis prezentace nebo mediálního objektu identifikovaného adresou URL požadavku. Při odesílání ze serveru na klienta ANNOUNCE aktualizuje popis relace v reálném čase. Pokud je do prezentace přidán nový mediální proud (např. Během živé prezentace), měl by být znovu odeslán celý popis prezentace, nikoli pouze další komponenty, aby bylo možné komponenty odstranit.
C-> S: OZNAM rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 7 Datum: 23. ledna 1997 15:35:06 GMT relace: 12345678 Typ obsahu: aplikace / sdp Délka obsahu: 332 v = 0 o = mhandley 2890844526 2890845468 IN IP4 126.16.64.4 s = SDP Seminar i = A Seminář o protokolu popisu relace u = http: //www.cs.ucl.ac.uk/staff/M.Handley/sdp.03 .ps [email protected] (Mark Handley) c = IN IP4 224.2.17.12/127 t = 2873397496 2873404696 a = recvonly m = audio 3456 RTP / AVP 0 m = video 2232 RTP / AVP 31S-> C: RTSP / 1,0 200 OK CSeq: 7
- ROZTRHAT
- K ukončení relace se používá požadavek TEARDOWN. Zastaví všechny mediální streamy a uvolní všechna data související s relací na serveru.
C-> S: TEARDOWN rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 8 Relace: 12345678S-> C: RTSP / 1.0 200 OK CSeq: 8
- GET_PARAMETER
- Požadavek GET_PARAMETER načte hodnotu parametru prezentace nebo streamu uvedeného v identifikátoru URI. Obsah odpovědi a odpovědi je ponechán na implementaci. GET_PARAMETER bez těla entity lze použít k testování živosti klienta nebo serveru („ping“).
S-> C: GET_PARAMETER rtsp: //example.com/media.mp4 RTSP / 1,0 CSeq: 9 Content-Type: text / parameters Session: 12345678 Content-Length: 15 packets_received jitterC-> S: RTSP / 1,0 200 OK CSeq : 9 Délka obsahu: 46 Typ obsahu: text / parametry přijaté pakety: 10 chvění: 0,3838
- SET_PARAMETER
- Tato metoda požaduje nastavení hodnoty parametru pro prezentaci nebo stream specifikovaný URI.
C-> S: SET_PARAMETER rtsp: //example.com/media.mp4 RTSP / 1,0 CSeq: 10 Délka obsahu: 20 Typ obsahu: text / parametry barparam: barstuffS-> C: RTSP / 1,0 451 Neplatný parametr CSeq: 10 Délka obsahu: 10 Typ obsahu: text / parametry barparam
- REDIRECT
- REDIRECT požadavek informuje klienta, že se musí připojit k jinému umístění serveru. Obsahuje povinnou hlavičku Umístění, která označuje, že klient by měl vydávat žádosti o tuto adresu URL. Může obsahovat parametr Range, který označuje, kdy se přesměrování projeví. Pokud chce klient pokračovat v odesílání nebo přijímání médií pro tento identifikátor URI, MUSÍ vydat požadavek TEARDOWN pro aktuální relaci a NASTAVENÍ nové relace na určeném hostiteli.
S-> C: REDIRECT rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 11 Umístění: rtsp: //bigserver.com: 8001 Rozsah: hodiny = 19960213T143205Z-
- Vložená (prokládaná) binární data
- Určité návrhy brány firewall a další okolnosti mohou server přinutit prokládat metody RTSP a streamovat data. Toto prokládání by se mělo obecně vyhnout, pokud to není nutné, protože komplikuje provoz klienta a serveru a ukládá další režii. Prokládaná binární data BY MĚLA být použita pouze v případě, že je RTSP přenášen přes TCP. Streamovaná data, jako jsou pakety RTP, jsou zapouzdřena znakem dolaru ASCII (24 hexadecimálně), za kterým následuje jednobajtový identifikátor kanálu, za nímž následuje délka zapouzdřených binárních dat jako binární dvoubajtové celé číslo v pořadí bajtů v síti. Data proudu následují bezprostředně poté, bez CRLF, ale včetně záhlaví protokolu vyšší vrstvy. Každý $ blok obsahuje přesně jednu datovou jednotku protokolu vyšší vrstvy, např. Jeden RTP paket.
C-> S: SETUP rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 3 Transport: RTP / AVP / TCP; interleaved = 0-1S-> C: RTSP / 1.0 200 OK CSeq: 3 Datum: 5. června 1997 18:57:18 GMT Transport: RTP / AVP / TCP; prokládané = 0-1 Session: 12345678C-> S: PLAY rtsp: //example.com/media.mp4 RTSP / 1.0 CSeq: 4 Session: 12345678S -> C: RTSP / 1,0 200 OK CSeq: 4 Session: 12345678 Datum: 05 Jun 1997 18:59:15 GMT RTP-Info: url = rtsp: //example.com/media.mp4; seq = 232433; rtptime = 972948234S-> C: $ 00 {2 byte length}} {"length" bytes data, w / RTP header} S-> C: $ 00 {2 byte length}} {"length" bytes data, w / RTP header} S- > C: $ 01 {2 byte length} {"length" bytes RTCP packet}
Hodnotit adaptaci
RTSP pomocí RTP a RTCP umožňuje implementaci přizpůsobení rychlosti.[4]
Implementace
Server
- Streamovací server Darwin: Verze serveru QuickTime Streaming s otevřeným zdrojovým kódem spravovaná společností Apple.
- Feng: Lean and mean streaming server with focus on rfc compliance.
- GStreamer založený server RTSP a klient.
- Server Helix DNA: RealNetworks „streamovací server. Dodává se v otevřeném i chráněném provedení.
- Univerzální server Helix: RealNetworks komerční streamovací server pro multimediální klienty streamující RTSP, RTMP, iOS, Silverlight a HTTP
- LIVE555 liveMedia / openRTSP: Otevřený zdroj C ++ serverové a klientské knihovny používané ve známých klientech jako VLC a mplayer.
- Nimble Streamer podporuje vstup RTSP pull a ohlašování s výstupem přehrávání prokládaného TCP.
- pvServer: Dříve nazývaný PacketVideo Streaming Server, jedná se o streamovací serverový produkt společnosti Alcatel-Lucent.
- Streamovací server QuickTime: Streamovací server Apple s uzavřeným zdrojem, který je dodáván se serverem Mac OS X.
- VideoLAN: Přehrávač médií s otevřeným zdrojovým kódem a streamovací server.
- Windows Media Services: Microsoft streamovací server dříve součástí Windows Server , který používá RTSP upravený pomocí Rozšíření Windows Media
- Streamovací modul Wowza: Víceformátový streamovací server pro RTSP / RTP, RTMP, MPEG-TS, ICY, HTTP (Živý přenos HTTP, Dynamické streamování HTTP, Hladké streamování, MPEG-DASH ), WebRTC
- Youtube: Dostupné možnosti streamování při prohlížení webu prostřednictvím mobilní verze HTTPS na počítači.
- Motion_ (surveillance_software)
Mnoho kamerový systém / Bezpečnostní kamery, často volané IP kamery, také podporují streamování RTSP, zejména s ONVIF profily G, S, T.
Klient
- Astra
- kučera (počínaje verzí 7.20.0–9. února 2010[5])
- FFmpeg[6]
- GStreamer
- JetAudio
- LIVE555 liveMedia / openRTSP: Otevřený zdroj C ++ serverové a klientské knihovny používané ve známých klientech jako VLC a mplayer.
- Přehrávač médií Classic
- MPlayer
- MythTV přes Freebox
- QuickTime
- Pravý hráč
- Skype
- Spotify
- Přehrávač médií VLC
- Winamp
- Windows přehrávač médií
- xine
- ZoneMinder
- Motion_ (surveillance_software)
Reference
- ^ InfoWorld Media Group, Inc. (2. března 1998). InfoWorld. InfoWorld Media Group, Inc. str. 18. ISSN 0199-6649.
- ^ Rafael Osso (1999). Příručka rozvíjejících se komunikačních technologií: příští desetiletí. CRC Press. p. 42. ISBN 978-1-4200-4962-6.
- ^ A b RFC 2326, Protokol streamování v reálném čase (RTSP), IETF, 1998
- ^ Santos, Hugo; Cruz, Rui Santos; Nunes, Mário Serafim (2010), „Techniky přizpůsobení rychlosti pro WebTV“, Ohodnoťte techniky přizpůsobení pro WebTV, Přednášky Ústavu pro počítačové vědy, sociální informatiku a telekomunikační inženýrství, 40, s. 161–168, doi:10.1007/978-3-642-12630-7_19, ISBN 978-3-642-12629-1
- ^ cURL - Změny
- ^ "Dokumentace FFmpeg". Projekt FFmpeg. 11. září 2012. Oddíl 20.19. Citováno 2012-09-11.
externí odkazy
- „Informace a aktualizace protokolu streamování v reálném čase“. Archivovány od originál dne 06.03.2007., centrální informační úložiště o RTSP.
- „Tunelování RTSP a RTP přes HTTP“. Archivovány od originál dne 01.05.2013.„Standardní řešení, které pomáhá RTSP pracovat prostřednictvím bran firewall a webových serverů proxy
- "Managed Media Aggregation using Rtsp and Rtp „Prochází vývojářem implementací standardů RtspClient a RtspServer.