SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
Cyril Concolato
Introduction
au streaming sur HTTP
et
à la norme MPEG-DASH
Cyril Concolato
Groupe Multimédia
Telecom ParisTech
01/10/2013
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
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
Cyril Concolato
Consommation vidéo:
Prévisions (sur mobile)
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS4
Cyril Concolato
Consommation vidéo:
Nouveau formats, nouveaux débits
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS5
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
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
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
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
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
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
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
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
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
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
Cyril Concolato
Streaming Vidéo Adaptatif sur HTTP:
Chaîne de distribution
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS16
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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-264/AVC Guidelines
• Campagne d’interoperabilité
02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS53
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
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
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
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
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
Cyril Concolato
Questions?
cyril.concolato@telecom-paristech.fr

Mais conteúdo relacionado

Mais procurados

RIP RTCP RTSP
RIP RTCP RTSPRIP RTCP RTSP
RIP RTCP RTSPDev Heba
 
Chapter 6 - Multimedia Over Ip
Chapter 6 - Multimedia Over IpChapter 6 - Multimedia Over Ip
Chapter 6 - Multimedia Over IpPratik Pradhan
 
An Introduction to Versatile Video Coding (VVC) for UHD, HDR and 360 Video
An Introduction to  Versatile Video Coding (VVC) for UHD, HDR and 360 VideoAn Introduction to  Versatile Video Coding (VVC) for UHD, HDR and 360 Video
An Introduction to Versatile Video Coding (VVC) for UHD, HDR and 360 VideoDr. Mohieddin Moradi
 
An Overview of the ATSC 3.0 Physical Layer Specification
An Overview of the ATSC 3.0 Physical Layer SpecificationAn Overview of the ATSC 3.0 Physical Layer Specification
An Overview of the ATSC 3.0 Physical Layer SpecificationAlwin Poulose
 
Voip simulation
Voip simulation Voip simulation
Voip simulation Anas ABANA
 
C6 Réseaux : Introduction au routage
C6 Réseaux : Introduction au routageC6 Réseaux : Introduction au routage
C6 Réseaux : Introduction au routagePRONETIS
 
Support De Cours - Reseaux avec et sans fil
Support De Cours - Reseaux avec et sans filSupport De Cours - Reseaux avec et sans fil
Support De Cours - Reseaux avec et sans filTunisie collège
 
Simulation d'un réseau Ad-Hoc sous NS2
Simulation d'un réseau Ad-Hoc sous NS2Simulation d'un réseau Ad-Hoc sous NS2
Simulation d'un réseau Ad-Hoc sous NS2Rihab Chebbah
 
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-basedDesigning an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-basedDr. Mohieddin Moradi
 
Implémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - PrésentationImplémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - PrésentationRihab Chebbah
 
Mpeg 2 transport streams
Mpeg 2 transport streamsMpeg 2 transport streams
Mpeg 2 transport streamschikien276
 

Mais procurados (20)

RIP RTCP RTSP
RIP RTCP RTSPRIP RTCP RTSP
RIP RTCP RTSP
 
SDI to IP 2110 Transition Part 2
SDI to IP 2110 Transition Part 2SDI to IP 2110 Transition Part 2
SDI to IP 2110 Transition Part 2
 
What is rtmp
What is rtmpWhat is rtmp
What is rtmp
 
Chapter 6 - Multimedia Over Ip
Chapter 6 - Multimedia Over IpChapter 6 - Multimedia Over Ip
Chapter 6 - Multimedia Over Ip
 
HTTP Live Streaming
HTTP Live StreamingHTTP Live Streaming
HTTP Live Streaming
 
Soutenance Finale
Soutenance FinaleSoutenance Finale
Soutenance Finale
 
An Introduction to Versatile Video Coding (VVC) for UHD, HDR and 360 Video
An Introduction to  Versatile Video Coding (VVC) for UHD, HDR and 360 VideoAn Introduction to  Versatile Video Coding (VVC) for UHD, HDR and 360 Video
An Introduction to Versatile Video Coding (VVC) for UHD, HDR and 360 Video
 
digital tv DTMB
digital tv DTMBdigital tv DTMB
digital tv DTMB
 
An Overview of the ATSC 3.0 Physical Layer Specification
An Overview of the ATSC 3.0 Physical Layer SpecificationAn Overview of the ATSC 3.0 Physical Layer Specification
An Overview of the ATSC 3.0 Physical Layer Specification
 
Voip simulation
Voip simulation Voip simulation
Voip simulation
 
Audio and Video Streaming
Audio and Video StreamingAudio and Video Streaming
Audio and Video Streaming
 
C6 Réseaux : Introduction au routage
C6 Réseaux : Introduction au routageC6 Réseaux : Introduction au routage
C6 Réseaux : Introduction au routage
 
Support De Cours - Reseaux avec et sans fil
Support De Cours - Reseaux avec et sans filSupport De Cours - Reseaux avec et sans fil
Support De Cours - Reseaux avec et sans fil
 
Simulation d'un réseau Ad-Hoc sous NS2
Simulation d'un réseau Ad-Hoc sous NS2Simulation d'un réseau Ad-Hoc sous NS2
Simulation d'un réseau Ad-Hoc sous NS2
 
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-basedDesigning an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
 
Implémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - PrésentationImplémentation de la QoS au sein d'un IP/MPLS - Présentation
Implémentation de la QoS au sein d'un IP/MPLS - Présentation
 
Video Streaming
Video StreamingVideo Streaming
Video Streaming
 
Réseaux mobiles
Réseaux mobiles Réseaux mobiles
Réseaux mobiles
 
Mpeg 2 transport streams
Mpeg 2 transport streamsMpeg 2 transport streams
Mpeg 2 transport streams
 
Etude de la VoIP
Etude de la VoIPEtude de la VoIP
Etude de la VoIP
 

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

PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalPCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalBelkacem KAID
 
Présentation IMF - PAD fichier juin2013
Présentation IMF - PAD fichier juin2013Présentation IMF - PAD fichier juin2013
Présentation IMF - PAD fichier juin2013Mesclado
 
Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...
Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...
Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...Microsoft Technet France
 
La diffusion vidéo avec le Cloud Azure
La diffusion vidéo avec le Cloud AzureLa diffusion vidéo avec le Cloud Azure
La diffusion vidéo avec le Cloud AzureMicrosoft
 
April16 windows azure media services
April16 windows azure media servicesApril16 windows azure media services
April16 windows azure media servicesbenol
 
Presentation master
Presentation masterPresentation master
Presentation mastersamir
 
Video et formats numeriques
Video et formats numeriquesVideo et formats numeriques
Video et formats numeriquesReseau Informed
 
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusVideostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusTarik Zakaria Benmerar
 
Compression video pour la diffusion web
Compression video pour la diffusion webCompression video pour la diffusion web
Compression video pour la diffusion websamir
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimiséeSilicon Comté
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Microsoft Technet France
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Microsoft Décideurs IT
 
Lcty2010 paris so11_sametime 8.5
Lcty2010 paris so11_sametime 8.5Lcty2010 paris so11_sametime 8.5
Lcty2010 paris so11_sametime 8.5a8us
 
ConférenSquad #2 : Akamai - Approche hybride de la diffusion OTT
ConférenSquad #2 : Akamai - Approche hybride de la diffusion OTTConférenSquad #2 : Akamai - Approche hybride de la diffusion OTT
ConférenSquad #2 : Akamai - Approche hybride de la diffusion OTTJustindwah
 
Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...
Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...
Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...Mohammed CHERIFI
 
Convertisseur m2ts
Convertisseur m2ts Convertisseur m2ts
Convertisseur m2ts AcelinNicole
 
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...LeClubQualiteLogicielle
 

Semelhante a Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH (20)

PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalPCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
 
Présentation IMF - PAD fichier juin2013
Présentation IMF - PAD fichier juin2013Présentation IMF - PAD fichier juin2013
Présentation IMF - PAD fichier juin2013
 
Le web en http 2
Le web en http 2Le web en http 2
Le web en http 2
 
Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...
Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...
Windows Azure Media Services: des API pour encoder, transmuxer, diffuser, ...
 
La diffusion vidéo avec le Cloud Azure
La diffusion vidéo avec le Cloud AzureLa diffusion vidéo avec le Cloud Azure
La diffusion vidéo avec le Cloud Azure
 
April16 windows azure media services
April16 windows azure media servicesApril16 windows azure media services
April16 windows azure media services
 
Presentation master
Presentation masterPresentation master
Presentation master
 
Video et formats numeriques
Video et formats numeriquesVideo et formats numeriques
Video et formats numeriques
 
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plusVideostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
Videostreaming et visioconference pour le Web - Evènement GDSC USTHB Tech plus
 
Compression video pour la diffusion web
Compression video pour la diffusion webCompression video pour la diffusion web
Compression video pour la diffusion web
 
Introduction à HDFS
Introduction à HDFSIntroduction à HDFS
Introduction à HDFS
 
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
Retour d'expérience :  gérer des flux vidéos multiples de manière optimiséeRetour d'expérience :  gérer des flux vidéos multiples de manière optimisée
Retour d'expérience : gérer des flux vidéos multiples de manière optimisée
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
 
Lcty2010 paris so11_sametime 8.5
Lcty2010 paris so11_sametime 8.5Lcty2010 paris so11_sametime 8.5
Lcty2010 paris so11_sametime 8.5
 
ConférenSquad #2 : Akamai - Approche hybride de la diffusion OTT
ConférenSquad #2 : Akamai - Approche hybride de la diffusion OTTConférenSquad #2 : Akamai - Approche hybride de la diffusion OTT
ConférenSquad #2 : Akamai - Approche hybride de la diffusion OTT
 
Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...
Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...
Introduction à SPDY, Next Generation Networking Protocols - Google Day X Moro...
 
Convertisseur m2ts
Convertisseur m2ts Convertisseur m2ts
Convertisseur m2ts
 
Gérez vos vidéos sur PC
Gérez vos vidéos sur PCGérez vos vidéos sur PC
Gérez vos vidéos sur PC
 
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
 

Mais de Cyril Concolato

Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the WebCyril Concolato
 
Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4Cyril Concolato
 
Delivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport StreamDelivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport StreamCyril Concolato
 
GPAC Team Research Highlights
GPAC Team Research HighlightsGPAC Team Research Highlights
GPAC Team Research HighlightsCyril Concolato
 
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASHExtensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASHCyril Concolato
 
Live streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASHLive streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASHCyril Concolato
 
Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4Cyril Concolato
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesMPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesCyril Concolato
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesCyril Concolato
 
Adaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia DocumentsAdaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia DocumentsCyril Concolato
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesCyril Concolato
 
Electronic Program Guides using SVG
Electronic Program Guides using SVGElectronic Program Guides using SVG
Electronic Program Guides using SVGCyril Concolato
 

Mais de Cyril Concolato (14)

Mm sys 2013-demo
Mm sys 2013-demoMm sys 2013-demo
Mm sys 2013-demo
 
Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the Web
 
Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4
 
Delivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport StreamDelivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport Stream
 
GPAC Team Research Highlights
GPAC Team Research HighlightsGPAC Team Research Highlights
GPAC Team Research Highlights
 
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASHExtensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
 
Live streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASHLive streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASH
 
Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4
 
MPEG-4 BIFS Overview
MPEG-4 BIFS OverviewMPEG-4 BIFS Overview
MPEG-4 BIFS Overview
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesMPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media Services
 
Adaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia DocumentsAdaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia Documents
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media Services
 
Electronic Program Guides using SVG
Electronic Program Guides using SVGElectronic Program Guides using SVG
Electronic Program Guides using SVG
 

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

  • 1. Cyril Concolato Introduction au streaming sur HTTP et à la norme MPEG-DASH Cyril Concolato Groupe Multimédia Telecom ParisTech 01/10/2013
  • 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. 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. Cyril Concolato Consommation vidéo: Prévisions (sur mobile) 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS4
  • 5. Cyril Concolato Consommation vidéo: Nouveau formats, nouveaux débits 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS5
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Cyril Concolato Utiliser MPEG-DASH Les outils 02/10/2013 Introduction HTTP Streaming & MPEG-DASH - Journée GDR-ISIS52
  • 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. 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. 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. 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. 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. 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