Real Time Streaming Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
- portale informatica
m Correggo wikilink
 
(47 versioni intermedie di 33 utenti non mostrate)
Riga 1:
{{S|informaticaprotocolli di rete}}
{{IPstack}}
 
L{{'}}'''RTSP''', acronimo di '''''Real Time Streaming Protocol''''', è un [[protocollo di rete]] utilizzato in [[Sistema informatico|sistemi informatici]] di comunicazione ed intrattenimento rivolto al controllo di ''[[server]]'' per lo ''[[streaming]]'' [[Multimedialità#Multimedialità in rete|multimediale]]. Il protocollo serve a stabilire e gestire sessioni di ''streaming'' tra ''server'' e ''[[client]]''. I ''client'' inviano al ''media server'' comandi simili ad un [[videoregistratore]], come ''play'' o ''pause'', in modo da controllare in tempo reale la riproduzione dei file audio/video distribuiti dal ''server'' multimediale.
Il protocollo '''RTSP''' è stato sviluppato da [[RealNetworks]], [[Netscape Communications]], e [[Columbia University]].
 
L'RTSP ottimizza il flusso di dati.
Di per sé la trasmissione dei dati di ''streaming'' non è un compito definito nel protocollo RTSP. La maggior parte dei ''server'' RTSP si affida per la distribuzione di flussi multimediali al ''[[Real-time Transport Protocol]]'' (RTP) in unione al ''[[RTCP|Real-time Control Protocol]]'' ([[RTCP]]), anche se alcuni fornitori preferiscono implementare protocolli di trasporto brevettati: ad esempio, i ''server'' RTSP di [[RealNetworks]] utilizzano il ''[[Real Data Transport]]'' (RDT), di proprietà della RealNetworks stessa.
A differenza dell'[[Hyper Text Transfer Protocol|HTTP]] l'RTSP controlla il flusso dati con funzionalità concettualmente simili a quelle di un registratore.
 
Nel protocollo RTSP si gestiscono una o più sessioni dei protocolli RTP/RTCP (che invece si occupano della vera e propria trasmissione dello streaming e del controllo).
Il protocollo RTSP è stato sviluppato dal ''Multiparty Multimedia Session Control Working Group'' (''MMUSIC WG'') della ''[[Internet Engineering Task Force]]'' (''IETF''), ed è stato pubblicato nel 1998 come [[Request for Comments|RFC]] 2326 <ref>{{en}}RFC 2326, ''Real Time Streaming Protocol (RTSP)'', ''IETF'', 1998</ref>
La porta di comunicazione standard è la 554 e il protocollo di livello trasporto utilizzato è il TCP.
 
==Direttive==
La [[porta (reti)|porta]] di comunicazione standard è la 554.
Il protocollo prevede l'esistenza di un ''session identifier'' che viene utilizzato per tener traccia delle sessioni quando è necessario. In questo modo non è richiesta una connessione permanente di tipo [[Transmission Control Protocol|TCP]].
 
Qui sotto abbiamo le richieste RTSP di base. Alcune come ad esempio Options sono condivise con lo standard [[Hypertext Transfer Protocol|HTTP]].
 
; OPTIONS
: Una richiesta di tipo OPTIONS ritorna il tipo di richieste che il server accetterà.
 
; DESCRIBE
: Una richiesta di tipo DESCRIBE serve al client per ottenere informazioni sulla risorsa desiderata. Deve includere un RTSP URL (rtsp://...) e il tipo di dati di risposta che possono essere gestiti. La porta di default per il protocollo RTSP è 554 sia che si utilizzi TCP che UDP per il trasporto. La risposta include il presentation description, di solito utilizzando il formato SDP (Session Description Protocol).
<pre>C->S: DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 1
 
S->C: RTSP/1.0 200 OK
CSeq: 1
Content-Base: rtsp://example.com/media.mp4
Content-Type: application/sdp
m=video 0 RTP/AVP 96
a=control:streamid=0
a=range:npt=0-7.741000
a=length:npt=7.741000
a=rtpmap:96 MP4V-ES/5544
a=mimetype:string;"video/MP4V-ES"
a=AvgBitRate:integer;304018
a=StreamName:string;"hinted video track"
m=audio 0 RTP/AVP 97
a=control:streamid=1
a=range:npt=0-7.712000
a=length:npt=7.712000
a=rtpmap:97 mpeg4-generic/32000/2
a=mimetype:string;"audio/mpeg4-generic"
a=AvgBitRate:integer;65790
a=StreamName:string;"hinted audio track"
</pre>
 
; SETUP
: La richiesta di tipo SETUP specifica come un singolo flusso multimediale deve essere trasportato. Deve essere effettuata prima che una richiesta PLAY sia inviata. La richiesta contiene l'URL del flusso multimediale e i parametri di trasporto accettabili dal client per la trasmissione di dati. Il server creerà una nuova sessione RTSP e la risposta conterrà l'identificatore di sessione e i parametri di trasporto scelti dal server tra quelli proposti dal client.
<pre>C->S: SETUP rtsp://example.com/media.mp4/streamid=0 RTSP/1.0
CSeq: 2
Transport: RTP/AVP;unicast;client_port=8000-8001
 
S->C: RTSP/1.0 200 OK
CSeq: 2
Transport: RTP/AVP;unicast;client_port=8000-8001;server_port=9000-9001
Session: 12345678
</pre>
 
; PLAY
: Una richiesta di PLAY genererà la riproduzione di uno o più flussi multimediali utilizzando il meccanismo specificato nella richiesta di SETUP precedente. Le richieste di Play possono essere impilate inviando così richieste PLAY multiple. L'URL può essere di tipo aggregate (per riprodurre tutti i flussi multimediali disponibili), o di tipo singolo (per riprodurre solo uno specifico flusso). Può essere specificato un range di riproduzione. Se non viene specificato nessun range, lo stream viene riprodotto dall'inizio alla fine, o, nel caso in cui fosse stato messo in pausa, viene riprodotto dal punto che aveva raggiunto.
<pre>C->S: PLAY rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 4
Range: npt=5-20
Session: 12345678
 
S->C: RTSP/1.0 200 OK
CSeq: 4
Session: 12345678
RTP-Info: url=rtsp://example.com/media.mp4/streamid=0;seq=9810092;rtptime=3450012
</pre>
: Nel nostro caso di esempio il range indica che il video deve essere riprodotto a partire dal secondo 5 e fino al secondo 20.
 
; PAUSE
: Una richiesta di PAUSE blocca temporaneamente uno o tutti i flussi in corso, così possono essere ripresi in seguito con una richiesta di PLAY. La richiesta contiene l'URL del flusso che deve essere messo in pausa.
<pre>C->S: PAUSE rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 5
Session: 12345678
 
S->C: RTSP/1.0 200 OK
CSeq: 5
Session: 12345678
</pre>
 
; RECORD
: La richiesta RECORD può essere usata per inviare uno stream al server in modo che lo memorizzi.
 
; TEARDOWN
: La richiesta di TEARDOWN viene usata per terminare la sessione. Ferma tutti i media stream e libera tutti i dati relativi alla sessione sul server.
<pre>C->S: TEARDOWN rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 6
Session: 12345678
 
S->C: RTSP/1.0 200 OK
CSeq: 6
</pre>
 
==Applicazioni Client==
* [[GStreamer]]
* [[Media Player Classic]]
* [[MPlayer]]
* [[QuickTime]]
* [[RealPlayer]]
* [[Skype]]
* [[Spotify]]
* [[VLC media player]]
* [[Winamp]]
* [[Windows Media Player]]
* [[Xine]]
* [[MythTV]] via Freebox
* [[FFmpeg]]
 
==Note==
<references/>
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* [https://web.archive.org/web/20070306002838/http://www.rtsp.org/ RTSP.org], sito di riferimento per informazioni sul protocollo.
* ''RFC 2326, Real Time Streaming Protocol (RTSP).
* ''RFC 3550, RTP: A Transport Protocol for Real-Time Applications'', H. Schulzrinne e altri, memorandum.
* {{cita web|https://www.w3.org/2008/WebVideo/Fragments/wiki/RTSP_implementation|UA Server RTSP Communication - Media Fragments Working Group Wiki}}
 
{{IPstack}}
{{Portale|Telematica}}
 
[[Categoria:Protocolli livello applicazione]]
[[Categoria:Software real-time]]
 
[[ar:بروتوكول سريان المعلومات في الزمن الحقيقي]]
[[ca:Protocol de flux de dades en temps real]]
[[de:Real-Time Streaming Protocol]]
[[en:Real Time Streaming Protocol]]
[[es:RTSP]]
[[eu:RTSP]]
[[fi:RTSP]]
[[fr:Real Time Streaming Protocol]]
[[ja:リアルタイム・ストリーミング・プロトコル]]
[[ko:리얼타임 스트리밍 프로토콜]]
[[nl:Real Time Streaming Protocol]]
[[pl:Real Time Streaming Protocol]]
[[pt:RTSP]]
[[ru:RTSP]]
[[simple:Real Time Streaming Protocol]]
[[sk:Real Time Streaming Protocol]]
[[sv:Real Time Streaming Protocol]]
[[zh:RTSP]]