Article de reference

Protocole de diffusion en continu en temps réel

Le protocole de diffusion en temps réel ( RTSP ) est un protocole réseau de niveau application conçu pour le multiplexage et la mise en paquet des flux de transport multimédias ...

protocole réseau de niveau application conçu pour le multiplexage et la mise en paquet des flux de transport multimédias (tels que les médias interactifs , la vidéo et l'audio ) sur un protocole de transport approprié .

Le protocole RTSP est utilisé dans les systèmes de divertissement et de communication pour contrôler les serveurs de diffusion multimédia .

Ce protocole est utilisé pour établir et contrôler les sessions multimédias entre les points de terminaison.

Les clients des serveurs multimédias émettent des commandes telles que lecture , enregistrement et pause pour faciliter le contrôle en temps réel du flux multimédia du serveur vers un client ( vidéo à la demande ) ou d'un client vers le serveur ( enregistrement vocal ).

RealNetworks , Netscape et l'Université Columbia . Une première ébauche a été soumise à l'IETF en octobre 1996 par Netscape et Progressive Networks , puis Henning Schulzrinne, de l'Université Columbia, a soumis « RTSP՚ » (« RTSP prime ») en décembre 1996. Les deux ébauches ont été fusionnées en vue de leur normalisation par le groupe de travail MMUSIC (Multiparty Multimedia Session Control Working Group) de l' IETF, et d'autres ébauches ont été publiées par ce groupe. Le protocole RTSP a été publié sous la référence RFC 2326 en 1998.

RTSP 2.0 a été publié en tant que RFC 7826 en 2016 pour remplacer RTSP 1.0. La version 2.0 est basée sur la version 1.0 mais n'est pas rétrocompatible (sauf en ce qui concerne le mécanisme de négociation de version de base).

protocole de transport en temps réel (RTP) conjointement au protocole de contrôle en temps réel (RTCP) pour la diffusion des flux multimédias. Cependant, certains fournisseurs implémentent des protocoles de transport propriétaires. Le logiciel serveur RTSP de RealNetworks , par exemple, utilise également le protocole propriétaire Real Data Transport (RDT) de RealNetworks .

Directives du protocole

Bien que similaire à HTTP à certains égards , RTSP définit des séquences de contrôle utiles pour la lecture multimédia. Contrairement à HTTP qui est sans état , RTSP possède un état : un identifiant permet de suivre les sessions simultanées si nécessaire. Comme HTTP, RTSP utilise TCP pour maintenir une connexion de bout en bout. Si la plupart des messages de contrôle RTSP sont envoyés du client au serveur, certaines commandes circulent dans l'autre sens (du serveur au client).

Vous trouverez ci-dessous les requêtes RTSP de base. Certaines requêtes HTTP classiques , comme la requête OPTIONS, sont également disponibles. Le numéro de port par défaut de la couche transport est 554 pour TCP et UDP , mais ce dernier est rarement utilisé pour les requêtes de contrôle.

OPTIONS

Une requête OPTIONS renvoie les types de requêtes que le serveur acceptera.
S: OPTIONS rtsp://example.com/media.mp4 RTSP/1.0 CSeq: 1 Require: implicit-play Proxy-Require: gzipped-messages S->C: RTSP/1.0 200 OK CSeq: 1 Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE " C->S : OPTIONS rtsp://example.com/media.mp4 RTSP/1.0 CSeq : 1 Exigence : jeu implicite Proxy-Require : messages compressés S->C : RTSP/1.0 200 OK CSeq : 1 Public : DESCRIPTION, INSTALLATION, DÉMONTAGE, JEU, PAUSE 

DÉCRIRE

Une requête DESCRIBE inclut une rtsp://URL RTSP et le type de données de réponse pouvant être traitées. Cette réponse contient la description de la présentation, généralement au format SDP ( Session Description Protocol ). Entre autres, la description de la présentation liste les flux multimédias contrôlés par l'URL agrégée. Dans la plupart des cas, il existe un flux multimédia pour l'audio et un pour la vidéo. Les URL des flux multimédias sont soit obtenues directement à partir des champs de contrôle SDP, soit en ajoutant ces champs à l'URL agrégée.
S: DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0 CSeq: 2 S->C: RTSP/1.0 200 OK CSeq: 2 Content-Base: rtsp://example.com/media.mp4 Content-Type: application/sdp Content-Length: 460 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\" " C->S : DÉCRIRE rtsp://example.com/media.mp4 RTSP/1.0 CSeq : 2 S->C : RTSP/1.0 200 OK CSeq : 2 Base de contenu : rtsp://example.com/media.mp4 Type de contenu : application/sdp Longueur du contenu : 460 m=vidéo 0 RTP/AVP 96 a=contrôle:streamid=0 a=plage:npt=0-7,741000 a=longueur:npt=7,741000 a=rtpmap:96 MP4V-ES/5544 a=mimetype:string;"video/MP4V-ES" a=DébitMoyenne:entier;304018 a=StreamName:string;"piste vidéo suggérée" m=audio 0 RTP/AVP 97 a=contrôle:streamid=1 a=plage:npt=0-7,712000 a=longueur:npt=7,712000 a=rtpmap:97 mpeg4-generic/32000/2 a=mimetype:string;"audio/mpeg4-generic" a=DébitMoyenne:entier;65790 a=StreamName:chaîne;"piste audio suggérée" 

INSTALLATION

Une requête SETUP spécifie le mode de transport d'un flux multimédia. Cette configuration est obligatoire avant l'envoi d'une requête PLAY. La requête contient l'URL du flux multimédia et un spécificateur de transport. Ce dernier inclut généralement un port local pour la réception des données RTP (audio ou vidéo) et un autre pour les données RTCP (métadonnées). La réponse du serveur confirme généralement les paramètres choisis et complète les informations manquantes, telles que les ports utilisés par le serveur. Chaque flux multimédia doit être configuré à l'aide d'une requête SETUP avant l'envoi d'une requête de lecture agrégée.
S: SETUP rtsp://example.com/media.mp4/streamid=0 RTSP/1.0 CSeq: 3 Transport: RTP/AVP;unicast;client_port=8000-8001 S->C: RTSP/1.0 200 OK CSeq: 3 Transport: RTP/AVP;unicast;client_port=8000-8001;server_port=9000-9001;ssrc=1234ABCD Session: 12345678 C->S: SETUP rtsp://example.com/media.mp4/streamid=1 RTSP/1.0 CSeq: 3 Transport: RTP/AVP;unicast;client_port=8002-8003 Session: 12345678 S->C: RTSP/1.0 200 OK CSeq: 3 Transport: RTP/AVP;unicast;client_port=8002-8003;server_port=9002-9003;ssrc=1234ABCD Session: 12345678 " C->S : CONFIGURATION rtsp://example.com/media.mp4/streamid=0 RTSP/1.0 CSeq : 3 Transport : RTP/AVP ; monodiffusion ; port client = 8000-8001 S->C : RTSP/1.0 200 OK CSeq : 3 Transport : RTP/AVP ; monodiffusion ; port client : 8000-8001 ; port serveur : 9000-9001 ; ssrc : 1234ABCD Session : 12345678 C->S : CONFIGURATION rtsp://example.com/media.mp4/streamid=1 RTSP/1.0 CSeq : 3 Transport : RTP/AVP ; monodiffusion ; port client = 8002-8003 Session : 12345678 S->C : RTSP/1.0 200 OK CSeq : 3 Transport : RTP/AVP ; monodiffusion ; port client : 8002-8003 ; port serveur : 9002-9003 ; ssrc : 1234ABCD Session : 12345678 

JOUER

Une requête PLAY permet de lire un ou plusieurs flux multimédias. Il est possible d'empiler plusieurs requêtes PLAY. L'URL peut être l'URL globale (pour lire tous les flux multimédias) ou l'URL d'un flux spécifique (pour lire uniquement ce flux). Une plage de valeurs peut être spécifiée. Si aucune plage n'est spécifiée, le flux est lu du début à la fin ; s'il est mis en pause, la lecture reprend là où elle a été interrompue.
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 " C->S : LECTURE rtsp://example.com/media.mp4 RTSP/1.0 CSeq : 4 Plage de valeurs : npt=5-20 Session : 12345678 S->C : RTSP/1.0 200 OK CSeq : 4 Session : 12345678 Informations RTP : url=rtsp://example.com/media.mp4/streamid=0;seq=9810092;rtptime=3450012 

PAUSE

Une requête PAUSE interrompt temporairement la lecture d'un ou de tous les flux multimédias, qui pourront être repris ultérieurement par une requête PLAY. Cette requête contient l'URL d'un flux multimédia ou d'un ensemble de flux. Le paramètre « range » d'une requête PAUSE spécifie la durée de la pause. Si ce paramètre est omis, la pause est immédiate et permanente.
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 " 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 

ENREGISTRER

Cette méthode lance l'enregistrement de données multimédias conformément à la description de la présentation. L'horodatage correspond à l'heure de début et de fin (en UTC). Si aucune plage horaire n'est spécifiée, l'heure de début ou de fin indiquée dans la description de la présentation est utilisée. Si la session a déjà commencé, l'enregistrement démarre immédiatement. Le serveur détermine s'il convient de stocker les données enregistrées sous l'URI de la requête ou sous une autre URI. Si le serveur n'utilise pas l'URI de la requête, la réponse doit être de type 201 et contenir une entité décrivant l'état de la requête et faisant référence à la nouvelle ressource, ainsi qu'un en-tête Location.
S: RECORD rtsp://example.com/media.mp4 RTSP/1.0 CSeq: 6 Session: 12345678 S->C: RTSP/1.0 200 OK CSeq: 6 Session: 12345678 " C->S : ENREGISTREMENT rtsp://example.com/media.mp4 RTSP/1.0 CSeq : 6 Session : 12345678 S->C : RTSP/1.0 200 OK CSeq : 6 Session : 12345678 

ANNONCER

La méthode ANNOUNCE remplit deux objectifs :

Lorsqu'elle est envoyée du client au serveur, la commande ANNOUNCE transmet au serveur la description d'une présentation ou d'un objet multimédia identifié par l'URL de la requête. Lorsqu'elle est envoyée du serveur au client, ANNOUNCE met à jour la description de la session en temps réel. Si un nouveau flux multimédia est ajouté à une présentation (par exemple, pendant une présentation en direct), la description complète de la présentation doit être renvoyée, et non seulement les composants ajoutés, afin de permettre la suppression de ces derniers.

RTSP sur HTTP

Le protocole RTSP sur HTTP a été défini par Apple en 1999. Il entrelace les données vidéo et audio RTP dans la connexion de commande RTSP (telle que définie dans la RFC 2326), puis envoie cette connexion via deux connexions HTTP : une connexion GET permanente et une connexion POST permanente.

Cette méthode est également utilisée dans la norme ONVIF pour les caméras IP et peut être combinée avec HTTPS pour une transmission vidéo et audio sécurisée et cryptée.

Cryptage RTSP et RTSPS

Il existe plusieurs méthodes différentes pour chiffrer les messages de commande RTSP et les données vidéo et audio RTP.

RTSP 2.0 (RFC 7826) définit plusieurs méthodes de chiffrement et introduit une nouvelle rtsps://URL. Nombre d'entre elles ont été intégrées aux clients et serveurs RTSP 1.0 (RFC 2326).

  • URL RTSP (utilisation de l' rtsps://URL) - Cette méthode utilise un socket TLS (port 322 par défaut) pour établir une connexion chiffrée entre le client RTSP et le serveur RTSP. La vidéo et l'audio peuvent ensuite être envoyés de deux manières :
    • Vidéo/Audio TCP - La vidéo et l'audio RTP sont envoyés entrelacés avec les commandes RTSP via la connexion TLS déjà chiffrée.
    • Vidéo/audio UDP et Multicast-UDP - la vidéo et l'audio RTP sont cryptés à l'aide du protocole Secure RTP (SRTP) et envoyés en parallèle à la connexion TLS RTSPS .
  • RTSP sur HTTPS : cette méthode entrelace les données vidéo et audio RTP dans la connexion de commande RTSP (telle que définie dans la RFC 2326), puis envoie cette connexion via une paire de connexions HTTPS chiffrées. Elle utilise par défaut le port 443.

L'IANA a réservé le rtsps://préfixe d'URL et le port 322 pour RTSPS. En septembre 2024, RTSP sur HTTPS a été implémenté dans plusieurs caméras IP ONVIF et RTSPS (utilisant l' rtsps://URL) a été implémenté par les caméras de vidéosurveillance Axis et Bosch, FFmpeg , GStreamer , MediaMTX, Ant Media Server et SharpRTSP.

Adaptation du taux

RTSP utilisant RTP et RTCP permet la mise en œuvre de l'adaptation du débit.

Mises en œuvre

Serveur

De nombreuses caméras de vidéosurveillance /de sécurité, souvent appelées caméras IP , prennent également en charge le flux RTSP, en particulier celles dotées des profils ONVIF G, S, T.

Client

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index