[HOME PAGE] [STORES] [CLASSICISTRANIERI.COM] [FOTO] [YOUTUBE CHANNEL]

Protocol de flux de dades en temps real - Viquipèdia

Protocol de flux de dades en temps real

De Viquipèdia

El protocol de flux de dades en temps real (de l'anglès Real Time Streaming Protocol) estableix i controla un o molts fluxes sincrontizats de dades, ja siguin d'audio o de video. El RTSP actua com un comandament a distància mitjançant la xarxa per a servidors multimedia.

Taula de continguts

[edita] Descripció

El RTSP és un protocol no orientat a connexió, en lloc d'això el servidor manté una sessió associada a un identificador, en la majoria dels casos RTSP fa servir TCP per dades de control del reproductor i UDP per les dades d'audio i vídeo encara que també pot fer servir TCP en cas que sigui necessari. En el transcurs d'una sessió RTSP, un client pot obrir i tancar varies connexions de transport cap al servidor per tal de satisfer les necessitats del protocol.

De forma intencionada el protocol és similar en sintaxi i operació al HTTP de forma que els mecanismes d'expansió afegits al HTTP poden en molts casos afegir-se al RTSP, en qualsevol cas RTSP difereix en un nombre significatiu d'aspectes del HTTP:

  • RTSP introdueix nous mètodes i té un identificador de protocol diferent.
  • Un servidor RTSP necessita mantenir l'estat de la conexió al contratri del HTTP
  • Tant el servidor com el client poden llençar peticions.
  • Les dades son transportades per un protocol diferent

El protocol soporta les següents operacions:

Recuperar continguts multimedia del servidor: El client pot sol·licitar la descripció d'una presentació per HTTP o qualsevol altre mètode. Si la presentació és multicast, la descripció conté els ports i les adreces que seran fets servir. Si la presentació és unicast el client és el que proporciona el destí per motius de seguretat.

Invitació de un servidor multimedia a una conferencia: Un servidor pot ser invitat a unir-se a una conferencia existent en lloc de reproduir la presentació o gravar tot o una part del contingut. Aquest mode és util per aplicacions d'ensenyament distribuit on diferents parts de la conferència van prenent part en la discusió.

Adició multimèdia a una presentació existent: Particularment per presentacions en viu, útil si el servidor pot avisar al client sobre els nous continguts disponibles.

Imatge:udp_rtsp_cat.jpg

[edita] Propietats

RTSP té les següents propietats:

  • Extensible: nous métodes i paràmetres poden ser facilment afegits al RTSP
  • Segur: RTSP reutilitza mecanismes de seguretat web ja sigui als protocols de transport (TLS) o dins del mateix protocol. Totes les formes d'autentificació HTTP ja sigui bàsica o basada en resum són directament aplicables.
  • Independent del protocol de transport: RTSP pot fer servir indistintament protocols de datagrama no fiables (UDP) o datagrames fiables (RDP, no gaire extés) o un protocol fiable orientat a conexió com el TCP.
  • Capacitat multi-servidor: Cada fluxe multimedia dins d'una presentació pot residir en servidors diferents, el client automàticament estableix varies sessions concurrents de control amb els diferents servidors, la sincronització la duu a terme el nivell de transport.
  • Control de dispositius de gravació: El protocol pot controlar dispositius de gravació i reproducció.
  • Adecuat per aplicacions professionals: RTSP suporta resolució a nivell de frame mitjançant marques temporals SMPTE per permetre edició digital.

[edita] Peticions RTSP

Les peticions RTSP estan basades en peticions HTTP i generalment són enviades del client al servidor, les mes tipiques són;

[edita] DESCRIBE

Aquest mètode obté una descripció d'una presentació o del objecte multimèdia apuntat per una URL RTSP situat en un servidor. El servidor respon a aquesta petició amb una descripció del recurs sol·licitat, entre altres dades la descripció conté una llista dels fluxos multimèdia que seran necessaris per la reproducció. Aquesta sol·licitud/resposta constitueix la fase d'inicialització del RTSP.

Exemple:

Client->Servidor:

                 DESCRIBE rtsp://unservidor.com/uncontingut RTSP/1.0
                 Accept: application/sdp, application/rtsl, application/ mheg

Servidor->Client:

                 RTSP/1.0 200 OK
                 Content-Type: application/sdp
                 Content-Length: 376
                 i=Descripció del contingut¡
                 m=audio 3456 RTP/AVP 0
                 m=video 2232 RTP/AVP 31

[edita] SETUP

Especifica com serà transportat el flux de dades,la petició conté la url del flux multimèdia i una especificació de transport, aquesta especificació típicament inclou un port per rebre les dades (àudio o vídeo), i un altre per les dades RTCP (meta-informació).

El servidor respon confirmant els paràmetres escollits i omple les parts restants, com els ports escollits pel servidor. Cada flux de dades ha de ser configurat amb SETUP abans d'enviar una petició de PLAY.

Exemple:


Client->Servidor:

         SETUP rtsp://example.com/foo/bar/baz.rm RTSP/1.0
         Transport: RTP/AVP;unicast;client_port=4588-4589

Servidor->Client:

         RTSP/1.0 200 OK
         Session: 47112344
         Transport: RTP/AVP;unicast;
         client_port=4588-4589;server_port=6256-6257

[edita] PLAY

Una petició de PLAY provocarà que el servidor comenci a enviar dades dels fluxes especificats fent servir els ports configurats amb SETUP.

Exemple:

Client->Servidor:

       PLAY rtsp://unservidor.com/audio RTSP/1.0
       Session: 12345678


[edita] PAUSE

Atura temporalment un o tots els fluxos, de manera que puguin ser tornats a recuperar amb un PLAY posteriorment.

Exemple:

Client->Servidor:

          PAUSE rtsp://unservidor.com/video1 RTSP/1.0
          Session: 12345678

Servidor->Client:

          RTSP/1.0 200 OK

[edita] TEARDOWN

Atura l'entrega de dades per la URL indicada alliberant els recursos associats.

Exemple:

Client->Servidor:

          TEARDOWN rtsp://example.com/fizzle/foo RTSP/1.0
          Session: 12345678

Servidor->Client:

          RTSP/1.0 200 OK


[edita] Sessió RTSP

  • El client accedeix a la URL RTSP per tal d'obtenir el nom del servidor i el port.
  • Si el nom del servidor no està en format IP, el client fa una consulta DNS per obtenir l'adreça corresponent.
  • El client inicia una connexió TCP cap al servidor.
  • Quan la connexió ha estat correctament establerta, el client envia al servidor una petició OPTIONS. EL servidor retorna informació que pot incloure la versió de RTSP, la data, el número de sessió, el nom del servidor i els mètodes suportats.
  • El client envia una petició DESCRIBE per obtenir una descripció de la presentació. El servidor respon amb tots els valors d'inicialització necessaris per la presentació.
  • El client envia SETUP per cada flux de dades que es requereix reproduir. El SETUP especifica els protocols acceptats pel transport de les dades.
  • El client inicialitza els programes adequats requerits per reproduir la presentació.
  • El client envia una petició PLAY que informa al servidor que ara és el moment de començar a enviar dades.
  • Durant la sessió, el client periòdicament fa ping al servidor fent servir peticions SET_PARAMETER. Encara que la resposta sigui errònia el client la ignora tot informant al client que el servidor encara és actiu.
  • Quan la presentació termina o l'usuari la para, el client envia un SET_PARAMETER que conté les estadístiques de la sessió.
  • El client envia TEARDOWN per donar per terminada la connexió amb el servidor.

Imatge:RTSP_cat.jpg

[edita] Exemple

A continuació un exemple de l'utilització d'una sessió RTSP simple que controla múltiples streams.

Es tracta d'un client C que solicita una presentació a un servidor M. El vídeo s'emmagatzema en un contenidor d'arxius. El client ha obtingut una URL RTSP del contenidor d'arxius.

    C->M: DESCRIBE rtsp://foo/twister RTSP/1.0
          CSeq: 1
    M->C: RTSP/1.0 200 OK
          CSeq: 1
          Content-Type: application/sdp
          Content-Length: 164
          v=0
          o=- 2890844256 2890842807 IN IP4 172.16.2.93
          s=RTSP Session
          i=An Example of RTSP Session Usage
          a=control:rtsp://foo/twister
          t=0 0
          m=audio 0 RTP/AVP 0
          a=control:rtsp://foo/twister/audio
          m=video 0 RTP/AVP 26
          a=control:rtsp://foo/twister/video
    C->M: SETUP rtsp://foo/twister/audio RTSP/1.0
          CSeq: 2
          Transport: RTP/AVP;unicast;client_port=8000-8001
    M->C: RTSP/1.0 200 OK
          CSeq: 2
          Transport: RTP/AVP;unicast;client_port=8000-8001;
                     server_port=9000-9001
          Session: 12345678
    C->M: SETUP rtsp://foo/twister/video RTSP/1.0
          CSeq: 3
          Transport: RTP/AVP;unicast;client_port=8002-8003
          Session: 12345678
    M->C: RTSP/1.0 200 OK
          CSeq: 3
          Transport: RTP/AVP;unicast;client_port=8002-8003;
                     server_port=9004-9005
          Session: 12345678
    C->M: PLAY rtsp://foo/twister RTSP/1.0
          CSeq: 4
          Range: npt=0-
          Session: 12345678
    M->C: RTSP/1.0 200 OK
          CSeq: 4
          Session: 12345678
          RTP-Info: url=rtsp://foo/twister/video;
            seq=9810092;rtptime=3450012
    C->M: PAUSE rtsp://foo/twister/video RTSP/1.0
          CSeq: 5
          Session: 12345678
    M->C: RTSP/1.0 460 Only aggregate operation allowed
          CSeq: 5
    C->M: PAUSE rtsp://foo/twister RTSP/1.0
          CSeq: 6
          Session: 12345678
    M->C: RTSP/1.0 200 OK
          CSeq: 6
          Session: 12345678
    C->M: SETUP rtsp://foo/twister RTSP/1.0
          CSeq: 7
          Transport: RTP/AVP;unicast;client_port=10000
    M->C: RTSP/1.0 459 Aggregate operation not allowed
          CSeq: 7


[edita] Enllaços externs