streamming : architecture et serviceperso.univ-mlv.fr/present/supports/pdfing2m/streaminging...1 -...
TRANSCRIPT
1
Streamming : architecture et service
Dominique PRESENT
I.U.T. de Marne la Vallée
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Les protocoles temps réel• RSVP (Ressource ReSerVation Protocol) :
• utilisé par les applications temps réel pour réserver les ressources nécessaires au niveau des routeurs situés le long du chemin de transmission
• Une Règle de Contrôle (Policy Control) détermine si l'utilisateur à la permission administrative de faire de la réservation. Le contrôle d'admission (Admission Control) détermine si le nœud à suffisamment de ressource pour fournir la QoS demandée.
• RTP (Real-time Transport Protocol)– assure la reconstruction temporelle, la détection de perte, la sécurité et
l'identification du contenu. – travaille avec le protocole RTCP pour obtenir des feed-back concernant la
qualité de la transmission
– fournit un système d'horloge (timestamping), une numérotation des séquences et d'autres mécanismes pour prendre garde aux problèmes liés au temps.
– RTP tourne au-dessus de UDP
En-tête IPEn-tête UDP En-tête RTP Données vidéo temps-réel
IUT - Marne la Vallée streaming : architecture et services © D. Présent
RTCP (Real-Time Control Protocol)
– périodiquement des paquets RTCP envoie des informations sur la qualité du service délivrée. Travaille avec RTP.
– RTCP offre les services suivants : Contrôle de la congestion et monitoring de la QoS; Identification de la source ; Synchronisation inter-média ; Information de contrôle
RTSP (Real-Time Streaming Protocol)
– initie et commande à distance des flux multimédia stockés sur unserveur de données à travers un réseau IP.
– offre des fonctionnalités comme l'arrêt, l'avance rapide, la recherche avancée pour des flux vidéo et audio.
– Les données quant à elles sont transmises séparément en utilisant le plus souvent RTP.
Les protocoles temps réel
2
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Session multimédia « temps réel »
UDP
RTP RTCP
Application«temps réel»
Serveur « temps réel »
UDP
RTP
Application«temps réel»
Client
RTCP RSVP
1-réservation des ressources dans les routeurs à l ’établissement de la session2-transmission des données dans des paquets RTP
3-contrôle de la qualité de la session (débit, gigue, perte) par des paquets RTCP
RouteurRSVP
RouteurRSVP
RouteurRSVP
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Video en ligne : le streaming
• Les outils :– un logiciel de production audio/vidéo permettant le codage en
fonction du débit du réseau emprunté
– un serveur pour stocker les fichiers, établir et paramétrer la connexion avec le client
– un logiciel de lecture sur le poste client
Versions du fichier28Kb/s 56Kb/s 512Kb/s
serveur"streaming"
RTCInternetRouteur Routeur
Modem 56Kb/s
2
client
Buffer7Ko
3
1 - test de performance de la liaison2 - création d ’un buffer pouvant stocker « n secondes » de vidéo3 - transmission des paquets4 - visualisation « n secondes » après l ’arrivée du premier paquet
4
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Les outils de streaming : 4 éditeurs• Real Networks :
– RealProducer Plus pour le codage audio/vidéo– RealServer pour le service de streaming– RealPlayer pour la lecture des vidéo
• Microsoft :– Windows Media Encoder pour le codage audio/vidéo– Windows Media Services pour le service de streaming– Windows Media Player pour la lecture
• Quick Time :– QuickTime Streaming Server (incluant QTSS Publisher) pour le service
de streaming– QuickTime Broadcaster pour la production « live »– QuickTime Player ou QuickTime Pro pour la lecture
• Macromedia :– Flash Media Server pour le service de streaming– Flash 8 Video Encoder pour le codage audio/vidéo– Flash Player pour la lecture
3
IUT - Marne la Vallée streaming : architecture et services © D. Présent
fichier audio/vidéo avec Real Producer• A partir de fichiers : les fichiers doivent être aux formats audio
(.au ou .wav) ou vidéo (.avi). Les fichiers mpeg-1 à 3 et quickTime(nécessitent DirectX 6.0)
• A partir de sources : microphones, caméra vidéo
• Convertir le fichier en fichier RealMedia : avec RealProducerPlus en choisissant les paramètres de codage (débit, qualité,…)
• Transférer le fichier RealMedia sur un serveur RealServer• insérer les liens avec vos fichiers vidéo dans une page Web
Enregistrement « SureStream » : permet avec un seul fichier une lecture à des débits différents (ex.: 28Kb/s et 56Kb/s). Le fichier est ainsi lisible par d ’anciennes versions de RealPlayer.
IUT - Marne la Vallée streaming : architecture et services © D. Présent
L’infrastructure : Web + streaming
serveur"streaming" r é s e a u
client
serveurWeb
HubHub
Serveur « sreaming » : station bi-processeur Xéon + logiciel Hélix Producer
Serveur Web : station mono-processeur Pentium 3 + logiciel Apache
Station « administration » : station mono-processeur Pentium 3 encodeur Hélix Producerinterface d’administration RealNetwork en ligneéditeur HTML Dreamweaveréditeur SMIL SMIL Editor
administration
Station client : navigateur + lecteur de médias RealOne Player
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Le serveur Helix Universal Server
• Serveur de streamingpouvant être installé sur les plateformes Windows server, Windows station et Unix ;• nombreux médiascompatibles :
• Realnetworks : RealAudio (.rm), RealVideo (.rm, .rmvb), RealPix (.rp) et RealText (.rt) ;• Macromedia : Flash (.swf) ;• Microsoft : Windows Media (.asf, .wma, .wmv) ;• Apple : QuickTime (.mov) ;• Standards : MPEG-1; MPEG-4, MP3 ;• Images : GIF (.gif), JPEG (.jpg, .jpeg), PNG (.png) ;• Autres : AU (.au), AIFF (.aif, .ief), WAV (.wav)
•Enregistrement « SureStream »: permet une lecture à des débits adaptés au lecteur (ex.: modems 28Kb/s ou 56Kb/s, ADSL 256Kb/s ou 512Kb/s).
4
IUT - Marne la Vallée streaming : architecture et services © D. Présent
diversité des présentations
• RealText : édition de clips textes pouvant être combinés avec d’autres médias (audio ou vidéo). Réalisation de sous-titres par exemple ;• RealPix : création de diaporama mixant des images GIF, JPEG ou PNG. Le langage incluse des animations et effets tels que zoom, fondus…• SMIL : Langage de présentations multimédias (Synchronized MultimediaIntegration Language) basé sur le XML. Permet le multi-affichage dans une fenêtre mixant des vidéos, sons, des images et du texte. Peut intégrer des présentations réalisées avec RealText ou RealPix.
• diffusion :• à la demande :la visualisation débute à la demande du client qui dispose des commandes d’arrêt, retour arrière, avance rapide…• en direct : le client se connecte à une présentation pré-programmée. Il ne dispose pas de commandes. Deux méthodes de diffusion :
• point à point – chaque client reçoit son propre flux de données ;• multipoint – un seul flux de données pour tous les clients.
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Caractéristiques du serveur• stockage réparti: les fichiers distribuables peuvent être placés sur le serveur (répertoire « content ») ou sur tout autre serveur du réseau ;• informations de lecture: des informations sur les fichiers lus peuvent être transmises et affichées par le lecteur ;• serveur secouru: en cas d’interruption de lecture, le client peut être connecté à un serveur de secours ;• serveurs proxys: permettent d’accélérer la connexion des clients et la distribution des clips ;• contrôle d’accès:
• limitation du nombre de connexions simultanées ;• autorisations d’accès par adresses IP ou numéros de ports ;• authentification des clients par nom et mot de passe ;
• gestion et contrôle:• fichier de listage des accès clients, fichiers ;• activité temps réel du serveur (bande passante, fichiers ouverts, clients connectés…)
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Points d’accès du serveurLes URLs pour accèder utilisent des « points d’accès » (mount points) fonctionnant comme des répertoires. Les points d’accès par défaut sont :
/admin accès aux pages d’administration du serveur ;/ramgen requêtes venant des navigateurs ;/httpfs ouverture des pages HTML par HTTP ;/viewsourceenvoi de pages HTML listant les informations sur les
fichiers visionnés ;/encfs dialogue entre Helix Producer et Helix Server ;/asxgen requêtes des navigateurs concernant des fichiers Windows ;/nscfile ouverture des lecteurs Windows Media en multicast;/scalable requêtes des connexions multicast à débit configurable.
Exemples :accès aux pages d’administration du serveur en local
http://<localhost>:<adminport>/admin/index.htmlaccès aux données RealNetworks du répertoire « content »
http://<serveur>:80/ramgen/répertoire/fichier.smi
5
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Ports et protocoles
Généré dynamiquement
Ports par défaut
IUT - Marne la Vallée streaming : architecture et services © D. Présent
RealServer : le serveur de streaming• 2 versions logicielles : windows NT et Unix• Le serveur utilise 2 canaux par client : un canal pour le
contrôle et les commandes, un canal pour les données• pour chaque client, le serveur crée une tâche et réserve une
zone RAM (12Kb par Kb/s de débit)• le serveur utilise 2 protocoles avec les applications de
lecture vidéo : Real Time Streaming Protocole (RTSP) et Progressive Networks Audio (PNA)
RealServer RealPlayer
Connexion TCP de contrôle
Flux UDP de données
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Contrôle de débit par RTSPLe serveur peut adapter le débit des données :• Par négociation entre client et serveur. L’adaptation de débit n’est mise en œuvre que
si les conditions négociées à l’ouverture de la session sont réunies ;• De sa propre initiative, sans demande du client. Dans ce cas, le serveur ignore les
requêtes d’adaptation de débit du client, et s’appuie sur les informations de congestion fournies par le protocole RDT.
Un mécanisme de signalisation dans RTSP est en cours de standardisation (3GPP 26.234). Ce mécanisme nécessite que :
• Les extensions de réponses dans RTCP (NADU APP) soient utilisées pendant la session ;
• La fréquence des réponses soit précisée ;• Des seuils soient prédéfinis dans le buffer du client.
Les paramètres d’adaptation de débit peuvent être échangés à la demande ou lors de l’ouverture de session dans un descriptif de session (Session Description Protocol). Ce descriptif est systématique dans le cas de diffusion multicast.
6
IUT - Marne la Vallée streaming : architecture et services © D. Présent
noyau
Socket
BroadcastPlugin
Architecture de Helix DNA Server
Le noyau du serveur « Helix DNA » (Media Delivery Engine ) :• fournit un ensemble de services communs à toutes les applications de la plateforme.• Les compléments assurent les fonctions spécifiques à certaines applications.
FileSystem
FileFormat
InputSourceDataFlow
RateControl
SessionControl
Allowance
Registry
Logging
Transport
Protocol
Socket
DataSocket
client
Helix DNA Server : modèle d’interaction entre objets
datafeedback
control
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Les congestions sont contrôlées par RDT
Le contrôle de congestion du serveur s’appuie sur les informations retournées par le client. La caractérisation de la connexion utilise 2 variables principales : le taux de perte et le délai de propagation.
Le protocole RDT ne dispose pas d’information d’horloge comme RTP. Le protocole RDT compense par une analyse de la périodicité des acquittements (ACK/NACK). A terme, le protocole RDT devrait se rapprocher des fonctionnalités du protocole RTP.
Par le protocole RDP le client fournit au serveur des informations sur l’état du buffer (nombre d’octets stockés).
IUT - Marne la Vallée streaming : architecture et services © D. Présent
MPEG-4 Data Stream
paramètres complémentaires
H.263 Vidéo :
l’en-tête contient le type données, la longueur de l’en-tête des données et un « marqueur de temps », basé sur une horloge à 90kHz.
MPEG-4 Audio/Visual :
L’en-tête contient un n uméro de séquence, un marqueur de temps basé sur une horloge à 90kHz
H.263 + compressed Data StreamH.263 + payload Header
Le transport des données dans RTP
RTP Header0 31
ID de synchro de sourceMarqueur de temps
RTP paramètres0 31
RTPheader
7
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Le contrôle et la gestion de session
• Le contrôle de session porte sur les interactions entre le serveur et le lecteur pour des actions telles que l’ouverture, la lecture, la pause…
• Le recours à un protocole tel que RTSP entre le serveur et le lecteur facilite l’interaction ;
• Pour chaque requête, un objet est créé par le Player Packet Management.
ProtocolSessionControl
Request(pause)RTSPPlayer Packet
Management
Player::SessionObject : OnPause
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Les 5 étapes de création des fichiers
Etape 1: encodage des vidéos sur la station d’administration avec Real Producer ;
Etape 2: transfert des fichiers vidéos vers le serveur de streaming à partir de la station d’administration ;
Etape 3: création des fichiers HTML regroupant les liens vers les fichiers de pointage ;
Etape 4: création du fichier « Ram » de liaison entre navigateur et lecteur multimédia ;
Etape 5: création des fichiers de présentation multimédia SMIL sur le serveur de streaming ou serveur Web ;
administration
I n t e r n e t
serveur"streaming"
r é s e a userveur
Web
Routeur
Hub
1
25
3 4
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 1 : encoder en fonction du débit
Les vidéo sont codées pour respecter la bande passante du support de transmission choisi.La bande passante est répartie en 3 sous-bandes :
• la vidéo • l’audio • le sur-débit.Pour une bande passante de 65Kb/s, la répartition des sous-bandes peut se faire de la manière suivante :
Vidéo : 27,5Kb/s audio : 6,5Kb/s sur-débit : 22Kb/s
Vidéo : 26Kb/s audio : 8Kb/s sur-débit : 22Kb/s
8Kb/s8Kb/s8,5Kb/s6,5Kb/s34Kb/s56Kb/s
Musique stéréo
Musique mono
Voix + musique
voixdonnéesDébit total
Bande passante : 56Kb/s
8
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 1 : les formats d’image pour la vidéo
La qualité de l’image pour une bande passante donnée dépend fortement de sa dimension:
45Kb/sRNIS 64Kb/s
correctexcellent150Kb/sLAN
450Kb/sADSL 512Kb/s
bon225Kb/sADSL 256Kb/s
Faiblecorrectbon34Kb/sRTC 56Kb/s
20Kb/sRTC 28,8Kb/s
640 x 480320 x 240240 x 180176 x 132donnéesDébit total
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 1 : l’échantillonnage audio
442216888Échantillonnage (kHz)
6432168,56,55Débit audio (kb/s)
Échantillonnage de la voix
St; St-RA8; Sd96Kb/s
St-RA8; St-HR; SdSt44Kb/s
St-HRSt; St-RA832Kb/s
St; St-RA8; Sd64Kb/s
St-RA8; Sd264Kb/s
St-RA8; St-HRSt20Kb/s
St12Kb/s
442211Échantillonnage (kHz)
Échantillonnage de la musique
St : stéréo
St-RA8 : stéréo RealAudio 8
St-HR : stéréo High Response
Sd : surround
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Le codage audio/vidéo : paramètrage
Type de codage
Choix des débits
Format du fichier
9
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Statistiques d ’enregistrement
Caractéristiques des flux audio/vidéo
Durée de codage par rapport à la durée du clip
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Session de codage : paramètrage
Nom du serveur Port utilisé
Nom du fichier
utilisateur
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 1 : le paramétrage vidéo avancé
Le type de flux :• flux à débit constant (CBR) ;• flux à débit variable (VBR)/débit moyen (le codage moyen peut être dépassé pour des images complexes pendant une brève période) ;• flux à débit variable/qualité vidéo (les séquences complexes utiliseront le débit maximum possible).
Les options des flux :• la taille du buffer (nombre d’images stockées avant visualisation) – de 4 à 25 secondes ;• la fréquence des images I (images à codage intrinsèque) de 0 à 60sec ;• l’utilisation ou non d’une correction d’erreur (loss protection)
10
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 2 : transfert des fichiers
• Les fichiers sont placés sur le répertoire « content » du serveur ;• des sous-répertoires peuvent être créés ;• des alias facilitent l’accès aux présentations placées dans les sous-répertoires créés ;• si des fichiers sont placés sur d’autres serveurs, des fichiers de liens doivent être créés dans le répertoire « content ».
IUT - Marne la Vallée streaming : architecture et services © D. Présent
RealServer
ServeurWeb
Dialogue client-serveur Web-serveur streaming
Vidéo disponibles :• astérix• obélix• idéfix
navigateur
Fichier RAM
Fichier SMIL
Fichiers vidéo
1
1 un click sur le lien envoie une requête au serveur
2
RealPlayer
34
2 le serveur Web télécharge le fichier RAM ( .ram)3 le lecteur vidéo est chargé4 le lecteur interroge le fichier SMIL ( .smil) et évalue le fichier vidéo adapté
5
6
5 le lecteur demande la lecture du fichier
6 la lecture de la vidéo commence
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 4 : Les fichiers RAM
Lien entre la page Web et les fichiers vidéos :– Lancent le lecteur RealOne ;– Ouvrent les connexions RTSP avec le serveur ;– Passent au lecteur les URL des fichiers pouvant être ouverts ;– un fichier vidéo ne doit être défini qu ’une seule fois.
rtsp://www.compagnie.com/media/video128k.rmrtsp://www.compagnie.com/media/video156k.rmrtsp://www.compagnie.com/mediaserver/videos.smil
La page web pointera sur ce fichier :
<a href=« http://www.compagnie.com/ramfiles/videos.ram »>cliquer pour choisir une vidéo</a>Note : pour un test en local, le fichier Ram est placé dans le répertoire du clip. L’URL commencera par file://
Exemple de fichier : videos.ram
11
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 4 : des paramètres d’initialisation
Le fichier RAM permet de paramétrer le lecteur à son ouverture :– Dimensions de l’écran screensize=double | full | original– Mode d’affichage des boutons de contrôle mode=normal | theater | toolbar– Début et fin de lecture du clip start (end)=hh:mm:ss.x
Exemples :
rtsp://www.compagnie.com/media/video128k.rm?screensize=full #affiche le clip en plein écran
rtsp://www.compagnie.com/media/video128k.rm?start=55&end=1:35 # affiche le clip pendant 40 secondes
rtsp://www.compagnie.com/media/video128k.rm?rpcontextheigh=150&rpcontextwidth=250&rpcontexturl=http://ww.companie.com/index.html # affiche la page html dans un fenêtre de 250x150
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 4 : des infos dans le lecteur
• Pendant la lecture d’un clip, le fichier RAM permet d’afficher les informations d’une page html ;
• Ces informations s’affichent dans une fenêtre séparée.
rtsp://www.compagnie.com/media/video128k.rm?rpcontextheight=250&rpcontextwidth=280&rpcontexturl=« http://compagnie.com/infomedias.html » #affiche le contenu de la page dans un rectangle de 250x280 pixels
Exemples :
rtsp://www.compagnie.com/media/video128k.rm?rpurl=«http://compagnie.com/index.html » #affiche le contenu de la page dans le navigateur
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 4 : emplacement et liens
• Les fichiers Ram peuvent être placés sur le serveur de streaming ou sur n’importe quel serveur Web ;• si les fichiers sont sur le serveur de streaming, les liens vers les clips peuvent utiliser des chemins relatifs ;• si les fichiers sont sur un serveur autre, les liens veers les clips doivent utiliser des URL complets.
12
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Etape 5 : présentation en SMIL
• Utilisent le langage au standard internationnalSynchronized Multimedia Integration Language
• permettent la sélection de la bande passante
• ces fichiers sont optionnels
<smil><body>
<switch><ref src="LPsticm.rm" system-bitrate="220000 "/><ref src="LPsticl.rm" system-bitrate="150000"/><ref src="LPsticd.rm" system-bitrate="64000"/>
</switch></body>
</smil>
Exemple de fichier : videos.smil
IUT - Marne la Vallée streaming : architecture et services © D. Présent
Liens utiles• Real Server :
– Outils de streaming -http://europe.realnetworks.com/?src=fr_gb_home– Architecture du serveur Helix DNA -
https://protocol.helixcommunity.org/2006/devdocs/sod-rtsp-adaptation-signaling-02.txt
– Protocoles -https://protocol.helixcommunity.org/
• Protocoles Temps Réel :– RTCP– RTSP -http://www.ietf.org/rfc/rfc2326.txt– RTP -http://www.ietf.org/rfc/rfc1889.txt– RDT -
https://protocol.helixcommunity.org/2005/devdocs/RDT_Feature_Level_30.txt
• SMIL :– XHTML & SMIL - http://aristote1.aristote.asso.fr/CSMIL/– Normes -http://www.w3.org/TR/REC-smil– Éditeur + cours -http://wam.inrialpes.fr/
• Site de streaming :– Vidéothèque de l’IRIA -http://www.inria.fr/multimedia/Videotheque-fra.html