Accéder à : Exigences concernant les fichiers manifestes et le contenu | Packages, plates-formes et lecteurs
Fichier manifeste multipériode ou monopériode
Ad Manager est compatible avec l'ingestion de fichiers manifestes multipériodes et monopériodes pour DASH.
Avec les fichiers manifestes monopériodes, les éditeurs fournissent un flux DASH avec une seule période qui comporte l'intégralité du contenu et des opportunités de coupures publicitaires, plutôt que plusieurs périodes qui les différencient. Pour accepter les fichiers manifestes monopériodes, l'insertion dynamique d'annonce les convertit en fichiers multipériodes à chaque récupération.
Vous pouvez sélectionner un fichier manifeste monopériode lorsque vous activez le fractionnement.
Activer le fractionnement pour un fichier MPEG-DASH monopériode
Pour utiliser l'insertion dynamique d'annonces pour la vidéo à la demande, configurez une source de contenu afin que Google Ad Manager puisse ingérer le contenu de vidéo à la demande (VOD). L'insertion dynamique d'annonces utilisera des éléments de flux MRSS pour déterminer si le contenu doit faire l'objet d'un fractionnement du fichier manifeste DASH monopériode.
- Définissez
ingestUrl
sur l'URL du contenu de la description de la présentation du média. - Définissez
preconditioned
sur "false".
Sipreconditioned
est défini sur "true", les fichiers manifestes DASH monopériodes ne seront pas fractionnés pour les coupures publicitaires mid-roll. - Le fichier manifeste sera divisé en fonction des attributs
Event@presentationTime
dans le fichier manifeste, même si les points de repère ne s'alignent pas pour les raisons suivantes. - Si aucun élément
EventStream
n'est présent dans le fichier manifeste, celui-ci est fractionné en fonction des points de repère. - Les points de repère doivent être alignés sur la limite d'un segment multimédia. Sinon, le fractionnement échouera.
- Définissez les points de repère dans un rayon de 100 ms autour d'un événement
splice_insert
. Ils sont déterminés par la valeur du point de repère et l'attributEvent@presentationTime
.
Exigences concernant les fichiers manifestes et le contenu
Pour les fichiers manifestes multipériodes
Fichier manifeste MPEG-DASH multipériode
Attentes concernant un fichier manifeste MPEG-DASH multipériode
L'insertion dynamique d'annonces Google effectue les validations suivantes sur la description de la présentation du média brute.
Validations des éléments de la description de la présentation du média
Définissez les validations des éléments de la description de la présentation du média suivantes :
type
est défini surstatic
.profiles
est défini sur :urn:mpeg:dash:profile:isoff-on-demand:2011
.urn:mpeg:dash:profile:isoff-live:2011
.
- Vous devez utiliser le protocole HTTPS pour la totalité du contenu DASH référencé dans une même description de présentation du média.
Validations des éléments "Period"
Les conditions suivantes sont requises pour les éléments "Period" :
- Chaque période doit spécifier un attribut
duration
. - Chaque période ne doit pas spécifier d'attribut
start
. - Les ensembles d'adaptation audio et vidéo doivent être cohérents d'une période à l'autre.
Pour les fichiers manifestes monopériodes
Fichier manifeste MPEG-DASH monopériode (Alpha)
Elle n'est disponible que pour un nombre restreint d'éditeurs.
Attentes concernant le fichier manifeste MPEG-DASH monopériode
L'insertion dynamique d'annonces Google effectue les validations suivantes sur la description de la présentation du média brute.
Exigences relatives au contenu
Le contenu DASH doit respecter toutes les règles spécifiées dans les points d'interopérabilité DASH-IF.
MPEG-DASH
L'insertion dynamique d'annonces Google effectue les validations suivantes et repose sur les hypothèses suivantes concernant la description de la présentation du média brute.
- Validations des éléments de la description de la présentation du média :
@profiles
est défini sururn:mpeg:dash:profile:isoff-live:2011
.@type
est défini surstatic
.- La description de la présentation du média comprend un seul élément "Period".
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" maxSegmentDuration="PT2S" minBufferTime="PT2S">
<Period …>
…
</Period>
…
</MPD>
- Validations des éléments "Period" :
- "Period" comporte au moins un élément
AdaptationSet
. - Au moins un élément
EventStream
doit être imbriqué avec des élémentsEvent
encodés avec des points d'insertion pour que la période soit fractionnée. Reportez-vous à la norme SCTE-35 pour connaître les exigences d'encodage des points d'insertion.
<Period id=”1” start="PT0S">
<AdaptationSet …>
…
</AdaptationSet>
<AdaptationSet …>
…
</AdaptationSet>
</Period>
- "Period" comporte au moins un élément
- Les conditions suivantes sont requises pour les validations de l'élément
AdaptationSet
.
Assurez-vous queAdaptationSet
comporte au moins un élément@Representation
.Les adaptations de vignettes et de sous-titres sont acceptées. Veuillez indiquer des ensembles d'adaptations de sous-titres.<AdaptationSet mimeType="video/mp4" startWithSAP="1" contentType="text" par="16:9" minWidth="640" maxWidth="640" minHeight="360" maxHeight="360" maxFrameRate="60/2" segmentAlignment="true">
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"></Role>
<ContentComponent id="0" contentType="video" />
<Representation …>
…
</Representation>
<Representation …>
…
</Representation>
</AdaptationSet>
- Effectuez les validations de l'élément
Representation
:- Assurez-vous que le champ
@id
n'est pas vide. - Il ne doit pas y avoir d'éléments
@SegmentBase
ni@SegmentList
.
<Representation width="640" height="360" sar="1:1" frameRate="60/2" codecs="avc1.64001e" id="V300" bandwidth="300000">
…
</Representation/>
- Assurez-vous que le champ
- Validez
SegmentTemplate
avec$Time$
:- Assurez-vous que les éléments
SegmentTemplate
contiennent un élémentSegmentTimeline
imbriqué pour l'adressage explicite des segments multimédias. - Les éléments
SegmentTimeline S
peuvent contenir l'attributS@t
, qui est utilisé pour les URL de contenu multimédia.- Si elle n'est pas fournie, la valeur est supposée être
0
pour le premier élémentS
, et pour les élémentsS
suivants, la valeur est supposée être la somme de la durée de présentation la plus ancienne et de la durée contiguë de l'élémentS
précédent (c'est-à-dire,S@t + @d * (@r + 1)
de l'élément "S" précédent). SegmentTemplate@startNumber
n'est pas utilisé.
<SegmentTemplate timescale="90000" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Time$.m4s">
<SegmentTimeline>
<S t="0" d="270000" r="20" />
</SegmentTimeline>
</SegmentTimeline>
- Si elle n'est pas fournie, la valeur est supposée être
- Assurez-vous que les éléments
-
L'insertion dynamique d'annonces Google est compatible avec le composant temporel de la durée ISO-8601 et accepte le composant "Jour" facultatif (nombre entier) :
P0Y0M[n]DT[n]H[n]M[n]S
. Le composant de jours est converti en durée en tenant compte de 1 jour = 24 heures et est ajouté au composant temporel. La nanoseconde est la plus petite unité que nous reconnaissons.
Exemples de formats valides :
P0Y0M
P0Y0M2D
P2D
PT3H
PT0H3M
P0Y0M0DT0H0M1.000S
P0Y0M1DT2H4M10S
PT0.000000001S
Exemples de formats non valides :
P
PT
2007-03-01
P5Y0M1DT2H4M1.000S
P0Y1.5M1DT2H4M1.000S
P0YiM1DT2H4M1.000S
P0Y0M.3DT0H0M1.000S
3 h
PT100,000H
Sous-titres
- L'insertion dynamique d'annonces Google est compatible avec les sous-titres au format TTML et WebVTT.
- L'insertion dynamique d'annonces Google est compatible avec tous les fichiers de sous-titres side-car fournis dans le flux MRSS.
- Les fichiers de sous-titres side-car spécifiés dans le fichier manifeste DASH ne seront pas convertis et ne seront pas présents dans le fichier manifeste fractionné. Si des sous-titres side-car sont requis, ils doivent être spécifiés dans le flux MRSS.
Sous-titres side-car du fichier manifeste DASH non compatibles
<AdaptationSet
id="3"
group="3"
contentType="text"
lang="fr"
mimeType="application/ttml+xml"
startWithSAP="1">
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
<Representation
id="textstream_fra=0"
bandwidth="0">
<BaseURL>sub/tears-of-steel-fr.ttml</BaseURL>
</Representation>
</AdaptationSet>
- Les sous-titres fragmentés spécifiés dans un
AdaptationSet
aveccontentType
="text" et avec un élémentSegmentTimeline
sont acceptés, mais les limites des segments de sous-titres doivent également être alignées sur les repères de point d'insertion pour réussir la validation.Remarque:Les appareils Roku ne sont pas compatibles avec les segments fragmentés dans unAdaptationSet
.
Sous-titres fragmentés du fichier manifeste DASH compatibles
<AdaptationSet
id="2"
group="3"
contentType="text"
lang="en"
mimeType="application/mp4"
codecs="stpp.ttml.im1t"
startWithSAP="1">
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle" />
<SegmentTemplate
timescale="1000"
initialization="tears-of-steel-en-$RepresentationID$.dash"
media="tears-of-steel-en-$RepresentationID$-$Time$.dash">
<SegmentTimeline>
<S t="0" d="4000" r="140" />
<S d="3000" />
</SegmentTimeline>
</SegmentTemplate>
<Representation
id="texttream_eng=1000"
bandwidth="1000">
</Representation>
</AdaptationSet>
SCTE-35
- L'insertion dynamique d'annonces Google ne reconnaît les points d'insertion comme des repères SCTE-35 présents dans les éléments DASH
MPD@Period@EventStream@Event
que s'ils réussissent les validations suivantes :- Les données SCTE-35 encodées en base64 doivent être contenues dans l'élément
Event@Signal@Binary
.
Seule la valeursplice_insert
est acceptée. - Dans les éléments
EventStream
contenant desEvents
avec des marqueurs SCTE-35,schemeIdUri
doit être défini sururn:scte:scte35:2014:xml+bin
. EventStream@timescale
doit être défini, sans quoi il sera considéré comme étant défini sur1
(échelle de temps en secondes).Event@presentationTime
doit être défini sur chaque élémentEvent
.Event@Signal@namespace
doit comporter l'espace de nomshttp://www.scte.org/schemas/35/2016
.- Les événements dans
EventStream
doivent être triés selonEvent@presentationTime
.
- Les données SCTE-35 encodées en base64 doivent être contenues dans l'élément
- Hypothèses concernant
Splice_insert
Tous les repèressplice_insert
deEventStream
seront traités comme des opportunités d'emplacement de coupures publicitaires. En d'autres termes, le fractionnement monopériode ne fait pas la différence entre les repères cue-out et cue-in. Il traite plutôt n'importe quel signal comme une opportunité d'emplacement de coupure publicitaire. - L'insertion dynamique d'annonces Google pour la VOD DASH ne prend pas en charge le fractionnement de segments et ne permet donc qu'une tolérance de 100 ms pour l'écart entre la durée de présentation d'un point d'insertion et la limite de segment la plus proche.
Plates-formes, packagers et lecteurs compatibles avec la vidéo à la demande
Plates-formes |
||
---|---|---|
Appareils/Navigateurs |
Version |
DRM |
Navigateur Chrome |
66+ |
Widevine |
Navigateur Firefox |
60+ |
Widevine |
Microsoft Edge |
18 |
PlayReady |
Android |
4.4+ |
Widevine |
Chromecast |
Gen2, Ultra (API CAF) |
Widevine |
Roku |
3, 4 (micrologiciel 8.1) |
PlayReady |
Packagers |
||
---|---|---|
2.1.0 |
Assistance multi-période |
|
1.47.3 |
Assistance multi-période |
|
1.11.17 | Monopériode compatible |
Joueurs |
||
---|---|---|
Shaka |
Recommandé pour les tests |
|
Bitmovin |
||
ExoPlayer |
||
Dash.js |