streaming multimédia

49
Streaming multimedia II Protocoles Alain M ´ erigot Universit ´ e Paris sud A. M ´ erigot ([email protected]) Streaming multimedia II 1 / 49

Upload: zino-aj

Post on 20-Nov-2015

29 views

Category:

Documents


1 download

DESCRIPTION

Streaming Multimédia : RTP , RTCP

TRANSCRIPT

  • 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