Techniques de diffusion vidéo sur l`Internet Streaming avec RTP/RTSP

Transcription

Techniques de diffusion vidéo sur l`Internet Streaming avec RTP/RTSP
ENS de Lyon
Cours réseaux 2004
Techniques de diffusion vidéo sur l’Internet
Streaming avec RTP/RTSP
Timothy BURK
([email protected])
Table des matières
1. Introduction.................................................................................................... 3
2. Streaming – Diffusion en temps réel............................................................... 3
2.1 Les techniques .......................................................................................... 3
2.2 Exemples .................................................................................................. 4
2.3 Comment ça marche ?............................................................................... 4
3. Le développement des protocoles................................................................... 5
3.1 Pourquoi est-ce qu’on n’utilise pas TCP ?................................................. 5
3.2 UDP – la base ........................................................................................... 5
3.3 Les protocoles nécessaire .......................................................................... 5
4. RTP................................................................................................................ 6
4.1 Propriétés .................................................................................................. 6
4.2 RTCP ........................................................................................................ 7
4.3 Mixer et Translator ................................................................................... 7
4.4 L’entête de RTP ........................................................................................ 8
5. RTSP.............................................................................................................. 8
5.1 Propriétés .................................................................................................. 8
5.2 On met tous ensemble ............................................................................... 9
6. Conclusion ..................................................................................................... 9
2
1. Introduction
Au début on a utilisé l’Internet pour partager et échanger des informations
textuelles. Dans les années quatre-vingt – avec l’apparition de machines plus en
plus puissantes – on commençait à l’utiliser aussi pour transmettre des contenus
multimédias et pour des transmissions an temps réel.
L’infrastructure des réseaux était construit pour des transmissions en paquets
indépendant du temps. La diffusion en temps réel nécessite d’un contrôle de flux
qui prend en compte les dépendances temporelles des paquets. Ces fonctions
n’étaient pas fournies par les anciennes techniques.
A la base des protocoles qui existait on a développé des protocoles avec des
fonctions de synchronisation de contenus en temps réel. Dans la suite on verra
lesquels sont les plus utilisés et je vais décrire le streaming en général et avec les
protocoles RTP et RTSP.
2. Streaming – Diffusion en temps réel
2.1 Les techniques
Diffusion vidéo/audio en temps réelle
Progressive streaming
True streaming
Téléchargement
Vidéo on demand
Live streaming
Il y a plusieurs façons pour faire une diffusion en temps réel, comme il est
indiqué dans le schéma ci-dessus.
Pour faire le streaming progressive l’utilisateur est obligé de télécharger le film.
La reproduction commence déjà pendant le téléchargement, mais on n’a pas la
possibilité de gérer le flux, c’est-à-dire d’avancer ou de rembobiner le film.
L’avantage c’est qu’on peut fournir les données en utilisant un serveur web avec
HTTP sans fonctionnements supplémentaire.
A l’autre coté il y a « true streaming », le vrai diffusion en temps réel, qui
permet soit des diffusions live, soit des diffusions « on demand ». Dans le cas de
true streaming les protocoles responsables (on verra lesquels) établissent une
3
connexion entre l’utilisateur et un serveur média qui permet de gérer le flux à
l’aide d’un protocole de contrôle. Comme ça l’utilisateur peut librement
avancer, rembobiner ou pauser le film comme il le veut.
2.2 Exemples
On demand streaming est utilisé pour diffuser des productions vidéo ou audio
précédemment enregistrés, par exemple les chaînes de télévision fournissent des
diffusions sélectionnées comme les actualités sur leurs pages web.
Live streaming permet de diffuser un programme d’un chaîne radio, un cours à
l’université ou une conférence audiovisuelle par Internet.
2.3 Comment ça marche ?
Les productions sont enregistré et traité. Après, pour les fournir sur le serveur
média, on doit les coder en utilisant un « codec » (= Encoder/Decoder). Le
codec permet le codage pour des débits différents, c’est-à-dire il code des
fichiers différents avec le même flux de données en différente qualité. La
technique de « sure streaming » permet également de fournir différentes qualités
dans le même fichier, après les protocoles de transmission peuvent choisir le
flux qui correspond le mieux au débit du lien.
Un stream contient toujours plusieurs flux de données : un flux vidéo, un flux
audio, un flux de texte etc. Les flux peuvent être stocké sur différentes machines
et les protocoles doivent être capable de les synchroniser pour la reproduction.
4
Celle-ci est lancer par le client, qui demande un film en cliquant un lien sur une
page web. Le serveur web donne la demande au serveur média qui va établir la
connexion avec le client et qui va transmettre les données. Le client s’occupe du
décodage et synchronise et reproduise les flux.
Quels sont alors ces protocoles qui fournissent les services nécessaires ?
3. Le développement des protocoles
3.1 Pourquoi est-ce qu’on n’utilise pas TCP ?
TCP permet d’établir des connections peer-to-peer et des transmissions très
fiable. Mais, dans le cas de perte des paquets – et c’est un cas courant – TCP va
les retransmettre. Les couches au-dessus devraient alors attendre toutes les
retransmissions et ça causerait des délais intolérables. Par contre on peut tolérer
la perte de quelques paquets pendant une transmission en temps réel. En plus,
TCP ne fourni pas assez de support pour des connexions multicast.
3.2 UDP – la base
Par contre, grâce à un mode de connexion non-fiable, UDP ne nécessite pas la
retransmission des paquets perdus. Un protocole de transport avec quelques
fonctions supplémentaires peut être mis en place au-dessus de UDP.
3.3 Les protocoles nécessaire
• IP/UDP
• RTP (RFC 1889, 1890)
• RTCP (RFC 1889, 1890)
• RTSP (RFC 2326)
• SDP (RFC 2327)
Les protocoles de base
Real Time Transport Protocol
Transmission de données en temps réel au
niveau de la couche transport.
Real Time Control Protocol
Mécanismes de contrôle pour RTP (QoS)
Real Time Streaming Protocol
Réglage de flux au niveau de la couche
application
Session Description Protocol
Gestion de plusieurs connexions en même
temps
5
• RSVP (RFC 2205-2210)
Resource Reservation Protocol
Situé dans la couche transport, il permet la
réservation du débit sur le lien
Aujourd’hui les plus utilisé par les géants comme Real ou Quicktime sont RTP
et RTSP. On va regarder les deux un peu plus en détail.
4. RTP
RTP a été standardisé en novembre 1995. Il est un protocole de la couche
transport pour la transmission en temps réel, c’est-à-dire le streaming.
4.1 Propriétés
Grâce au fait que RTP est basé sur UDP, il est complètement indépendant des
couches au-dessous. Un paquet RTP est caché dans un paquet UDP :
RTP ne fourni pas des mécanismes de contrôle de flux, la qualité der service est
alors garanti par les couches au-dessous.
La caractéristique de RTP ce sont les fonctions supplémentaires pour la
diffusion en temps réel :
Pour faciliter la gestion des flux, chaque flux (vidéo, audio, …) a sa propre
session RTP. Tous les paquets contiennent un numéro de séquence pour les
remettre en ordre et un tampon de temps pour synchroniser les différents flux.
6
4.2 RTCP
RTCP est défini dans les RFCs de RTP, mais il est quand même un protocole
séparé. En envoyant périodiquement des paquets de contrôle, il donne des
informations sur les participants d’une session RTP et sur la qualité du liens à
RTP. RTCP permet l’adaptation d’une diffusion en temps réel aux liens et débits
différent. Par exemple, si jamais le débit d’un lien baisse ou augmente pendant
une transmission, c’est RTCP qui va dire à RTP qu’il peut prendre un autre flux
de données avec une qualité adaptée.
4.3 Mixer et Translator
RTP utilise des équipements spéciaux pour garantir son fonctionnement. Les
mixers reçoivent des paquets et flux de différentes sources, il mélange les flux
dans l’ordre séquentiel et temporel en prenant en compte des débits plus bas.
Après ils fournissent le flux en temps réel à un réseau d’un débit beaucoup plus
bas. Un translator fonctionne comme « gateway » entre différents types de
réseau. Il peut se servir des mécanismes de cryptage pour des diffusions
cryptées.
7
4.4 L’entête de RTP
L’entête de RTP contient tous les informations pour fournir les services
mentionnés ci-dessus. Les champs les plus importants sont « payload type », qui
contient le nom du codec utilisé pour l’encodage, « sequence number », « time
stamp » et les identificateurs des machines sources SSRC et CSRC. CSRC n’est
que rempli par le mixers, si le flux vient de différentes sources. Dans ce cas
SSRC est l’adresse du mixer il même.
5. RTSP
Au-dessus de RTP dans la couche application on utilise bien souvent RTSP pour
contrôler le flux multimédia. RTSP a été standardisé en 1998 aujourd’hui il est
implémenté dans le plupart des logiciels de reproduction multimédia.
5.1 Propriétés
RTSP ne s’occupe pas du transport de données. C’est pourquoi il n’envoie que
des messages et pas des paquets. Ce qu’est HTTP est pour les pages web, c’est
RTSP pour les diffusions en temps réel. Il fonctionne comme « télécommande »
du réseau pour régler l’émission. RTSP fourni des messages pour établir une
connexion temps réel, pour lancer, pauser et arrêter le reproduction du film et
pour avancer ou rembobiner le film.
8
5.2 On met tous ensemble
La figure ci-dessus illustre le fonctionnement entier d’une diffusion vidéo sur
l’Internet :
Via HTTP le client demande un fichier multimédia du serveur web. Le serveur
web donne la demande au serveur média (les deux peuvent bien sûr être la
même machine). Le serveur média établi une connexion RTP basée sur UDP
pour la transmission des données et une connexion de réglage avec RTSP basée
sur TCP ou UDP vers le client. Après le client va – à partir des informations sur
le codec – décoder le flux. Client et serveur média communiquent dès
maintenant uniquement par RTSP pour gérer le flux.
6. Conclusion
Dans le domaine de diffusion en temps réel il existe une grande diversité de
protocoles et techniques. Le plus courant est l’utilisation de RTP et RTSP pour
réaliser true streaming.
9