streaming multimédia
DESCRIPTION
Streaming Multimédia : RTP , RTCPTRANSCRIPT
-
Streaming multimedia IIProtocoles
Alain Merigot
Universite Paris sud
A. Merigot ([email protected]) Streaming multimedia II 1 / 49
-
Applications multimedia internet
Differentes applications
Acces a des fichiers preenregistresDiffusion en directVideoconference
Toutes ces application necessitent des protocoles specifiques pourtraiter des donnees temps-reel
RTP (Real time protocol) et le protocole associe RTCP (Real-timecontrol protocol)RSVP (reservation de ressource au niveau du routage)QoS Quality of Service
A. Merigot ([email protected]) Streaming multimedia II 2 / 49
-
Applications multimedia internet (suite)
Autres protocoles et methodes impliques
Video preenregistree sur un serveur de streaming
RTSP (Real Time Streaming Protocole)permet de controler une session de streaming et dinteragir avecun serveur
Diffusion en direct
Multicast
Videoconference
SIP (Session Initiation Protocole)Initiation de session, gestion et terminaison
A. Merigot ([email protected]) Streaming multimedia II 3 / 49
-
Applications multimedia internet (suite)
A. Merigot ([email protected]) Streaming multimedia II 4 / 49
-
TCP
Rappel des fonctionnalites de TCP :les applications sur un hote creent une connexion entre emetteuret recepteurune transmission fiable et correctement ordonnee des donnees delemetteur vers le recepteur est garantie.les segments TCP sont numerotes pour ordonner les donneesrecuesdes sommes de controle (checksums) permettent de detecter leserreursutilisation dacquitements et de temporisation pour detecter lespertes de paquetsla protection contre les erreurs est realisee par retransmission etdetecttion de debordement de temps (time-out)le delai de transmission est impredictiblene peut pas etre utilise pour des applications temps-reel
A. Merigot ([email protected]) Streaming multimedia II 5 / 49
-
UDP
Rappel : fonctionnalites UDP
service de transport de datagrammes simple, mais non fiableaucune fiabilite, ni aucun ordonnancement des paquets nestgarantiles datagrammes peuvent arriver dans le desordre ou etre perdussans notificationdes checksums sont utilisees pour detecter les paquetscontennant des erreursrapide et efficace pour des applications pour lesquelles le tempsest importantmeilleur choix pour une transmission video temps-reel
A. Merigot ([email protected]) Streaming multimedia II 6 / 49
-
UDP Lite
The lighweight User Datagram ProtocolProtocole non connecte similaire a UDPUne somme de controle nest appliquee que sur un sous ensembledes donnees
0 15 16 31
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| Checksum | |
| Coverage | Checksum |
+--------+--------+--------+--------+
| |
: Payload :
| |
+-----------------------------------+
A. Merigot ([email protected]) Streaming multimedia II 7 / 49
-
UDP Lite (suite)
Checksum Coverage est le nombre doctets, a partir du premier octetde lentete UDP-Lite, qui sont pris en compte dans la checksum(remplace le champ length dUDP)
Un paquet defecteux serait elimine par UDP
Il peut etre conserve par UDP-Lite, a condition que lerreur soit endehors de la zone de checksum coverage.
Il est peut-etre meilleur pour des applications audio et video dobtenirdes donnees partiellement corrompues que aucun paquet !
Utilise un autre port IP quUDP (136).
A. Merigot ([email protected]) Streaming multimedia II 8 / 49
-
Real Time Protocole (RTP)
RTP est une extension dUDP (ou optionnellement TCP)Concerne la couche 7 OSI (couche application)
Installe entre UDP et lapplicationImplemente par une bibliotheque applicative
Ses objectifsMise en paquetMultiplexageSynchronisationDetection derreursIdentification du contenu
Peut etre utilise dans differentes configurations : un-vers-un,un-vers-beaucoup, beaucoup-vers-beaucoup, ...RTP consiste en une partie transfert de donnees et une partie controle(RTCP)RFC 3550A. Merigot ([email protected]) Streaming multimedia II 9 / 49
-
Real Time Protocole (RTP) (suite)
Paquets RTP
Consiste en une entete RTP, des entetes optionnelles pour lechargement et le chargement (payload) lui-meme
surcout RTP = 12 octets
surcout IP+UDP+RTP = 20+8+12 = 40 octets
Entete:
Payload Type: 7 bits, 128 types dencodage differents;eg PCM, MPEG2 video, etc.
Payload type Sequencenumber TimestampSynchronizationsource identif.
Miscellanousfields
A. Merigot ([email protected]) Streaming multimedia II 10 / 49
-
Real Time Protocole (RTP) (suite)
Types de chargements pour les formats audio and videoIndex Format audio Freq. decht Debit
0 PCM 8 kHz 64 kb/s1 1016 8 kHz 4.8 kb/s3 GSM 8 kHz 13 kb/s7 LPC 8 kHz 2.4 kb/s9 G.722 16 kHz 48-64 kb/s
14 MPEG audio 90 kHz variable15 G.728 8 kHz 16 kb/s
Index Format video26 Motion JPEG31 H.26132 MPEG 1 video33 MPEG 2 video
A. Merigot ([email protected]) Streaming multimedia II 11 / 49
-
Real Time Protocole (RTP) (suite)
Sequence Number: 16 bits;permet de detecter une perte de paquet
Timestamp: 32 bits;Indique la date dechantillonage du premier octet audio/video dupaquet;Supprime la gigue du reseau
Synchronization Source identifier (SSRC): 32 bits;identifie une source de donnees; generee aleatoirement par la source
Payload type Sequencenumber TimestampSynchronizationsource identif.
Miscellanousfields
A. Merigot ([email protected]) Streaming multimedia II 12 / 49
-
Real Time Protocole (RTP) (suite)
marquages temporels et numero de sequence
le marquage temporel (Timestamp) est relatif a un instant reel
Obtenu par une horloge media specifique
le numero de sequence donne lordre relatif du paquet
Ces informations sont complementaires et doivent etre utiliseesensemble et doivent etre utilisees simultanement pour traiter despertes de paquets
A. Merigot ([email protected]) Streaming multimedia II 13 / 49
-
Real Time Protocole (RTP) (suite)
Exemple : comment traiter les silences audio ?
Quel est la meilleure maniere de traiter les silences ?
Ne rien envoyer !!
Quel probleme cela peut-il creer ?
On doit distinguer entre un silence et la perte dun paquet (qui peutnecessiter une interpolation)
Le recepteur utilise simultanement le marquage temporel et le numerode sequence pour prendre la decision
A. Merigot ([email protected]) Streaming multimedia II 14 / 49
-
Real Time Protocole (RTP) (suite)
RTP Control Protocol (RTCP)
Utilise conjointement avec RTP. Echange dinformations de controleentre emetteur et recepteur. Fournit un retour sur la qualite de ladistribution de donnees.
Trois types de reports : reception, emission et description de source
Les rapports contiennent des statistiques
Nombre de paquets envoyesNombre de paquets recusGigue (jitter)
La bande passante RTCP doit etrelimitee a 5% de la bande passante.Environ un rapport emetteur pour 3rapports recepteurs
A. Merigot ([email protected]) Streaming multimedia II 15 / 49
-
Real Time Protocole (RTP) (suite)
Paquets RTCPSR (rapport emetteur) Utilise pour des statistiques detransmission et de reception des hotes qui sont des emetteursactifsRR (rapport recepteur) Utilise pour des statistiques detransmission et de reception des hotes qui ne sont pas desemetteurs actifsSDES (description de source), incluant CNAME (Canonical Name identicateur de source RTP)BYE - Indique une fin de participationAPP - operations specifique a une application
A. Merigot ([email protected]) Streaming multimedia II 16 / 49
-
Real Time Protocole (RTP) (suite)
A. Merigot ([email protected]) Streaming multimedia II 17 / 49
-
Real Time Protocole (RTP) (suite)
Informations fournies par RTCP au moyen de rapports emetteur etrecepteur (SR et RR) compte de paquets
Le nombre de paquets attendu pendant un intervalle est donnepar la difference entre les numeros de sequence les plus hautsLa perte de paquets durant un intervalle entre deux receptions derapports est donne par la difference entre les nombres cumulatifsde pertes de paquetsle pourcentage de pertes sur lintervalle est donne dans le rapportRR ou calcule comme le rapport entre les deux precedents.Le taux de pertes par seconde est simplement obtenu en divisantla fraction perdue par la difference entre les marquages temporelsNTP entre deux rapports.le nombre de paquets recus est le nombre de paquets attendusmoins le nombre de paquets perdus. Utile pour qualifier la validitestatistique du taux de perte.
A. Merigot ([email protected]) Streaming multimedia II 18 / 49
-
Real Time Protocole (RTP) (suite)
Informations fournies par RTCP au moyen des rapports emetteur etrecepteur (suite...)
Timestamps. Utilies pour calculer le temps daller et retour(Round-Trip Time RTT). Necessite lemission dun rapport SR et RR.
Estimation de la bande passante disponible. Disponible pour unrecepteur donne comme le nombre de paquets recus durant uneperiode multiplie par la taille moyenne du chargement
Gigue a larrivee. Calculee par le recepteur (et probablement utiliseepour determiner le delai de restitution). Information utile a lemetteur,car elle donne une mesure rapide de la congestion du reseau (avantmeme une perte de paquet).
Lutilisation de compte cumulatifs dans les rapports emetteur etrecepteur permet de calculer les differences entre deux rapports(mesure sur une longue periode), et permet de resister a la perte dunrapport.A. Merigot ([email protected]) Streaming multimedia II 19 / 49
-
Real Time Protocole (RTP) (suite)Paquetization RTPBasee sur linformation fournie par la couche video.Le codeur video organie linformation en paquets: PaquetizedElementatry Streams (MPEG), NALU (Network abstraction layer units)(H264).Ces informations correspondent aux paquets reseau.La paquetization network friendly (comme les NALUs H264) aidelemetteur a realiser une paquetization efficace. La priorite des paquets est indiquee Les donnees inutiles (cad indecodable a cause de pertes) peuventetre detectees sans necessite de decoder tout le flot de bits Les informations importantes peuvent etre detectees :
Instantaneous Decodeur Refresh IDR (images I)Parameter sets, reemis en cas de perte
Transmission flexible: les NALUs correspondent en general auxpaquets RTP, mais ils peuvent etre fragmentes en plusieurs paquets oraggreges, avec plusieurs NALU dans un paquet RTP.A. Merigot ([email protected]) Streaming multimedia II 20 / 49
-
Real Time Protocole (RTP) (suite)
Resume RTP Supporte unicast ou multicast Fournit correctement
le sequencementle tempsla synchroniaation
utilise optionnellement avec RTCP Mis en oeuvre dans lapplication Completement independant des protocoles sous jacents Ne fournit aucun mecanisme pour :
Assurer une livraison a tempsqualite de service
Uniquement un cadre de protocole qui doit etre adapte a uneapplication specifique
A. Merigot ([email protected]) Streaming multimedia II 21 / 49
-
RealTime Streaming Protocole (RTSP)
Streaming de contenu multimedia preenregistre
Les donnees Audio/Video sont mises en paquet et envoyees par UDP(de preference) ou TCP, avec RTP (Real-Time Protocole)
Realise par le serveur de streaming
Une interaction entre utilisateur et serveur est fournie par le Real TimeStreaming Protocole (RTSP)
A. Merigot ([email protected]) Streaming multimedia II 22 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Le protocole est mis en oeuvre par lapplication de visualisation dumedia (media player) (avec ou sans navigateur WEB) RealPlayer,WMP, QT, videolan.
Realise :
Decompression.Suppression de la gigueCorrection des erreurs au moyen des paquets redondants pourpermettre une reconstruction correcte du flux originalControle de lutilisateur (pause, rewind, etc)
A. Merigot ([email protected]) Streaming multimedia II 23 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Streaming depuis un serveur WEB
Audio et video envoyees comme des objets HTTP
Methode la plus simple : le navigateur demande les objets
Apres reception il les envoie au media player pour visualisation
Necessite une transmission complete
A. Merigot ([email protected]) Streaming multimedia II 24 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Utilisation dun serveur WEB.
A. Merigot ([email protected]) Streaming multimedia II 25 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Alternative: mettre en place une connection directe entre le serveur etle media player
Le navigateur demande et recoit un Meta Fichier qui decrit la methodepour acceder aux objets et non le fichier media lui-meme;
Le navigateur lance le media player et lui donne le metafichier;
Le media player etablit une connection RTP avec le serveur streaminget recoit les donnees multimedia
A. Merigot ([email protected]) Streaming multimedia II 26 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Utilisation dun serveur de streaming : reception du metafichier
A. Merigot ([email protected]) Streaming multimedia II 27 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Utilisation dun serveur de streaming : reception en streaming dumedia
A. Merigot ([email protected]) Streaming multimedia II 28 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Real Time Streaming Protocole (RTSP)
Permet de controler laffichage : rewind, pause, fast forward, etc
Utilise une connection hors-bande separee : une pour le controle (Port554) et une pour le flux.
RFC 2326
Peut utiliser TCP ou UDP pour le canal de controle (cancl RTSP)
Un metafichier est envoye au navigateur web pour lancer le client devisualisation. Le client etablit une connection RTSP pour le controle etune connection RTP pour le flot multimedia
A. Merigot ([email protected]) Streaming multimedia II 29 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Exemple de metafichier
Twister
A. Merigot ([email protected]) Streaming multimedia II 30 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Operations RTSP
A. Merigot ([email protected]) Streaming multimedia II 31 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Methodes RTSP
OPTIONS get available methods
SETUP establish transport
ANNOUNCE change description of media object
DESCRIBE get (low-level) description of media object
PLAY start playback, reposition
RECORD start recording
REDIRECT redirect client to new serveur
PAUSE halt delivery, but keep state
SET PARAMETER device or encoding control
TEARDOWN remove state
A. Merigot ([email protected]) Streaming multimedia II 32 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
Entetes des requetes
Accept media description formats
Accept-Encoding encoding of media format
Accept-Language human language
Authorization basic and digest authentication
Bandwidth client bandwidth available
Conference conference identifier
From name of requestor
If-Modified-Since conditional retrieval
Range time range to play
Referer how did we get here?
Scale (play time)/(real time)
Speed speed-up delivery
Utilisateur-Agent software
A. Merigot ([email protected]) Streaming multimedia II 33 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
entetes des reponses
Location redirection
Proxy-Authenticate authenticate to proxy
Public methods supported
Retry-After busy; come back later
Serveur server software
Vary cache tag
WWW-Authenticate request authorization
A. Merigot ([email protected]) Streaming multimedia II 34 / 49
-
RealTime Streaming Protocole (RTSP) (suite)
La conception de RTSP est similaire a HTTP
protocol format: text, entetes MIMErequest/responsestatus codessecurity mechanismsURL formatnegotiation du contenu
supporte toute description de session
Controle les pistes (audio, video) et la presentation (film)
A. Merigot ([email protected]) Streaming multimedia II 35 / 49
-
SIP: Session Initiation Protocol
Videoconference interactive
Comment trouver la personne avec qui je veux discuter ?
Avec quel equipement?
Quelle est son addresse?
Comment controler son etat (active/absente) ?
Comment authentifier son identite ?
Comment avoir une passerelle entre fournisseurs ?
Session Initiation Protocol (SIP)
A. Merigot ([email protected]) Streaming multimedia II 36 / 49
-
SIP: Session Initiation Protocol (suite)
Un protocole de signalisation pour :initier,gererterminer une session de communication interactive
Peut etre utilise pour des messageries instantanees (MSN, AIM), de latelephonie internet (VoIP), videoconference, etc.Developpe par lInternet Engineering Task Force (IETF) IETF RFC3261Connectivite with IPPeut etre etendu pour des services comme :
controle dappel,mobilite,interoperabilite evc la telephonie standard, etc.
NB : Ne transporte aucun media. Utiliser RTP
A. Merigot ([email protected]) Streaming multimedia II 37 / 49
-
SIP: Session Initiation Protocol (suite)
Entitites dans le protocole SIP
User Agent (telephones, clients logiciel)
les User Agent Client (UAC) font des requetesles User Agent Server (UAS) acceptent les requetes
Redirect Server
Proxy Server
Registrar
Permet denregistrer et dauthentifier un utilisateurEx : [email protected] on 194.167.178.12
Location serverA. Merigot ([email protected]) Streaming multimedia II 38 / 49
-
SIP: Session Initiation Protocol (suite)
Methodes SIP
INVITE Session request
ACK Answer to an INVITE
OPTIONS Asks for server capacities
CANCEL Cancels a pending request
BYE Ends a session
REGISTER Sends to the server an user address
A. Merigot ([email protected]) Streaming multimedia II 39 / 49
-
SIP: Session Initiation Protocol (suite)
Reponses SIP
1XX Provisional 100 Trying
2XX Successful 200 OK
3XX Redirection 302 Moved Temporarily
4XX Client Error 404 Not Found
5XX Server Error 504 Server Time-out
6XX Global Failure 603 Decline
A. Merigot ([email protected]) Streaming multimedia II 40 / 49
-
SIP: Session Initiation Protocol (suite)
Exemple dune requete INVITE
INVITE sip:e9-airport.mit.edu SIP/2.0
From: "Dennis Baron";tag=1c41
To: sip:e9-airport.mit.edu
Call-Id: [email protected]
Cseq: 1 INVITE
Contact: "Dennis Baron"
Content-Type: application/sdp
Content-Length: 304
Accept-Language: en
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY,
REGISTER, SUBSCRIBE
Supported: sip-cc, sip-cc-01, timer, replaces
User-Agent: Pingtel/2.1.11 (WinNT)
Date: Thu, 30 Sep 2004 00:28:42 GMT
Via: SIP/2.0/UDP 18.10.0.79A. Merigot ([email protected]) Streaming multimedia II 41 / 49
-
SIP: Session Initiation Protocol (suite)
Initiation de session point-a-point et terminaisonA. Merigot ([email protected]) Streaming multimedia II 42 / 49
-
SIP: Session Initiation Protocol (suite)
Redirection dappel avec un serveur de redirection
A. Merigot ([email protected]) Streaming multimedia II 43 / 49
-
SIP: Session Initiation Protocol (suite)
Utilisation dun serveur proxyA. Merigot ([email protected]) Streaming multimedia II 44 / 49
-
SIP: Session Initiation Protocol (suite)
Applications SIP
Point a pointEx : MSN Messenger et Windows Messenger,AIM, Yahoo, et iCHAT
Multipoint
Interoperabilite avec H.323
A. Merigot ([email protected]) Streaming multimedia II 45 / 49
-
SIP: Session Initiation Protocol (suite)
Standards SIP
RFC3261 Core SIP specification obsoletes RFC2543RFC2327 SDP Session Description ProtocolRFC1889 RTP Real-time Transport ProtocolRFC2326 RTSP Real-Time Streaming ProtocolRFC3263 Locating SIP servers SRV and NAPTRRFC3264 Offer/answer model for SDP use with SIPRFC3265 SIP event notification SUBSCRIBE and NOTIFYRFC3266 IPv6 support in SDPRFC3361 Locating outbound SIP proxy with DHCPRFC3428 SIP extensions for Instant MessagingRFC3515 SIP REFER method eg. call transferSIMPLE IM/PresenceEtc.
A. Merigot ([email protected]) Streaming multimedia II 46 / 49
-
SIP: Session Initiation Protocol (suite)
SIP et H.323
H.323 est un standard ITU ancien
Fonctionnalites similaires, mais :
plus complexe,
utilise une codage binaire,
base sur un ensemble de protocoles enfouis pour les differentestaches
Les deux protocoles sont acceptes par lIETF et lITU
A. Merigot ([email protected]) Streaming multimedia II 47 / 49
-
Session Description Protocol (SDP)
SDP est un protocole pour decrire une session multimedia : announce,invitation et initiation.
Une session multimedia est une ensemble de media flux qui existentpour un certain temps. RFC 2327.
SDP inclut :
le type de media (video, audio, etc.)protocole de transport (RTP/UDP/IP, H.320, etc.)le format du media (H.264 video, MPEG video, etc.)des informations pour retrouver ces media (addresses, ports,formats, etc)
Peut etre utilise avec SIP, RTSP, etc...
A. Merigot ([email protected]) Streaming multimedia II 48 / 49
-
Conclusion
Differents protocoles pour le streaming multimedia
RTP/RTCP est toujours utilise pour le transport du media
RTSP permet linteraction avec un serveur de media preenregistres
SIP utilise pour la gestion des sessions interactives (videoconferenc,telephonie)
SDP decrit une session video
multicast, RSVP
A. Merigot ([email protected]) Streaming multimedia II 49 / 49