Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH

36,293 views

Published on

Présentation donnée lors de la réunion du 1/10/2013 au GDR-ISIS, présentant les concepts de streaming vidéo sur HTTP, la norme MPEG-DASH et les outils Open Source permettant de manipuler du contenu DASH.

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
36,293
On SlideShare
0
From Embeds
0
Number of Embeds
10,261
Actions
Shares
0
Downloads
233
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH

  1. 1. Cyril Concolato Introduction au streaming sur HTTP et à la norme MPEG-DASH Cyril Concolato Groupe Multimédia Telecom ParisTech 01/10/2013
  2. 2. Cyril Concolato Plan  Contexte  Principes et problèmes du HTTP streaming  La norme MPEG-DASH  Utiliser MPEG-DASH 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS2
  3. 3. Cyril Concolato Consommation vidéo: Situation actuelle (sur Internet) 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS3 Netflix 32% YouTube 17%HTTP 11% BitTorrent 6% MPEG 3% Hulu 2% iTunes 2% SSL 2% Flash Video 2% Facebook 1% Other 22% Consommation par accès Internet fixe aux Etats-Unis Source: Rapport Sandvine 1H 2013
  4. 4. Cyril Concolato Consommation vidéo: Prévisions (sur mobile) 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS4
  5. 5. Cyril Concolato Consommation vidéo: Nouveau formats, nouveaux débits 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS5
  6. 6. Cyril Concolato Consommation vidéo: Diversité des périphériques vidéo connectés 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS6
  7. 7. Cyril Concolato Streaming vidéo sur HTTP: Approche générale et défis  « Adapter la vidéo au Web, et non adapter le web à la vidéo » • Réutilisation des infrastructures du Web (protocoles, infrastructures) • Distribution « Over The Top » (OTT)  Défis • Cibler tous les périphériques connectés au Web ─ TV connectées (e.g. HbbTV), PC, smartphones, tablettes • Fournir au moins les mêmes services que la TV broadcast et l’IPTV sur un réseau non-managé ─ Contenu streamé à la demande et « live » ─ Sous-titrage et multi-langues ─ Qualité et robustesse du système ─ Gestion des revenus: publicité, contenus premium • Et plus de services encore ─ Services de rattrapage ─ Services personalisés ─ Plus de contenus enrichis: angles de vue, metadonnées, extensions 3D, … 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS7
  8. 8. Cyril Concolato Streaming vidéo sur HTTP: Avantages & problèmes  Facilité de déploiement (comparativement à RTP) • Traversée des pare-feux, des serveurs de translation d’adresses • Réutilisation possible des caches, proxys, serveurs web existants  Problèmes liés à TCP • Congestion possible du réseau et non respect des contraintes temps-réel ─ Délai et gigue: « rebuffering » ─ Perte de paquets: échéances manquées • Partage de bande passante  Problèmes liés à HTTP • Protocole orienté « fichiers » et non streaming • Plusieurs approches mises en œuvre par le passé 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS8
  9. 9. Cyril Concolato Streaming vidéo sur HTTP: Premières solutions (1/2)  Approches simplistes • Téléchargement simple puis lecture • P2P simple puis lecture  Téléchargement progressif • Lecture progressive d’un fichier en cours de téléchargement (e.g. YouTube) ─ Taille de fichier connue à l’avance ─ Entrelacement audio/vidéo ─ Difficulté d’adapter le téléchargement à la bande passante ─ Difficulté de gestion du « live » • Lecture progressive avec contrôle ─ Utilisation du header du fichier pour déterminer les plages de données à jouer • association temps média/position dans la fichier ─ Utilisation de requêtes HTTP avec « byte-range » 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS9
  10. 10. Cyril Concolato HTTP Server Streaming vidéo sur HTTP: Exemple pour la VoD 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS Header V1 A1 V2 A2 V3 A3 Vk-& Ak-1 Vk Ak Vk+1Ak+1 Media Data V1 A1 V2 A2 V3 A3 Vk-& Ak-1 Vk Ak Vk+1Ak+1 Client Header V1 A1 V2 A2 V3 A3 Vk-& Ak-1 Vk Ak Vk+1Ak+1 V1 A1 V2 A2 V3 A3 Play Vk-& Ak-1 Vk Ak Vk+1Ak+1 Seek 10
  11. 11. Cyril Concolato Streaming vidéo sur HTTP: Premières solutions (2/2)  Téléchargement progressif pour le « live » • Lecture progressive d’un fichier infini (e.g. web radios) ─ Modification du protocole HTTP (IceCast, ShoutCast) ─ Difficulté de contrôler la lecture (play/pause/fast forward) ─ Difficulté de mettre en cache le contenu et de gérer un grand nombre d’utilisateurs simultanés ─ Difficulté de gestion de la dynamicité des contenus (e.g. nombre de flux)  Comment fournir une solution unique? • Live&VoD, dynamique, adaptative, cacheable  Streaming Video Adaptatif sur HTTP 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS11
  12. 12. Cyril Concolato Streaming vidéo adaptatif sur HTTP: Difficultés et principes de base  Difficulté du streaming adaptatif • Difficulté de mesure de la bande passante • Adaptation coûteuse du débit côté serveur ─ transcodage ─ Nombre d’utilisateurs  Principes • S’appuyer sur le téléchargement de fichier sur HTTP (serveurs web non modifiés) • Découper un fichier en plusieurs morceaux séparés de durée plus courte (qques secondes) • Fournir ces morceaux en différentes qualités, débits • Encoder ces morceaux de façon à permettre le changement de qualité/débit à la fin d’un morceau • Signaler au client la liste des morceaux et le temps associé • Signaler au client les différentes qualités • Laisser le client décider en fonction de sa bande passante • Mettre à jour la liste des fichiers en temps réel 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS12
  13. 13. Cyril Concolato HTTP Server Header V1 A1 V2 A2 V3 A3 Media Data V1 A1 V2 A2 V3 A3 V2 Streaming vidéo adaptatif sur HTTP: Exemple 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS13 Client Header V1 A1 V2 A2 V3 A3 Header Media Data Vk-& Ak-1 Vk Ak Vk+1Ak+1 Vk-& Ak-1 Vk Ak Vk+1Ak+1 Header Vk-& Ak-1 Vk Ak Vk+1Ak+1 V1 A1 V2 A2 V3 A3 Vk-& Ak-1 Vk Ak Vk+1Ak+1 Header Media Data Vk-& Ak-1 Vk Ak Vk+1Ak+1 Vk-& Ak-1 Vk Ak Vk+1Ak+1 V1 Header Media Data Vj-1 Aj-1 Vj Aj Vj+1 Aj+1 Vj-11 Aj-1 Vj Aj Vj+1 Aj+1
  14. 14. Cyril Concolato Streaming vidéo adaptatif sur HTTP: Rôles des clients et du serveur  Système asymétrique orienté client  Client • Téléchargement, lecture et mise à jour du manifeste ─ Systèmes de « polling » (principalement) ou de « push » • Gestion des téléchargements des fichiers média ─ Contrôle de la lecture • Basée sur la vitesse de téléchargement • Basée sur le niveau du buffer ─ Décision d’adaptation et choix de la qualité  Serveur • Système sans état (pas de session ID) ─ 1 URL correspond à un contenu unique • Modifications éventuelles pour le live 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS14
  15. 15. Cyril Concolato Streaming vidéo adaptatif sur HTTP: Rôle des caches et CDN 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS15
  16. 16. Cyril Concolato Streaming Vidéo Adaptatif sur HTTP: Chaîne de distribution 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS16
  17. 17. Cyril Concolato Streaming vidéo adaptatif sur HTTP: Le problème du changement de qualité  Changement de qualité de D1,n-1 -> D2,k • Téléchargement de δd média inutile • Double décodage de δt média  Alignement temporel des média • Supprime double téléchargement (δd=0) et double décodage (δt=0) • Simplifie la description temporelle des segments 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS t Débit 1 Débit 2 n-1 n n+1 k-1 k I-frame δt k+1 n+2 k+2 δd 17
  18. 18. Cyril Concolato Streaming vidéo adaptatif sur HTTP: Les technologies existantes  Technologies propriétaires • Echostar / Move Networks • Microsoft Smooth Streaming (MSS) • Apple HTTP Live Streaming (HLS) • Adobe HTTP Dynamic Streaming (HDS)  Technologies standards • 3GPP Adaptive HTTP Streaming (AHS) • MPEG Dynamic Adaptive Streaming over HTTP (DASH) • W3C HMTL5 Media Source 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS18
  19. 19. Cyril Concolato Apple HTTP Live Streaming  Solution complète • Live, VOD & streaming adaptatif  Spécification soumise à l’IETF • Supporté sur iPhone, iPad and quelques lecteurs de bureau  Format de description des fichiers média (Playlist) • Basé sur le format M3U8 (Playlist MP3 étendu, pas XML) • Identification par type MIME: ─ « audio/x-mpegURL » ─ « video/x-mpegURL » ─ « application/x-mpegURL »  Fichiers média • Segments de 10 secondes (~3 segments de buffer) • Fichier AAC pour les flux audio-seul • MPEG-2 Transport Stream avec AAC Audio & AVC Video • Sous-titrage avec le format WebVTT  https://developer.apple.com/streaming/#examples 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS19
  20. 20. Cyril Concolato Microsoft IIS Smooth Streaming  Solution complète • Live, VOD & Streaming adaptatif  Solution intégrée au système Windows Media • Supportée sur les platformes avec Silverlight  Format de description des fichiers média • Fichier XML propriétaire  Fichier média • Fichier MP4 modifiés (notamment pour la protection)  Demo 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS20
  21. 21. Cyril Concolato MPEG-DASH Un standard pour remplacer les solutions propriétaires 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS21 Source: xkcd.com
  22. 22. Cyril Concolato MPEG DASH  Standard ISO/IEC 23009-1:2012 • Support for Live, VOD and Adaptive Streaming • Standard disponible gratuitement et ‘royalty free’  Tentative d’unification des solutions existantes • Commerciales, 3GPP, OIPF • Dévelopée par un consortium industriel important: Qualcomm, Microsoft, Adobe, Ericsson, Apple, … • Principes identiques  Format de description des fichiers média: manifeste • Description XML appelée MPD (Media Presentation Description)  Formats de fichiers media: « segments » • MPEG-2 TS et ISO Base Media File • Possibilité d’étendre DASH avec d’autres formats (Matroska, …) 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS22
  23. 23. Cyril Concolato MPEG-DASH: Modèle Client O/IEC 23009-1:2012(E) Figure 2 — DASH Client Model 3 DASH data model overview ASH is intended to support a media-streaming model for delivery of media content in which control clusively with the client. Clients may request data using the HTTP protocol from standard web servers t ve no DASH-specific capabilities. Consequently, this standard focuses not on client or server procedu 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS23
  24. 24. Cyril Concolato MPEG-DASH: Terminologie (1/2)  Segment = portion/morceau de bitstream • Définition exacte selon le type de bitstream (TS, ISOBMF) • Sous-segment = portion d’un segment  Représentation= suite de segments • aux mêmes caractéristiques (résolution, framerate, bitrate, …) 02/10/201324 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  25. 25. Cyril Concolato MPEG-DASH: Terminologie (2/2)  AdaptationSet = ensemble de représentations d’un même média • Utilisé pour l’adaptation en débit/capacité terminal • Représentations « équivalentes »: même aspect ratio, même langage, …  Groupe = ensemble d’AdaptationSet alternatifs • Critères: langage, aspect ratio, point de vue, …  Période = ensemble des médias partageant la même base de temps •  programme (au sens MPEG-2) 02/10/201325 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  26. 26. Cyril Concolato MPEGd-DASH: Modèle de données 02/10/201326 ISO/IEC 23009-1:2012(E) Figure 3 — DASH High-Level Data Model Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  27. 27. Cyril Concolato MPEG-DASH: La notion de « Représentation »  Médias multiplexés • dans un seul AdaptationSet • Les composants de la représentation sont indiqués via <ContentComponent> • Coût stockage plus important (eg audio dupliqué)  Médias Indépendants • Un AdaptationSet par media (audio, vidéo) • Segments différents  Identification • type MIME (video/mp4 …) • type de codec (avc1.640828) – RFC6381 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS27
  28. 28. Cyril Concolato MPEG-DASH: Les segments  Adressables via des URL HTTP • Absolu (1 URL par segment) • Byte-range request (1 URL pour N segments)  3 types • Segment d’ « Initialisation » ─ Données communes aux différentes représentations • MPEG-2: PAT,PMT,CAT • ISOBMF: moov • Segment de « BitstreamSwitching » ─ Données nécessaires lors du switching • Assure que la concaténation des segments venant de différentes représentations est conforme • Segment d’« Index » ─ Indexation haut-niveau timerange->byterange ─ Même format pour MPEG-2 et MPEG-4 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS28
  29. 29. Cyril Concolato MPEG-DASH: Les types d’URLs  URL Explicite • pointe directement vers une ressource HTTP  URL Template • Permet la construction de l’URL en fonction des paramètres du segment à récupérer • Paramètres de substitution: ─ $RepresentationID$: ID de la représentation ─ $Number$: numéro du segment ─ $Bandwidth$: bande passante de la représentation ─ $Time$: temps de début du segment 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS29
  30. 30. Cyril Concolato MPEG-DASH: Exemple de manifest <MPD type="static" minBufferTime="PT1.5S" mediaPresentationDuration="PT0H10M0.00S"> <ProgramInformation moreInformationURL="http://gpac.sourceforge.net"> <Title>Media Presentation Description for file ZZZ</Title> </ProgramInformation> <Period start="PT0S" duration="PT0H10M0.00S"> <AdaptationSet> <ContentComponent id="1" contentType="video"/> <ContentComponent id="2" contentType="audio" lang="und"/> <SegmentTemplate initialization="counter-10mn_I25_openGOP_init.mp4"/> <Representation id="1" mimeType="video/mp4" codecs="avc1.64000d,mp4a.40.02" width="320" height="180" sampleRate="44100" numChannels="1" lang="und" startWithSAP="3" bandwidth="109952"> <SegmentTemplate timescale="1000" duration="9880" media="seg40_$Number$.m4s" startNumber="1"/> </Representation> <Representation id="2" mimeType="video/mp4" codecs="avc1.64000d,mp4a.40.02" width="320" height="180" sampleRate="44100" numChannels="1" lang="und" startWithSAP="3" bandwidth="182078"> <SegmentTemplate timescale="1000" duration="9880" media="seg112_$Number$.m4s" startNumber="1"/> </Representation> </AdaptationSet> </Period> </MPD> 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS30
  31. 31. Cyril Concolato MPEG-DASH: Le modèle de temps  Défini par période • Une base de temps par période • Offset (T0) configurable  Switching • effectué en respectant les temps de présentation (PTS) entre deux représentations ─ PAS les temps de décodage (I/P/B <-> I/P) • Nécessité de bien déterminer ─ Les points d’accès (endroit où le switching peut avoir lieu) ─ Les temps de présentation de ces points d’accès 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS31
  32. 32. Cyril Concolato MPEG-DASH: Les point d’accès  Historique: RAP (Random Access Point) • I / IDR frame  Dans la pratique, cas plus complexes • Open GOP: Trames du GOP N+1 avec des références vers GOP N • Gradual Decoding Refresh: pas de « I » ou « IDR » mais un rafraichissement de l’image sur N>1 trames  SAP: Stream Access Point • Définit les différents types de points d’accès ─ 1,2: Closed GOP ─ 3: Open GOP ─ 4: GDR ─ 5&6: passons … 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS32
  33. 33. Cyril Concolato MPEG-DASH: L’indexation  Permettre l’accès aléatoire dans un media • Certains format n’ont pas les outils nécessaires (TS) • Nécessite de lire beaucoup de données du segment (ISOBMF)  Création d’une table d’indexation « sidx » • Une table par segment • N (configurable par l’encodeur) entrées ou sous-segments, avec: ─ Durée et taille du sous-segment ─ Type de point d’accès (SAP) ─ temps entre le début du sous-segment et le point d’accès ─ Un sous-segment peut lui-même être un SIDX+média associé • Localisation de la table ─ Dans le fichier (ISOBMF) ─ Hors fichier (TS ou ISOBMF) ─ Récupérable via HTTP GET (avec ou sans byte-range) 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS33
  34. 34. Cyril Concolato MPEG-DASH: Exemple d’indexation – la syntaxe SIDX  SIDX est complet • L’ensemble des média du segment est indexé ─ Pas de trou 02/10/2013 SIDX - earliest PTS - for NbSubSeg - ref_type - size - duration - SAP_type - SAP_Offset SIDX - … Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS34
  35. 35. Cyril Concolato Format de fichier ISOBMF: Rappel  Structure hiérarchique à base de « boîtes » • Identifiant de boîte sur 4 octets (ou 16 - UUID) • Longueur sur 4 octets (ou 8) • Données ─ Pas de données en dehors des boîtes ─ Facilité d’ignorer les boîtes non reconnues  Séparation données média et données de signalisation (header) • « moov » vs. « mdat » 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS35
  36. 36. Cyril Concolato Structure typique d’un fichier ISO 36 ISO File ftyp moov mvhd trak tkhd mdia mdhd minf vmhd dinf dref stbl stsd stts stsz … … hdlr ... iods mdat … 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  37. 37. Cyril Concolato Fichier ISO à deux pistes 02/10/201337 frame samplesample frame sample mdat trak moov Audio track trak Video track Movie (meta-data) Media Data sample Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  38. 38. Cyril Concolato Structure d’un fichier ISO fragmenté 38 moov mvex mehd trex trex … moof mfhd traf traf tfhd trun trun … … mdat mdat File ftyp 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  39. 39. Cyril Concolato Structure d’un fichier ISO fragmenté 02/10/201339 trak moo v Audio track trak Video track mdat trex trex trun moof traf trun traf mdat trun trun moof traf trun traf mdat trun Movie Movie Fragment Movie Fragment … Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  40. 40. Cyril Concolato MPEG-DASH: Les Segments ISOBMF  Segment (ou subsegment) • Boite « styp » • suite de fragments (moof+mdat) ─ Données média dans le même fichier ─ Position (byte offset) des trames / début du « moof » • Un segment contient au moins un SAP • Information du temps de décodage du premier sample de chaque track (tfdt) pour chaque fragment ─ DTS stockés comme des durées, pas des temps absolu ─ DTS=0 au début de chaque moof 02/10/2013 Vidéo Audio Vidéo Audio Vidéo Audio tfdtaudio- tfdtvideo Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS40
  41. 41. Cyril Concolato MPEG-DASH: Les Segments ISOBMF (2/2)  InitializationSegment • ISOBMF VIDE ! • Défaut des fragments (compacité des tables) • Configuration des décodeurs (SPS/PPS) ─ POUR CHAQUE DEBIT  Indexed Segment • Segment avec une boite « sidx » avant le premier fragment ─ Potentiellement d’autres sidx dans le segment  BitStreamSwitching Segment • Pas utilisé 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS41
  42. 42. Cyril Concolato MPEG-DASH: Les Segments MPEG-2 TS  Segment (ou subsegment) • Suite de packets TS (188 bytes) • Un seul programme • Comprenant un nombre entier N de trames vidéo ─ Nombre de trames audio pas forcément entier  InitializationSegment • PAT, PMT et tout PSI constant sur la durée du flux • ECM si constant sur la durée du flux • Optionnel – si absent, PAT/PMT/ECM en début de segment  BitstreamSwitching Segment • Utilisé pour rendre conforme la concaténation des segments TS 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS42
  43. 43. Cyril Concolato MPEG-DASH: Les Segments MPEG-2 TS (2/2)  Indexed Segment • Structure ISOBMF, hors flux TS • Boite styp, sidx • Boite pcrb: indique le PCR du premier byte du premier paquet TS de chaque sous-segment 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS43
  44. 44. Cyril Concolato MPEG-DASH: Notions avancées  Sous-Représentations • Accès à un composant dans un multiplexe • Accès à une version de base dans un codage hiérarchique (SVC, MVC)  Utilisation possibles des représentation • Video 3D: stereo (frame packing), multiview • Viewpoint • Role ─ Chapitre, sous-titre ─ Commentary/dub • Rating, Accessibility • Trick Mode 02/10/201344 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  45. 45. Cyril Concolato MPEG-DASH: Notions avancées  Disponibilité de session • Début, Fin • TimeShiftBufferDepth  Distribution de MPD • <Location> peut rediriger vers un serveur HTTP pour les mises à jours de MPD  Changement d’URLs • <BaseURL> permet de changer l’URL de base de n’importe quel élément dans la hierarchie MPD 02/10/201345 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  46. 46. Cyril Concolato MPEG-DASH: Les métriques de qualité  Collection d’info QoS/QoE • Début et durée de l’analyse • Types de données • Indiqué par le fournisseur dans le MPD  Plusieurs points de collecte • Pile TCP • Assemblage des segments • Sortie du lecteur 02/10/201346 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  47. 47. Cyril Concolato MPEG-DASH: Les métriques de qualité (2/2)  Critères Réseaux • TCP: ─ Adresses IP, Interface IP ─ temps d’ouverture/fermeture/connexion • HTTP ─ URL avant et après redirect + byte-range ─ Temps de requête et de réponse + code ─ Trace des taux de transferts à intervalle donné  Critères Switching • Temps du switch (absolu et temps média), représentations ID • Niveaux de buffers (segments  Critères lecture • Actions play/pause/stop/… et temps associé • … 02/10/201347 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  48. 48. Cyril Concolato MPEG-DASH: les profiles ISOBMF onDemand  Un seul segment par représentation • Alignement temporel des sous-segments • Sous-segments démarrent avec SAP 1, 2 ou 3  Indexing obligatoire • Tous les « sidx » avant le premier moof  Segment « Self-initializing » • Le segment contient le « moov »: ─ Fichier = styp, moov, sidx, moof,mdat … moof, mdat  Non utilisable pour du live 02/10/201348 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  49. 49. Cyril Concolato MPEG-DASH: les profiles ISOBMF Live Profile  N segments par représentation • Alignement temporel des segments • Segments démarrent avec SAP 1, 2 ou 3  Indexing optionnel • Tous les « sidx » avant le premier moof  Utilisable pour du live ou VoD 02/10/201349 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  50. 50. Cyril Concolato MPEG-DASH: les profiles ISOBMF Main Profile  N segments par représentation • Alignement temporel des segments • Segments démarrent avec SAP 1, 2 ou 3 • Chaque sous-segment à un SAP 1, 2, ou 3  Indexing optionnel • Tous les « sidx » avant le premier moof  Utilisable pour du live ou VoD 02/10/201350 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  51. 51. Cyril Concolato MPEG-DASH: les profiles MPEG-2 TS  Main Profile: Recommandations • Indexing optionnel • Alignement temporel des segments • Chaque segment démarre avec SAP 1, 2 ou 3  Simple Profile • PSI identique dans toutes les représentations • Si CAS, ECM valide sur la durée d’un sous-segment ou du segment si pas de sidx • Indexing optionnel 02/10/201351 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS
  52. 52. Cyril Concolato Utiliser MPEG-DASH Les outils 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS52
  53. 53. Cyril Concolato DASH Industry Forum  Consortium pour la promotion de DASH • Recommandations de bonnes pratiques ─ DASH-264/AVC Guidelines • Campagne d’interoperabilité 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS53
  54. 54. Cyril Concolato HTML5 Media Source  Recommandation par le W3C en cours de développement • Extension à la recommandation HTML 5  Interface de programmation JavaScript • Contrôle du buffer de décodage ─ Ajout, suppression de segments • Supportée par Google Chrome, MS IE 11, (Firefox)  Possibilité de jouer du contenu DASH • Pas de nécessité du manifest XML (remplacé par du JSON) • Utilisation de segments média DASH  Lecteurs disponibles • DASH.js: http://dashif.org/reference/players/javascript/1.0.0/index.html • DASH-JS: http://www-itec.uni-klu.ac.at/dash/?page_id=746 • YouTube: http://dash-mse-test.appspot.com/dash-player.html 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS54
  55. 55. Cyril Concolato Outils Open Source  GPAC, http://gpac.wp.mines-telecom.fr • MP4Box ─ Manipuler des fichiers MP4 ─ Générer une présentation DASH off-line ─ Simuler la génération en live • DashCast ─ Encoder un flux en multiples qualités ─ Générer le MPD pour le « live » et le « on-demand » • MP4Client ─ Lecteur (toute platforme)  LibDASH, http://www.bitmovin.net/libdash.html • Développée par une spin-off (Bitmovin) de l’université de Klagenfurt (Autriche)  DASHEncoder, http://www-itec.uni- klu.ac.at/dash/?page_id=282 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS55
  56. 56. Cyril Concolato GPAC MP4Box  Génération de segments conformes • Formats: ISOBMFF & M2TS • MPD (tout les profiles)  Support pour différentes syntaxes MPD • SegmentList, SegmentTemplate, SegmentTimeline  Regroupement autotmatique des entrées en “adaptation sets”, representations, groups, • Sur la base des caractéristiques des flux entrants  Génération flexible des segments et sous-segments • indexation, alignement RAP, différents modes de “switching”  Génération de MPD "dynamic“, de segments et de mises à jour à partir de contenu pré-enregistré 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS56
  57. 57. Cyril Concolato Contenus  Séquences Telecom ParisTech • http://download.tsi.telecom- paristech.fr/gpac/DASH_CONFORMANCE/TelecomPar isTech/  « Distributed DASH dataset » • S. Lederer, C. Mueller, C. Timmerer, C. Concolato, J. Le Feuvre, K. Fliegel. 2013. Distributed DASH dataset. In Proc. of the 4th ACM Multimedia Systems Conference (MMSys '13). • http://www-itec.uni-klu.ac.at/dash/?page_id=958  Séquences DASH-IF 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS57
  58. 58. Cyril Concolato Références  Publications scientifiques • ICME 2013 ─ Tutoriel par T. Stockhammer & A. Begen ─ http://www.icme2013.org/tutorials.php#tuthttp • MMSys 2011 ─ Session spéciale: http://www.mmsys.org/?q=node/46 • IEEE JSAC Special Issue http://www.jsac.ucsd.edu/Calls/adaptivemediastreamin gCFPa.pdf  Cours • Formation Continue à Telecom ParisTech 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS58
  59. 59. Cyril Concolato Questions? cyril.concolato@telecom-paristech.fr

×