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