Streaming Francois Preghenella 1. Le Streaming Le streaming est un signal qui est envoyé compressé sur Internet ou sur réseau local. Les entreprises peuvent visualiser la séquence grâce à un logiciel généralement appelé « player ». Le « player » est un programme spécial qui décompresse les données sur un ordinateur de bureau. Il peut soit être intégré au navigateur web soit être télécharger sur Internet pour être utilisé séparément. Grâce à la technologie du streaming, l’utilisateur n’a pas à attendre la fin du téléchargement souvent long du fichier pour le visionner. On peut donc écouter une séquence sans l’avoir totalement téléchargée sur son ordinateur. 2. Les différents types de streaming Il existe deux grandes sortes de diffusion : La diffusion passive, dans laquelle un film est envoyé par un serveur et visualisé par un ou plusieurs clients, et la vidéo à la demande (VOD) pour laquelle chaque client demande son propre flux. 2.1. La diffusion passive : La diffusion passive est un mode de diffusion ou le streaming est géré par le serveur. Le client n'a aucun contrôle sur le serveur, et doit par exemple s'abonner à un groupe multicast pour recevoir le flux. Ce type de diffusion nécessite un serveur capable d'envoyer les données sur le réseau, en utilisant un protocole tel que l'UDP multicast ou le RTP. La diffusion est assurée par le serveur et c’est le client qui doit s’adapter au serveur. Les clients n’ont pas d’action directe sur le serveur et ne peuvent pas par exemple avancer ou se déplacer dans une vidéo. De plus lorsqu’un client s’abonne à un groupe multicast par exemple, il recevra le même flux que tous les autres membres du groupe multicast. Tous les clients regarderont le flux en même temps et simultanément. Ce mode de transmission streaming est donc souvent utilisé pour du streaming temps réel pour la diffusion de conférences par exemple. Nous pouvons faire remarquer que des logiciels comme VLS ou le stream output de VLC assure ce mode de diffusion. Du côté client, il faut un lecteur qui supporte ces protocoles. Un logiciel tel que VLC est par exemple adapté à cette fonction 2.2. La diffusion active ou Vidéo à la demande Pour la Vidéo à la Demande, aucun serveur de diffusion spécifique n'est requis, mais le client doit être capable de voir le flux en temps réel au lieu de le télécharger intégralement avant de commencer à le regarder. Un protocole simple tel qu'http est suffisant pour la Vidéo à la Demande, de sorte que vous pouvez vous contenter de mettre votre vidéo sur un serveur web, et d'utiliser un client intelligent capable de le visualiser en temps réel. Nous pouvons donc simplement utiliser un serveur web tel que Apache ou Caudium afin de mettre à disposition des visiteurs des fichiers vidéo. En utilisation normale, le visiteur devra attendre d’avoir le fichier entièrement téléchargé sur son poste pour commencer à lire la vidéo. Si le client possède un client intelligents, il pourra commencer a regarder son fichier vidéo avant que celui-ci soit entièrement enregistrer sur son poste. Le logiciel VLC peut facilement assurer cette tache par exemple. Il est intéressant de remarquer que la taille de la bande passante de la liaison entre le serveur et le client doit être supérieure à la bande passante moyenne de votre film (taille / durée) afin de ne pas avoir de blocage ou de problèmes de diffusion. Streaming Audio Page 2 2.3. Qu'est-ce que le Multicast? Le Multicast est une technologie permettant à un serveur (vidéo dans notre cas) d'optimiser la diffusion des flux vidéos sur le réseau. Concrètement, les utilisateurs désirant recevoir le flux vidéo doivent s'abonner auprès du serveur. Les routeurs vont ensuite factoriser les flux transportés afin, par exemple de ne transporter qu'une seule fois le flux de routeur en routeur jusqu'à ce que les utilisateurs soient atteignables par deux routeurs différents. Dans ce cas, le flux est alors transmis aux deux routeurs en n'ayant transporté qu'une seule fois les données jusqu'à présent. Le principal frein à l'utilisation massive du multicast vient du fait que les routeurs doivent supporter cette technologie, ce qui n'est malheureusement pas le cas de l'ensemble des infrastructures constituant l'Internet. Un exemple concret du Multicast sur l'Unicast : Sur ce premier schéma vous pouvez constater que le serveur va envoyer 3 fois le même flux. La technique employée pour la diffusion du flux est l'Unicast. Il est clair que ce type de diffusion risque de surcharger rapidement le réseau emprunté lorsque le nombre de personnes abonnées au flux augmente. On doit alors baisser la qualité de la vidéo si l'on souhaite pourvoir la partager avec le nombre souhaité d'utilisateurs. Streaming Audio Page 3 Le Multicast permet au contraire de factoriser le flux transmis sur le réseau: A l'inverse de l'Unicast, le Multicast permet à l'émetteur d'envoyer qu'une seule fois le flux vidéo au premier routeur. Ce dernier, suivant ses tables de routage et les adresses des utilisateurs abonnés au flux qu'il possède en mémoire va soit envoyer un seul exemplaire du flux si les utilisateurs sont atteignables par le même routeur soit le propager sur plusieurs routeurs si ce n'est pas le cas. Cette technique permet de réduire l'encombrement des réseaux. Streaming Audio Page 4 3. Comment le streaming vidéo fonctionne-t-il? Les fichiers sont envoyés sur Internet ou sur le réseau local d'une entreprise en utilisant TCP/IP comme protocole de transport. On utilise la plupart du temps le streaming pour partager des fichiers vidé préenregistrés (VOD : Video On Demand). Toutefois, ceux-ci peuvent provenir aussi de sources directes où la source vidéo est encodée dans un format compressé (ou format de streaming) grâce à des "encodeurs" ou"transcodeurs" puis directement envoyée (mode Live). Les fichiers sont ensuite envoyés sur le réseau à partir de serveur Web particulier supportant le Multicast pour envoyer à un groupe d'utilisateurs la même vidéo évitant ainsi une consommation excessive de la bande passante. Les serveurs de streaming supportent aussi les demandes Unicast ou un flux vidé correspond à un utilisateur. 3.1. Pourquoi utiliser le streaming vidéo ? Le streaming vidéo est de plus en plus utilisé par les entreprises et établissements universitaires. Cela permet notamment de réaliser des conférences, assemblées générales ou causeries qui peuvent dans de nombreux cas être couplées à d'autres applications : • Affichage de slides ou d'images pour suivre facilement la conférence, • Affichage de tableaux communs où chacun peut écrire à sa guise pour partager des idées avec les autres abonnés au service. L'utilisation du streaming est un formidable vecteur de communication. Son impact est plus important que les médias traditionnels (Papier, mails, conférences). Le retour sur investissement est évident et est engendré par les réductions de coûts (peu de ressources humaines et de matériel monopolisés). C'est un outil idéal de communication et de diffusion rapide (pour les services Marketing en particulier). Exemple avec l’utilisation de VideoLan : A l'aide de la Vidéo à la Demande (VOD, Video On Demand), l'utilisateur peut démarrer la vidéo, mettre en pause, avancer et reculer, ... Il est évident qu'il s'agit d'un must pour la diffusion vidéo et le rêve de chaque utilisateur. La VOD nécessite d'importantes ressources système sur le serveur et sur le réseau. La VOD fonctionne en unicast, pas en multicast: cela signifie que le les ressources Streaming Audio Page 5 nécessaires sur le serveur et sur le réseau sont directement proportionnelles au nombre de clients Le principe de la solution de VOD VideoLAN est extrèmement simple. L'idée est de faire du streaming HTTP, c'est à dire diffuser un flux vidéo MPEG encapsulé dans de l'HTTP. La régulation du débit entre le client et le serveur se fait automatiquement par le protocole TCP. Avec le protocole HTTP 1.1, il est possible de se déplacer dans un fichier téléchargé, et c'est ce que nous utilisons pour permettre le déplacement dans la vidéo. Sur le serveur de VOD, vous avez besoin d'un serveur Web. Vous pouvez par exemple utiliser un serveur Linux utilisant le serveur Apache. Vous pouvez rendre vos fichier MPEG-1, MPEG-2 ou MPEG-4 / DivX disponibles pour les clients sur le serveur web. Par exemple, si vous avez un serveur web dont le nom DNS est serveurlocal; sur ce serveur, nous mettons un fichier MPEG video1.mpg, qui sera disponible pour les clients à l'URL http://serveurlocal/video1.mpg. Un client n’aura plus qu’à taper sur son poste la commande: vlc -vvv http://serveurlocal/video1.mpg (sous linux) ou lancer vlc et se connecter à http://serveurlocal/video1.mpg (sous windows) Streaming Audio Page 6