75
Le streaming des média à la demande sur Internet S. Natkin Février 2005

Le streaming des média à la demande sur Internet S. Natkin Février 2005

Embed Size (px)

Citation preview

Page 1: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Le streaming des média à la demande sur Internet

S. Natkin

Février 2005

Page 2: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Objectifs

• Transfert de flux de données multimédia synchrones en diffusion, pour être joués en temps réel

• Par opposition au téléchargement des média

• Sans interactions « rapides »: radio pas téléphone

Page 3: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Application MPEG 4:critères de classification

• Contraintes temporellesLes applications sont classées selon qu'elles sont en temps réel ou non.

• Symétrie des moyens de transmissionLes applications sont soit symétriques, soit asymétriques.

• InteractivitéLes applications peuvent être interactives ou non interactives.

Page 4: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Application MPEG 4:les classes

Temps réel symétrique interactive classe 1

non interactive sans application

non symétrique interactive classe 2

non interactive sans application

non temps réel symétrique interactive classe 3

non interactive sans application

non symétrique interactive classe 4

non interactive classe 5

Page 5: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Application MPEG 4:Exemple classe 1

• Visiotéléphonie

• Vidéotéléphonie multiple

• Vidéoconférence

• Travail de groupe

• Classe distante symétrique

• Expertise distante symétrique

Page 6: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Application MPEG 4:Exemple classe 2

• Expertise distante asymétrique

• Contrôle distant et télésurveillance

• Collecte d'informations

• Classe distante asymétrique

Page 7: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Application MPEG 4:Exemple classe 3 et 4

Classe 3• Messages multimédia

 Classe 4

• Récupération de bases d'informations

• Jeux

Page 8: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Description d’une session cliente de type SMIL

Page 9: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Architecture type

Serveur vidéo 1Flux S3

Serveur audio 1Flux S1

Serveur audio 2Flux S2

PC 1 :S1+S2

PC2 : S1+S2+S3

Téléphone : S1

TVI : S3

Page 10: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Terminologie « floue »revisitée par SN

• Objet média : unité continue et homogène de données d’un type définit existant (fichier) ou créé par captation ou synthèse en temps réel

• Flux (stream) multimédia: transfert de données résultant du transport d’un objet média

• Session : Vue homogéne pour un utilisateur ou un ensemble d’utilisateur interagissant via le réseau et utilisant des objets mutimédia des ressources disponibles et opérations possibles sur ces ressources

• Conférence: Ensemble d’utilisateurs ou d’entités informatiques ayant en commun un ou plusieurs flux multimédia

Page 11: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Synchronisation

• La synchronisation peut être relative: démarrer le flux audio1 7 s après la fin du flux vidéo2

• Ou absolue :démarrer le flux audio1 au time code 00:07:00 du flux vidéo2

• Evènementielle : démarrer le flux audio1 lorsque l’utilisateur clique sur le bouton start

• Ou continue: le time code du flux audio et vidéo doivent être égales

Page 12: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Sources

• Les sources des media peuvent être multiples (locales ou téléchargées, sur des serveurs distincts)

• Les capacités de traitement des serveurs inégales et peu prévisibles

• Les modes de compression sont variables: pré compression ou compression à la demande, adaptatives ou non adaptative

Page 13: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Problèmes techniques• Assurer sur le client un débit constant• Les messages étant traités dans l’ordre d’émission• Délivrés selon des unités d’échantillonnage (une image un

échantillon sonore)• Selon une séquence synchrone• et en synchronisant les différentes sources• sur un réseau dont la technologie gère très mal les garanties de

qualité de service• gérer la diffusion: groupes de serveurs vers groupes de clients

Plus accessoirement:• Décrire les flux et sources multimédia• Assurer la sécurité du transfert (gestion des droits sur les media)• Optimiser l’utilisation des ressources réseau

Page 14: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Architecture de base

Compresseuradaptatif

CompresseurNon adaptatif

Protocole de streaming

Décompresseur

Protocole de signalisation

Mesure de QosMesure de Qos

Flux noncompressé

Protocole de sessionDe streaming

Serveur Client

Page 15: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Une vue générale des protocoles temps réel

– Protocole de description du flux et de session : SDP, SMIL...

– Contôle du flux: RTSP

– Transport: RTP

– Réservation des ressources: RSVP, DiffServ

Page 16: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Architecture Internet

• and the result…

Page 17: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Problème de synchronisation du flux

Internet est un réseau dont les performances sont très variables : les datagrammes peuvent traverser un nombre très variables de routeurs plus ou moins chargés. Les temps de propagation entre deux nœuds identiques de deux datgrammes identiques datagrammes peuvent varier de façon considérable (dans un rapport 1:100)

Page 18: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple

Emission délai réception Diffusion jigue0 4 4 7 04 14 18 21 108 5 13 25 0

12 9 21 29 016 19 35 37 418 20 38 47 622 9 31 51 024 5 29 55 028 5 33 59 0

Délai moyen 10 ms, temps de décompression 3ms

Page 19: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Solution le bidon percé

• Comment transformer un débit asynchrone en un débit synchrone

Page 20: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Principe du protocole

• Mesure du temps de traversée max T

• Chargement d’un tampon 2 a 3 T

• Démarrage de l’écoute

tampon

Flux entrant

ecoute

Page 21: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple

Emission délai réception Ddiff File Fdif1 0 4 4 35 1,2,3,4,5,7,8 382 4 14 18 39 2,3,4,5,7,8,9 423 8 5 13 43 3,4,5,6,7,8,9 464 12 9 21 47 4,5,6,7,8,9 505 16 19 35 51 5,6,7,8,9 546 20 20 40 55 6,7,8,9 587 24 9 33 59 7,8,9 628 28 5 33 63 8,9 669 32 5 37 67 9 70

Page 22: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple qui ne marche pas

Emission délai réception Ddiff File Fdif1 0 4 4 21 1,2,3,4 242 4 14 18 25 2,3,4 283 8 5 13 29 3,4 324 12 9 21 33 4 365 16 19 35 38 5,7,8 416 20 20 40 43 6,7,8,9 467 24 9 33 47 7,8,9 508 28 5 33 51 8,9 549 32 5 37 55 9 58

1

1

Page 23: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Mesure du QOS

• Nombre de paquets arrivés en retard (Jigue)

• Nombre de paquet perdus

• Délais A/R

• ….

Page 24: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Compensation d’erreur

• Pertes de messages• Il est souvent préférable de ne rien faire que de

retarder le flux• Donc peut difficilement reposer sur une technique de

détection par acquit et réémission (en général UDP et IP)

• A fortiori en diffusion• Certains messages peuvent être perdus sans trop de

dégats (les trames B en MPEG2 par exemple)• Sinon il faut utiliser d’autre techniques

Page 25: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Compensation d’erreurpar entrelacement

Dans RealAudioTampons de 240 ms:12 blocs de 20 ms

D’ou une attente d’au moins 5,2 s

Page 26: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Compensation d’erreurpar code correcteur d’erreur

Différentes autres approches avec des parités horizontales et verticales (comparable au RAID)

Page 27: Le streaming des média à la demande sur Internet S. Natkin Février 2005

RTP/RTCP and RTSPLes protocoles multimédia pour l’Internet

D’après

[email protected]

Page 28: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Historique

• IETF Audio/Video Transport WG– RTPv1 RFC 1889 (January 1996)– RTPv2 draft-ietf-avt-rtp-new-09.txt (March 2001)

• Real-Time Protocol (RTP)– « a framing protocol for real-time applications »– Ne gère aucun mécanisme de QOS pour le temps réel

• Real-Time Control Protocol (RTCP)– Mécanisme de mesure et de contrôle d’effort (comme

ICMP) sans aucune garantie

Page 29: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Principes de conception

• Flexible mécanismes de bases qui peuvent être instanciés (H261, MPEG1/2/...)

• Peut s’appuyer sur des protocoles variés(UDP/IP, réseaux ATM privés...)

• Support de la diffusion: unicast, multicast, de 2 to

• Sépare le contrôle et les données, certaines fonctions peuvent être déléguées à d’autres protocoles (i.e. RTSP)

Page 30: Le streaming des média à la demande sur Internet S. Natkin Février 2005

• Un scénario:– A working group obtains an IP multicast address and a pair

of ports through some allocation mechanism.– One port for audio, one for control– The address and the ports are distributed to intended

participants.– The participants send audio data in small chucks, 20ms

duration. Each chuck of audio data is preceded with a RTP header, which indicates the type of encoding.

– The Internet may occasionally lose or reorder packets or delay the packet in variable amount time. To help the receiver reconstruct the timing produced by the sender, RTP header also include timing and sequence number information.

– Since the member may join and leave a group dynamically, it is useful to know who is participating and the audio quality at a given time. This task is done through RTCP.

Page 31: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Fonctions de gestion des donneés dans RTP

Label de contenu (content labelling)• Identification de la source • Détection des pertes• reséquencement

Gestion du temps• synchronisation intra-média : principe du bidon

percé• inter-media synchronisation: gestion d’un time

code commun inter-média

Page 32: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Utilisation type

– Sur UDP– Port UDP déterminé par ailleurs– port RTCP = port UDP pour RTP + 1– Un média par session RTP/RTCP (i.e. port

pair)

Page 33: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Indicateur de temps

• Temps RTP – Valeur initiale aléatoire et indépendante pour chaque flux– RTP timestamp dans chaque message– Incrémentée du temps séparant la date de l’échantillon

courant moins la date de l’échantillon précédent • Temps NTP (wallclock time)

– temps absolu (format de Network Time Protocol)– présent dans chaque rapport RTCP de l’émetteur

(Sender Report)– destiné à la synchronisation inter média

Page 34: Le streaming des média à la demande sur Internet S. Natkin Février 2005

PDU RTP

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X| CC |M| PT | sequence number |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| synchronization source (SSRC) identifier |+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+| contributing source (CSRC) identifiers || .... |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| payload (audio, video...) || +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| ...| padding | count |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Page 35: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Contenu des champs

• P: Padding (1 bit), si les données sont plus petites que la taille du message (alignements à 4 octets).

• X: Extension(1 bit), l’en tête fixe est suivi d’un en tête variable (dépendant des applications).

• M: Marker, pour distinguer les évènements importants.• PT: Payload type, type de contenu (PCM, ADPCM, etc)• Timestamps: date RTP associée au premier octet de l’échantillon• Sequence number field: Incrémenté à chaque PDU• Synchronization SouRCe (SSRC)

– Identifie la source de façon unique– Choisie aléatoirement (pas de nom unique négocié et faible

probabilité de collisiosn• Contributing SouRCe (CSRC) : Liste (dont le cardinal est donné par CC)

qui identifie les sources avant traitement par un “mixer”

Page 36: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Mixers et Translators

• Mixers– Multiplexe les flots de plusieurs média en un seul

pour diminuer le débit sur un réseau commuté– Peut modifier le codage et la compression– Définit une nouvelle source et un nouveau SSRC;

SSRCs original dans la liste

• Translators– Transformateur de protocole, translateur

d’adresse (firewall…)– Conserve les flots et les SSRCs originaux

Page 37: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Mixer

end system 1

end system 2

mixer end system 3from ES1: SSRC=6

from ES2: SSRC=23from M: SSRC=52CSRC list={6, 23}

On ne mixe que des données de même type (audio, vidéo)Facilite la diffusion par multiplexage en cas de voies non homogènes

Page 38: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Translator

end system 1

end system 2

transl.1from ES1: SSRC=6

from ES2: SSRC=23transl.2

from ES2: SSRC=23from ES1: SSRC=6

authorized tunnel

firewallfrom ES2: SSRC=23from ES1: SSRC=6

Page 39: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Généralités sur RTCP

Transmission périodique de messages de contrôle qui servent– De mesure de la QOS– de mesure d’écoute (nombre de récepteur– A identifier une source par un nom unique

CNAME (par exemple user@host) qui ne change pas (contrairement au SSRC)

Permet d’établir une relation entre plusieurs flux de même origine sur le client

Page 40: Le streaming des média à la demande sur Internet S. Natkin Février 2005

PDU RTCP• SR sender reports

statistiques (données transmises tx et données reçues rx) des émetteurs (serveurs) actifs

• RR receiver reports

statistiques rx des récepteurs ou des émetteurs actifs au-delà de 31 sources

• SDES source description,

comprenant CNAME• BYE Départ du groupe• APP

PDU pour des extensions spécifiques aux application

Page 41: Le streaming des média à la demande sur Internet S. Natkin Février 2005

RTCP généralitées

• Distribution– Comme RTP c’est une diffusion de nm – Plusieurs messages RTCP peuvent être

concaténés par des translators/mixers (compound packet)

• Gestion de la charge générée– Charge RTCP < 5% du total RTP+RTCP

basée sur l’évaluation du nombre de participantpériode RTCP = f(nombre de participants)

– Au moins 25% de la charge RTCP est destiné aux information issues de la source

Permet, entre autre d’identifie rapidement les sources

Page 42: Le streaming des média à la demande sur Internet S. Natkin Février 2005

PDU SR

– SSRC de la source– NTP timestamp date d’émission du rapport– RTP timestamp estampille correspondante RTP– packet count nombre total de messages envoyés– octet count– Suivi par une liste de rapport récepteur…

– exemple:

SRsenderreport

receiverreport

receiverreportS

SR

C

SS

RC

SS

RC

source 2 source 3

RTCP packet

Page 43: Le streaming des média à la demande sur Internet S. Natkin Février 2005

• SR: sender report

V=2 p rc PT=SR=200 length SSRC of sender NTP timestamp, MSW NTP timestamp, LSW RTP timestamp Sender’s packet count Sender’s octet count SSRC_1 (SSRC of first source), block 1 Sender’s packet count fraction lost cumulative number of packets lost extended highest sequence number received interarrival jitter last SR (LSR) delay since last SR (DLSR) SSRC_2 (SSRC of second source), begin block 2 …. profile-specific extensions

Page 44: Le streaming des média à la demande sur Internet S. Natkin Février 2005

• RR: receiver report

V=2 p rc PR=RR=201 length

SSRC of sender

SSRC of first source, begin block 1

Fraction lost (FL) cumlative number of packets lost

extended highest sequence number received

interarrival jitter

last SR (LSR)

delay since last SR (DLSR)

SSRC of second source, begin block 2

…….

profile-specific extensions

Page 45: Le streaming des média à la demande sur Internet S. Natkin Février 2005

PDU RR– SSRC de la source identifie la source sur laquelle porte le

rapport– fraction lost depuis l’envoi de la dernière PDU RR (SR)

(= int(256*lost/expected))– cumul des messages perdus– Plus grand numéro de séquence de messages reçus

Permet d’estimer expected– interarrival jitter J=J+(|D(i-1,i)|-J)/16

avec D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)

– LSR date de la dernière SR reçue– DLSR temps écoulé depuis la réception de cette SR

Délai AR à réception d’une RR: Date de réception-LSR-DLSR

Page 46: Le streaming des média à la demande sur Internet S. Natkin Février 2005

PDU SDES

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|V=2|P| SC | PT=SDES=202 | length | header

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

| SSRC/CSRC_1 | chunk

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| SDES items =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

| SSRC/CSRC_2 | chunk

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| SDES items +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

Page 47: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Champs de SDES

• Pour chaque source peut contenir – CNAME– NAME nom d’utilisateur– EMAIL – PHONE– LOC (localisation géogra^hique)– TOOL (application)– NOTE – PRIV (extension privé)

Page 48: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Example of RTCP compound packet

SRsenderreport

receiverreport

receiverreportS

SR

C

SS

RC

SS

RC

source 2 source 3

RTCP packet 1

SDES CNAME PHONE

SS

RC

RTCP packet 2

compound packet(single UDP datagram)

Page 49: Le streaming des média à la demande sur Internet S. Natkin Février 2005

profiles RTP

RTP peut être instancié pour chaque média– Exemple: MPEG1/2– Selon la recommandation

• RFC 2736, December 1999– Avec pour but

« every packet received must be usefull !!! »– Pour adapter les caractéristique du réseau (UDP/IP

en particulier) aux contraintes du flux: ce qui est inutile, ce qui est important

Page 50: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple de problème à résoudre: gestion de la fragmentation

application data unit

fragment 1 fragment 2 fragment 3

application

RTP

network tx

fragment 2fragment 1

LOST

RTP

uncomplete data!!!application useless!!!

Src

Rx

Page 51: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Implantations

Bell Labs, Columbia Univ., Massachusetts Univ. RTP Library

Version: 3.0 Beta (4/1997)

An RTP implementations by the standard authors, source code available.

http://www.bell-labs.com/topic/swdist/• Limburgs Universitair Centrum JVOIPLIB

Version: 1.0 (11/2000)

JVOIPLIB is an object-oriented Voice over IP (VoIP) library written in C++.

http://lumumba.luc.ac.be/jori/jvoiplib/jvoiplib.html • JavaSoft/Sun Microsystems Java Media Framework

RTP application and library for audio/video session playback over IP networks.

http://java.sun.com/products/java-media • Limburgs Universitair Centrum and Universiteit Maastricht JRTPLIB

Version: 2.4 (7/2000)

JRTPLIB (Jori's RTP library) is a C++ library.

http://lumumba.luc.ac.be/jori/jrtplib/jrtplib.html • Live.com LIVE.COM Streaming Media

Version: 1.0 (October 2000)

This C++ code, distributed under a LGPL licence, forms a set of libraries that can be used within RTP/RTCP streaming

applications, or can be extended to support additional media types and codecs (in addition to MP3 audio).

http://live.sourceforge.net/• UCL Common Multimedia Library

Version: 1.2.8 (May 2001)

The UCL common multimedia library implements a number of algorithms and protocols (including RTP) needed by a number of our applications.

http://www-mice.cs.ucl.ac.uk/multimedia/software/common/index.html

Page 52: Le streaming des média à la demande sur Internet S. Natkin Février 2005

RTSP

Page 53: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Généralités RTSP

• IETF standard– RFC 2326

• Real-Time Streaming Protocol– Agit comme un gestionnaire réparti des

conférences MM

• Réalise les operations suivantes:– Recherche d’un média sur un serveur– Gestion des participants à une conférence– Suivi du déroulemnet

Page 54: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Principe du protocole (2)

– Mode caractère– Independant du protocole support– Intégre toute syntaxe de description (sdp, xml,

etc.)– Ressemble à HTTP mais

• Requêtes dans le deux sens (clients serveur)• Contexte de session coté serveur• Donnée transférée par une autre voie (hors bande)

– En point à point ou en diffusion

Page 55: Le streaming des média à la demande sur Internet S. Natkin Février 2005

URL RTSP

• présentationrtsp://media.example.com:554/twister

• Une piste audio de la présentationrtsp://media.example.com:554/twister/audio

• Hierarchie des noms de présentation hiérachie des média hiérachie des fichiers

Page 56: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple d’échange

PLAY rtsp://video.example.com/twister/video RTSP/1.0 CSeq: 2

Session: 23456789

Range: smpte=0:10:00-

RTSP/1.0 200 OK

CSeq: 2

Session: 23456789

Range: smpte=0:10:00-0:20:00

RTP-Info: url=rtsp://video.example.com/twister/video;

seq=12312232;rtptime=78712811

seq# for request/response pair

session identifier

method to apply URL RTSP version

play starting at that offset for anundefined durationstatus codeversion

seq# for request/response pair

session identifier

reason phrase

Page 57: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Méthodes RTSP• Principales

– SETUP: Allocation par le serveur des ressources et début de session– PLAY: Lire un flux– PAUSE: Arrêt temporaire de lecture– TEARDOWN: Fin de session, libération des ressources

• Annexes– OPTIONS: Liste des méthodes utilisable– ANNOUNCE: modifie la description d’un objet média– DESCRIBE: demande la descrition détaillée d’un objet média– RECORD: Demande d’enregistrement d’un flux– REDIRECT: re direction d’un client vers un nouveau serveur– SET_PARAMETER:d’un périphérique ou de l’encodage d’un média

Page 58: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Paramètres• 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• User-Agent software• Cache Possibilté de stocker l’objet média en cache

Page 59: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Intégration dans le Web

1. web avec le guide des programmes 2. qui pointe sur une description de la preésentation (say,

SMIL):<session>

<group><track src="rtsp://audio.mtv.com/movie"><track src="rtsp://video.mtv.com/movie">

</group>

</session>3. RTSP gère la session4. RSVP réserve les resources5. RTP transporte les données6. RTCP contrôle le transport

Page 60: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple (1): media à la demande, point à point

videoserver

audioserver

media descr.web serverclient

step 1: get description (in SDP format)

step 2: open streams with RTSP

step 3: play

step 4: teardown

CW A V

Page 61: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple (2)

clientC

web server

W

mediaserversA & V

HTTP GET

presentation description (sdp)

SETUP

PLAY

RTP audio/video

RTCP

TEARDOWN

Page 62: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Example (2) : réception des descrpteurs via HTTP

C->W: GET /twister.sdp HTTP/1.1

Host: www.example.com

Accept: application/sdp

W->C: HTTP/1.0 200 OK

Content-Type: application/sdp

v=0

o=- 2890844526 2890842807 IN IP4 192.16.24.202

s=RTSP Session

m=audio 0 RTP/AVP 0

a=control:rtsp://audio.example.com/twister/audio.en

m=video 0 RTP/AVP 31

a=control:rtsp://video.example.com/twister/video

Page 63: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Example (3): ouverture des flux de média

C->A: SETUP rtsp://audio.example.com/twister/audio.en RTSP/1.0 CSeq: 1 Transport: RTP/AVP/UDP;unicast;client_port=3056-3057

A->C: RTSP/1.0 200 OK CSeq: 1 Session: 12345678 Transport: RTP/AVP/UDP;unicast;client_port=3056-3057; server_port=5000-5001

C->V: SETUP rtsp://video.example.com/twister/video RTSP/1.0 CSeq: 1 Transport: RTP/AVP/UDP;unicast;client_port=3058-3059

V->C: RTSP/1.0 200 OK CSeq: 1 Session: 23456789 Transport: RTP/AVP/UDP;unicast;client_port=3058-3059; server_port=5002-5003

Page 64: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple (4) play

C->V: PLAY rtsp://video.example.com/twister/video RTSP/1.0

CSeq: 2

Session: 23456789

Range: smpte=0:10:00-

V->C: RTSP/1.0 200 OK

CSeq: 2

Session: 23456789

Range: smpte=0:10:00-0:20:00

RTP-Info: url=rtsp://video.example.com/twister/video;

seq=12312232;rtptime=78712811

Page 65: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple (5) play

C->A: PLAY rtsp://audio.example.com/twister/audio.en RTSP/1.0

CSeq: 2

Session: 12345678

Range: smpte=0:10:00-

A->C: RTSP/1.0 200 OK

CSeq: 2

Session: 12345678

Range: smpte=0:10:00-0:20:00

RTP-Info: url=rtsp://audio.example.com/twister/audio.en;

seq=876655;rtptime=1032181

– NB: use standard RTP synchronization methods for lip-sync!

Page 66: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Exemple6, Teardown

C->A: TEARDOWN rtsp://audio.example.com/twister/audio.en RTSP/1.0

CSeq: 3

Session: 12345678

A->C: RTSP/1.0 200 OK

CSeq: 3

C->V: TEARDOWN rtsp://video.example.com/twister/video RTSP/1.0

CSeq: 3

Session: 23456789

V->C: RTSP/1.0 200 OK

CSeq: 3

Page 67: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Gestion du temps (1)

• NPT (normal play time)– position relative au début de l’objet ou de la

présentation spécifiée– deuxformats:

hours:minutes:seconds.subseconds

seconds.subseconds

– exemple:npt= 10:07:00- 10:07:33

npt=121.45-125

Page 68: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Gestion du temps (2)

• SMPTE– relative to au début d’un objet média– format:

hours:minutes:seconds:frames.subframes

– exemple:smpte-30-drop=10:07:00-10:07:33:05.01

• Temps absolu– selon ISO 8601, using UTC/GMT– exemple: current time is 20010829T114501.00Z

date(yyyymmdd)

heure(hhmmss.sub)

Page 69: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Gestion du temps (3)

• Permet une gestion du temps absolu – exemple:

start playing movie at 20010829T114501.00Z, at npt= 10:07:00

– Peut servir à la sychronisation répartie– A la précision de NTP près

• Permet une certaine forme d’édition des média (genre smil)

Page 70: Le streaming des média à la demande sur Internet S. Natkin Février 2005

communications RTSP

• Trois modes d’utilisation du transport dans le sens client/serveur– connexion de transport persistante (TCP) pour une suite de – Une connexion (TCP) par requêtes/réponses (mode HTTP 1.0)– Sans connexion (UDP)

• Définit par l’ URL:– « rtsp » connexion de transport persistante– « rtspu » sans connexion

• Seul les connexions de transports persistantes sont utilisées dans le sens serveur/client

Page 71: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Invitation

Invite un serveur d’ajouter un flux d’un nouveau media dans une présentation existante

client utilise SETUP et les patamètres transport/conference

Page 72: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Invitation d’un serveur d’ajouter un objet sonore à une connexion

C->M: DESCRIBE rtsp://server.example.com/demo/548/sound RTSP/1.0 CSeq: 1 Accept: application/sdp

M->C: RTSP/1.0 200 1 OK Content-type: application/sdp Content-Length: 44

v=0 o=- 2890844526 2890842807 IN IP4 192.16.24.202 s=RTSP Session i=See above t=0 0 m=audio 0 RTP/AVP 0

Page 73: Le streaming des média à la demande sur Internet S. Natkin Février 2005

suiteC->M: SETUP rtsp://server.example.com/demo/548/sound RTSP/1.0 CSeq: 2 Transport: RTP/AVP;multicast;destination=225.219.201.15; port=7000-7001;ttl=127 Conference: [email protected]%20StarrM->C: RTSP/1.0 200 OK CSeq: 2 Transport: RTP/AVP;multicast;destination=225.219.201.15; port=7000-7001;ttl=127 Session: 91389234234 Conference: [email protected]%20Starr

C->M: PLAY rtsp://server.example.com/demo/548/sound RTSP/1.0 CSeq: 3 Session: 91389234234M->C: RTSP/1.0 200 OK CSeq: 3

Page 74: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Implémentations (by Schulzrinne)• Apple Darwin QuickTime Streaming Server

server MacOS, unix SDP open source, full RTP/RTSP server • Apple QuickTime 4

client MacOS, Windows SDP QuickTime 4 also supports importing SDP files that describe multicasts, with standard decoders.

• Cern Wrtp • Columbia University rtspd

server NT, Solaris SDP no container files • Entera Entera Lightweight Streaming Application

server Window, unix SDP • IBM RTSP Toolkit • KOM TU-Damstadt KOM-Player

player Linux, AIX SDP MPEG-1 System; alternative RTSP server for IBM's VideoCharger • nCUBE Corporation rtspsrv

server Transit SDP Delivers MPEG-2 video over ATM, QAM, or DVB-ASI; no RTP delivery. • Oracle Corporation Oracle Video Server

client, server Windows, unix SDP MPEG-1 Systems, MPEG-2 Transport, AVI codecs. ATM, QAM, IP, DVB-ASI. No RTP delivery.

• Real Networks Real Networks proxy kit (firewall)

• Real Networks Real Networks server Windows, unix SDP, RTSL

• Real Networks RealServer G2 server Windows, unix SDP, SMIL supports RTP for RTP-based clients

• Real Networks "Hosting" server server Windows, unix Streams .au and .wav files over RTP when configured for multicast.

• Sun JMF 2.1 client Solaris, Windows, MacOS

• Sun MediaCentral server server Solaris

• Vovida server Linux Open source, RECORD and PLAY

Page 75: Le streaming des média à la demande sur Internet S. Natkin Février 2005

Bibliographie

• General

– Schulzrinne, IRT (Internet Real-Time) lab, http://www.cs.columbia.edu/~hgs/research/IRT

• RTP

– Schulzrinne, Casner, Frederick, Jacobson, « RTP, a tranport protocol for real-time applications », IETF, work in progress, <draft-ietf-avt-rtp-new-09.txt>, March 2001.

– Schulzrinne, RTP home page, http://www.cs.columbia.edu/~hgs/rtp/

• RTSP

– Schulzrinne, Rao, Lanphier, « Real-Time Streaming Protocol (RTSP) », IETF, Request For Comments 2327, April 1998.

– Schulzrinne, RTSP home page, http://www.cs.columbia.edu/ ~hgs/rtsp/