Quelques mots sur la technologie de streaming Nicolas MENECEUR
[email protected] L’enregistrement vidéo de cette présentation est disponible sur http://www.rap.prd.fr/smil/technologie_streaming/presentation.smi 1
Quelques mots sur la technologie de streaming Présentation du streaming ? Les Protocoles RTP/RTCP pour le transport temps réel RTSP pour la gestion d’une session de streaming SMIL pour l’enrichissement des médias
Les Acteurs Étude de cas : un service de VoD
2
Quelques mots sur la technologie de streaming Présentation du streaming ? Les Protocoles RTP/RTCP pour le transport temps réel RTSP pour la gestion d’une session de streaming SMIL pour l’enrichissement des médias
Les Acteurs Étude de cas : un service de VoD
3
Définition Qu’est ce que le streaming ? stream = flux streaming = technique de transfert de données sous forme d'un flux régulier et continu.
Permet de diffuser et de visualiser des contenus multimédia en temps réel. A quoi ça sert ? formation à distance Web TV et radios Web Télésurveillance VoD (Video On Demand) … 4
Chaîne de production Les différentes étapes
5
Principe de diffusion Comment ça marche ?
6
Principe de diffusion Algorithme de transmission côté serveur Contrôle des paquets arrivés ; Si ( paquets perdus ) { Vérification du taux de remplissage du buffer ; Si ( assez de données ) { Réemission des paquets perdus ; } Sinon { Tolérance des pertes ; } } 7
Principe de diffusion Mise en mémoire tampon côté client
Compensation pour le délai du réseau (la gigue) : Mise en mémoire tampon Délai avant la lecture (2-5 secondes) 8
Principe de diffusion Détail de la mémoire tampon
La mémoire tampon compense la gigue
9
Principe de diffusion Adaptation dynamique aux variations de débit
Nécessite la connaissance de l’état des connexions un encodage vidéo à multiples débits
Évite que la mémoire tampon se vide en cas de congestion
10
Modes de diffusion La diffusion unicast
11
Modes de diffusion La diffusion multicast
12
Streaming et Pseudo Streaming Streaming 1
Navigateur
Serveur Web
2
Lecteur multimédia
Pseudo Streaming Navigateur
1 Serveur Web
2 3
Serveur de Streaming
lecture quasi-instantanée à la volée avec tamporisation en mémoire nécessite un serveur de streaming utilise les protocoles de diffusion RTP/RTCP sur UDP
Lecteur multimédia
3
téléchargement progressif avec copie des média sur disque pas de serveur de streaming utilise le protocole de diffusion HTTP sur TCP
Avec le Pseudo Streaming, la vidéo est lue au fur et à mesure qu’elle est téléchargée ce qui donne un aspect de streaming au client 13
Streaming et Pseudo Streaming Comparaison fonctions de contrôle du média
utilise RTP/RTCP et RTSP
contrôle hors bande
clairement ciblé vers le multimédia
STREAMING
support du multicast et du multidébit
non ciblé vers le multimédia
PSEUDO STREAMING
pas de support du multicast et du multidébit
pas de fonction de contrôle du média
utilise HTTP
contrôle dans la bande
14
Quelques mots sur la technologie de streaming Présentation du streaming ? Les Protocoles RTP/RTCP pour le transport temps réel RTSP pour la gestion d’une session de streaming SMIL pour l’enrichissement des médias
Les Acteurs Étude de cas : un service de VoD
15
Quelques mots sur la technologie de streaming Présentation du streaming ? Les Protocoles RTP/RTCP pour le transport temps réel RTSP pour la gestion d’une session de streaming SMIL pour l’enrichissement des médias
Les Acteurs Étude de cas : un service de VoD
16
RTP/RTCP Pourquoi un autre protocole de transport ? Besoin : séquencement des paquets horodatage des paquets identification de participants surveillance de l'état de la connexion Contrainte de temps réel = TCP inadapté TCP exige la fiabilité à 100% TCP favorise la fiabilité au dépend des délais TCP existe seulement en version unicast UDP : service de transport non fiable pas de connaissance du taux de perte impossibilité de reconstituer le flux et de synchroniser les média 17
RTP/RTCP RTP/RTCP (RFC 1889) : Protocoles au dessus d’UDP adaptés au besoin temps réel RTP (Realtime Transport Protocole) pour l’acheminement des données RTCP (Realtime Transport Control Protocole) pour échanger des messages de contrôle Conçu pour les communications multipoint Comportent les champs nécessaires pour : reconstituer le flux identifier le type de l’information transportée contrôler l’arrivée des paquets à destination 18
RTP/RTCP RTP (Realtime Transport Protocole) RTP fournit les outils nécessaires aux applications: séquencement et horodatage RTP reconstitue l’ordre des paquets, synchronise les média, détecte la perte de paquets
19
RTP/RTCP L’en-tête d’un paquet RTP en-tête IP
0
2
V
3
P X
en-tête UDP
4
8
en-tête RTP
9
Données audio ou vidéo
16
32
CC
M PT Numéro de Séquence Horodatage (TimeStamp) Identification de la Source de Synchronisation (SSRC) Identificateur(s) de la (des) Source(s) Contributrice(s) (CSRC) Données audio ou vidéo
20
RTP/RTCP RTCP (Real-time Transport Control Protocole) Protocole de contrôle qui accompagne RTP pour mesurer les performances Pas de garantie (≠ protocole de réservation des ressources sur le réseau) Transmission périodique de paquets de contrôle (rapports) à tous les participants dans une session RTP Plusieurs genres de rapports possibles : Receiver Report (RR), Sender Report (SR), Source Description (SDES), … Receiver Report (RR) : Statistiques du récepteur pour l’émetteur sur la qualité de transmission : taux de pertes, RTT (temps aller-retour), gigue (variance des délais de transit)
La connaissance de ces paramètres permet d’ajouter de la redondance en fonction des pertes d’adapter la mémoire tampon en fonction de la gigue 21
RTP/RTCP L’en-tête d’un paquet RTCP en-tête IP
0
2
V
en-tête UDP
3
P
8
RC
en-tête RTCP
Rapport(s)
16
PT SSRC de l’émetteur Rapport(s)
32
Longueur
22
RTP/RTCP À propos des rapports RR (Receiver Report) 0
2
V
3
P
8
RC
16
PT (RR=201) SSRC de l’émetteur
32
Longueur
SSRC 1 de la source % de pertes Nombre cumulé de paquets perdus Numéro de séquence le plus élevé reçu Gigue Horodatage du dernier SR (LSR : Last SR) Délai depuis le dernier SR (DSLR : Delay since last SR) SSRC 2 de la source … 23
RTP/RTCP À propos des rapports RR (Receiver Report)
Calcul de la gigue (Jitter) D = variation du délai d’arrivée D(t) = | (tR2 - tR1) - (tS2 - tS1) | = | (tR2 - tS2) - (tR1 - tS1) | J(t) = déviation moyen de D J(t) = J(t-1) + [ (D(t) + J(t-1))/16 ]
24
RTP/RTCP RTP/RTCP (RFC 1889) : résumé Protocoles au dessus d’UDP adaptés au besoin temps réel RTP (Real-time Transport Protocole) pour l’acheminement des données
RTCP (Real-time Transport Control Protocole) pour échanger des messages de contrôle
Un canal RTP et un canal RTCP par média (audio, vidéo, …) Deux numéros de ports voisins RTP Æ port pair RTCP Æ port impair immédiatement supérieur Par exemple : vidéo (port UDP 12040) et contrôle vidéo (port UDP 12041) audio (port UDP 12042) et contrôle audio (port UDP 12043)
Problème pour passer certains pare feu 25
La technologie streaming Présentation du streaming ? Les Protocoles RTP/RTCP pour le transport temps réel RTSP pour la gestion d’une session de streaming SMIL pour l’enrichissement des médias
Les Acteurs Étude de cas : un service de VoD
26
Quelques mots sur la technologie de streaming RTSP : Real Time Streaming Protocol (RFC 2326) Protocole client-serveur au niveau applicatif Permet de contrôler la distribution des flux RTP Ciblé vers le multimédia (contrairement à HTTP) Fonctionnalités fournies au client : url pour rechercher un média sur un serveur commandes pour avancer, rembobiner, pause, … dans le média Les requêtes de contrôle RTSP utilisent TCP avec un numéro de port réservé (port 554) S’appuie sur RTP/RTCP pour les diffusions
27
RTSP Un protocole à états gérés par des méthodes
28
RTSP Scénario
streaming server
29
RTSP Exemple de métafichier Twister
30
RTSP Fonctionnement Navigateur Web
HTTP GET Session Description
Serveur Web
SETUP PLAY
Lecteur multimédia
RTP audio RTCP audio RTP video RTCP audio
Serveur de streaming
PAUSE TEARDOWN 31
RTSP Exemple d’un échange client-serveur CÆS: SÆC: CÆS: SÆC: CÆS: SÆC: CÆS: SÆC:
SETUP rtsp://serveur.exemple.com/twister/fichier_audio RTSP/1.0 Transport: RTP/UDP; unicast; client-port=3056-3057 RTSP/1.0 200 1 OK; Session: 4231 Transport: RTP/UDP; unicast; client-port=3056-3057; server-port=5000-5001 PLAY rtsp://serveur.exemple.com/twister/fichier_audio RTSP/1.0 Session: 4231; Range: npt=0RTSP/1.0 200 2 OK; Session: 4231 PAUSE rtsp://serveur.exemple.com/twister/fichier_audio RTSP/1.0 Session: 4231; Range: npt=37 RTSP/1.0 200 3 OK; Session: 4231 TEARDOWN rtsp://serveur.exemple.com/twister/fichier_audio RTSP/1.0 Session: 4231 RTSP/1.0 200 4 OK; Session: 4231
32
Quelques mots sur la technologie de streaming Présentation du streaming ? Les Protocoles RTP/RTCP pour le transport temps réel RTSP pour la gestion d’une session de streaming SMIL pour l’enrichissement des médias
Les Acteurs Étude de cas : un service de VoD
33
SMIL Synchronized Multimedia Integration Language Langage basé sur XML Recommandation du W3C (http://www.w3.org/AudioVideo)
« RichMedia » et interactivité Intégration et synchronisation de différents media Les média sont référencés dans un seul document (.SMIL)
Lecteurs compatibles : RealPlayer, QuickTime, GRiNS, …
Éditeurs : LimSee, SMIL Composer, RealSlideShow, GRiNS, …
34
SMIL Exemple
35
SMIL Exemple : principe
1. disposition des régions
2. synchronisation des média vidéo
Zone A
Zone B slides texte
texte
Zone C temps
36
SMIL Exemple : syntaxe