0
Cyril Concolato
Introduction
au streaming sur HTTP
et
à la norme MPEG-DASH
Cyril Concolato
Groupe Multimédia
Telecom Paris...
Cyril Concolato
Plan
 Contexte
 Principes et problèmes du HTTP streaming
 La norme MPEG-DASH
 Utiliser MPEG-DASH
02/10...
Cyril Concolato
Consommation vidéo:
Situation actuelle (sur Internet)
02/10/2013 Introduction HTTP Streaming & MPEG-DASH -...
Cyril Concolato
Consommation vidéo:
Prévisions (sur mobile)
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée G...
Cyril Concolato
Consommation vidéo:
Nouveau formats, nouveaux débits
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - ...
Cyril Concolato
Consommation vidéo:
Diversité des périphériques vidéo connectés
02/10/2013 Introduction HTTP Streaming & M...
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 à ...
Cyril Concolato
Streaming vidéo sur HTTP:
Avantages & problèmes
 Facilité de déploiement (comparativement à RTP)
• Traver...
Cyril Concolato
Streaming vidéo sur HTTP:
Premières solutions (1/2)
 Approches simplistes
• Téléchargement simple puis le...
Cyril Concolato
HTTP Server
Streaming vidéo sur HTTP:
Exemple pour la VoD
02/10/2013 Introduction HTTP Streaming & MPEG-DA...
Cyril Concolato
Streaming vidéo sur HTTP:
Premières solutions (2/2)
 Téléchargement progressif pour le « live »
• Lecture...
Cyril Concolato
Streaming vidéo adaptatif sur HTTP:
Difficultés et principes de base
 Difficulté du streaming adaptatif
•...
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:
E...
Cyril Concolato
Streaming vidéo adaptatif sur HTTP:
Rôles des clients et du serveur
 Système asymétrique orienté client
...
Cyril Concolato
Streaming vidéo adaptatif sur HTTP:
Rôle des caches et CDN
02/10/2013 Introduction HTTP Streaming & MPEG-D...
Cyril Concolato
Streaming Vidéo Adaptatif sur HTTP:
Chaîne de distribution
02/10/2013 Introduction HTTP Streaming & MPEG-D...
Cyril Concolato
Streaming vidéo adaptatif sur HTTP:
Le problème du changement de qualité
 Changement de qualité de D1,n-1...
Cyril Concolato
Streaming vidéo adaptatif sur HTTP:
Les technologies existantes
 Technologies propriétaires
• Echostar / ...
Cyril Concolato
Apple HTTP Live Streaming
 Solution complète
• Live, VOD & streaming adaptatif
 Spécification soumise à ...
Cyril Concolato
Microsoft IIS Smooth Streaming
 Solution complète
• Live, VOD & Streaming adaptatif
 Solution intégrée a...
Cyril Concolato
MPEG-DASH
Un standard pour remplacer les
solutions propriétaires
02/10/2013 Introduction HTTP Streaming & ...
Cyril Concolato
MPEG DASH
 Standard ISO/IEC 23009-1:2012
• Support for Live, VOD and Adaptive Streaming
• Standard dispon...
Cyril Concolato
MPEG-DASH:
Modèle Client
O/IEC 23009-1:2012(E)
Figure 2 — DASH Client Model
3 DASH data model overview
ASH...
Cyril Concolato
MPEG-DASH:
Terminologie (1/2)
 Segment = portion/morceau de bitstream
• Définition exacte selon le type d...
Cyril Concolato
MPEG-DASH:
Terminologie (2/2)
 AdaptationSet = ensemble de représentations
d’un même média
• Utilisé pour...
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
I...
Cyril Concolato
MPEG-DASH:
La notion de « Représentation »
 Médias multiplexés
• dans un seul AdaptationSet
• Les composa...
Cyril Concolato
MPEG-DASH:
Les segments
 Adressables via des URL HTTP
• Absolu (1 URL par segment)
• Byte-range request (...
Cyril Concolato
MPEG-DASH:
Les types d’URLs
 URL Explicite
• pointe directement vers une ressource HTTP
 URL Template
• ...
Cyril Concolato
MPEG-DASH:
Exemple de manifest
<MPD type="static" minBufferTime="PT1.5S" mediaPresentationDuration="PT0H10...
Cyril Concolato
MPEG-DASH:
Le modèle de temps
 Défini par période
• Une base de temps par période
• Offset (T0) configura...
Cyril Concolato
MPEG-DASH:
Les point d’accès
 Historique: RAP (Random Access Point)
• I / IDR frame
 Dans la pratique, c...
Cyril Concolato
MPEG-DASH:
L’indexation
 Permettre l’accès aléatoire dans un media
• Certains format n’ont pas les outils...
Cyril Concolato
MPEG-DASH:
Exemple d’indexation – la syntaxe SIDX
 SIDX est complet
• L’ensemble des média du segment est...
Cyril Concolato
Format de fichier ISOBMF:
Rappel
 Structure hiérarchique à base de « boîtes »
• Identifiant de boîte sur ...
Cyril Concolato
Structure typique d’un fichier ISO
36
ISO File
ftyp moov
mvhd trak
tkhd mdia
mdhd minf
vmhd dinf
dref
stbl...
Cyril Concolato
Fichier ISO à deux pistes
02/10/201337
frame
samplesample
frame
sample
mdat
trak
moov
Audio track
trak
Vid...
Cyril Concolato
Structure d’un fichier ISO fragmenté
38
moov
mvex
mehd
trex
trex
…
moof
mfhd
traf
traf
tfhd
trun
trun
…
…
...
Cyril Concolato
Structure d’un fichier ISO fragmenté
02/10/201339
trak
moo
v
Audio track
trak
Video track
mdat
trex trex
t...
Cyril Concolato
MPEG-DASH:
Les Segments ISOBMF
 Segment (ou subsegment)
• Boite « styp »
• suite de fragments (moof+mdat)...
Cyril Concolato
MPEG-DASH:
Les Segments ISOBMF (2/2)
 InitializationSegment
• ISOBMF VIDE !
• Défaut des fragments (compa...
Cyril Concolato
MPEG-DASH:
Les Segments MPEG-2 TS
 Segment (ou subsegment)
• Suite de packets TS (188 bytes)
• Un seul pr...
Cyril Concolato
MPEG-DASH:
Les Segments MPEG-2 TS (2/2)
 Indexed Segment
• Structure ISOBMF, hors flux TS
• Boite styp, s...
Cyril Concolato
MPEG-DASH:
Notions avancées
 Sous-Représentations
• Accès à un composant dans un multiplexe
• Accès à une...
Cyril Concolato
MPEG-DASH:
Notions avancées
 Disponibilité de session
• Début, Fin
• TimeShiftBufferDepth
 Distribution ...
Cyril Concolato
MPEG-DASH:
Les métriques de qualité
 Collection d’info QoS/QoE
• Début et durée de l’analyse
• Types de d...
Cyril Concolato
MPEG-DASH:
Les métriques de qualité (2/2)
 Critères Réseaux
• TCP:
─ Adresses IP, Interface IP
─ temps d’...
Cyril Concolato
MPEG-DASH: les profiles
ISOBMF onDemand
 Un seul segment par représentation
• Alignement temporel des sou...
Cyril Concolato
MPEG-DASH: les profiles
ISOBMF Live Profile
 N segments par représentation
• Alignement temporel des segm...
Cyril Concolato
MPEG-DASH: les profiles
ISOBMF Main Profile
 N segments par représentation
• Alignement temporel des segm...
Cyril Concolato
MPEG-DASH: les profiles
MPEG-2 TS
 Main Profile: Recommandations
• Indexing optionnel
• Alignement tempor...
Cyril Concolato
Utiliser MPEG-DASH
Les outils
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS52
Cyril Concolato
DASH Industry Forum
 Consortium pour la promotion de DASH
• Recommandations de bonnes pratiques
─ DASH-26...
Cyril Concolato
HTML5 Media Source
 Recommandation par le W3C en cours de développement
• Extension à la recommandation H...
Cyril Concolato
Outils Open Source
 GPAC, http://gpac.wp.mines-telecom.fr
• MP4Box
─ Manipuler des fichiers MP4
─ Générer...
Cyril Concolato
GPAC MP4Box
 Génération de segments conformes
• Formats: ISOBMFF & M2TS
• MPD (tout les profiles)
 Suppo...
Cyril Concolato
Contenus
 Séquences Telecom ParisTech
• http://download.tsi.telecom-
paristech.fr/gpac/DASH_CONFORMANCE/T...
Cyril Concolato
Références
 Publications scientifiques
• ICME 2013
─ Tutoriel par T. Stockhammer & A. Begen
─ http://www....
Cyril Concolato
Questions?
cyril.concolato@telecom-paristech.fr
Upcoming SlideShare
Loading in...5
×

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

29,224

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
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
29,224
On Slideshare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
154
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×