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.
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
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
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
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
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