

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Travailler avec des sources de VOD
<a name="channel-assembly-working-vod-sources"></a>

Une source VOD représente un contenu unique, tel qu'une vidéo ou un épisode d'un podcast, que vous ajoutez à votre emplacement source. Vous ajoutez une ou plusieurs sources de VOD à l'emplacement de votre source, puis vous associez chaque source VOD à un programme après avoir créé votre chaîne.

Chaque source VOD doit avoir au moins une *configuration de package*. Une configuration de package spécifie le format du package, l'emplacement du manifeste et le groupe de sources pour votre source VOD. Lorsque vous créez votre chaîne, vous utilisez les groupes de sources de la configuration du package pour créer les sorties correspondantes sur votre chaîne. Par exemple, si votre source est empaquetée dans deux formats différents (HLS et DASH), vous devez créer deux configurations de package, l'une pour DASH et l'autre pour HLS. Ensuite, vous devez créer deux sorties de canal, une pour chaque configuration de package. Chaque sortie de canal fournit un point de terminaison utilisé pour les demandes de lecture. Ainsi, en utilisant l'exemple précédent, le canal fournirait un point de terminaison pour les demandes de lecture HLS et un point de terminaison pour les demandes de lecture DASH. 

Si vous souhaitez que les décalages des marqueurs publicitaires de votre manifeste soient détectés automatiquement, chaque marqueur publicitaire doit apparaître au même décalage dans toutes les configurations de package et avoir une durée de zéro. Pour le HLS, MediaTailor détectera `DATERANGE` et balisera` EXT-X-CUE-OUT`. Pour DASH, le HLS détectera la première balise Event dans chaque `EventStream` balise.

Dans l'exemple suivant, une opportunité de rupture publicitaire sera détectée avec un décalage de 12 000 ms en raison de la durée de la `DATERANGE` balise de 0,0. La première `DATERANGE` balise décalée de 0 ms ne sera pas détectée car elle a une durée de 10,0.

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=10.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=0.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

Dans l'exemple suivant, une opportunité de rupture publicitaire sera détectée avec un décalage de 0 ms, car le `EXT-X-CUE-OUT` tag a une durée de 0 et est immédiatement suivi d'un `EXT-X-CUE-IN` tag. La seconde `EXT-X-CUE-IN` paire`EXT-X-CUE-OUT`/ne sera pas détectée car elle a une durée de 10.

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-CUE-OUT:10
...
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

Dans l'exemple suivant, une opportunité de rupture publicitaire sera détectée avec un décalage de 0 ms, car le premier événement `EventStream` se produit au cours de la période commençant à PT0 .000S. Le deuxième `Event` d'entre eux ne `EventStream` sera pas détecté.

```
<Period start="PT0.000S" id="9912561" duration="PT29.433S">
<EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
<Event duration="0">
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
<Event duration="0"> 
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
</EventStream>
  ...
</Period>
```