

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.

# Spécification des marqueurs SCTE-35 à l'aide du code XML ESAM
<a name="specifying-scte-35-markers-using-esam-xml"></a>

Si votre vidéo d'entrée ne contient pas de marqueurs SCTE-35, mais que vous devez spécifier des points d'insertion publicitaire dans vos sorties, vous pouvez fournir des documents XML ESAM (Event Signaling and Management) dans les paramètres de votre AWS Elemental MediaConvert tâche. Lorsque vous le faites, MediaConvert conditionnez vos sorties avec des images IDR (Instantaneous Decoder Refresh) aux points d'insertion que vous spécifiez dans le document. Dans les sorties qui sont également encapsulées dans les conteneurs MPEG2 -TS et HLS, MediaConvert insère les messages time\$1signal SCTE-35 à ces points. 

Pour vos groupes de sortie **Apple HLS**, vous pouvez également fournir un document XML de conditionnement du manifeste HLS. Vous pouvez alors configurer votre tâche afin qu'elle prépare en conséquence les manifestes pour vos sorties HLS.

**Note**  
Pour placer des marqueurs SCTE-35 dans vos sorties MPEG2 -TS, en plus de fournir les documents XML ESAM, vous devez également activer **ESAM** SCTE-35 sur chaque sortie. Pour plus d'informations, consultez la procédure de console à la suite de cette présentation.

**À propos des codes horaires dans les documents ESAM**  
Spécifiez les points d'insertion dans vos documents XML par rapport au minutage de la sortie finale, après découpe et assemblage de l'entrée. Commencez votre minutage à 00:00:00:00, quels que soient vos paramètres de code horaire. Utilisez le format 24 heures suivant avec un numéro d'image : HH:MM:SS:FF.

Par exemple, une tâche contient les trois entrées suivantes : un pre-roll de cinq minutes, un film d'une heure et un post-roll de cinq minutes. Vous utilisez le découpage d'entrée pour ajuster les 20 dernières minutes de votre saisie d'une heure. Ainsi, votre sortie en incluant le pre-roll et le post-roll dure 30 minutes. Si vous souhaitez que votre premier point d'insertion apparaisse trois minutes après le début du contenu principal, vous devez le spécifier huit minutes, soit trois minutes après votre prélancement de cinq minutes. 

**Pour inclure des documents XML ESAM dans les paramètres de votre tâche (console)**

1. Ouvrez la MediaConvert console dans [https://console.aws.amazon.com/mediaconvert](https://console.aws.amazon.com/mediaconvert).

1. Choisissez **Create new job** (Créer une nouvelle tâche).

1. Configurez votre entrée, vos groupes de sorties et vos sorties vidéo et audio comme décrit dans [Tutoriel : Configuration des paramètres des tâches](setting-up-a-job.md) et [Création de sorties](output-settings.md).

1. Dans le volet **Job (Tâche)** à gauche, dans la section **Job settings (Paramètres de tâche)**, choisissez **Settings (Paramètres)**.

1. Dans la section **Ad signaling (Signalisation d'annonces)**, activez **Event signaling and messaging (ESAM)**.

1. Pour **Signal processing notification XML (Document XML de notification de traitement du signal)**, entrez votre document XML de signalisation ESAM sous forme de texte. Pour obtenir un exemple, consultez [Exemple de notification de traitement du signal XML ESAM](example-esam-xml.md).
**Note**  
Par défaut, MediaConvert ajoute un prélancement de quatre secondes à la charge utile ESAM. Cela peut entraîner le MediaConvert placement du message SCTE-35 un segment plus tôt que ce que le marqueur de repère désigne dans le manifeste HLS. Pour supprimer le prélancement, réglez-le sur `responseSignalPreroll` zéro. Ce paramètre est un enfant de [EsamSettings](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs-id.html#jobs-id-model-esamsettings).

1. Si vous souhaitez inclure des informations sur vos marqueurs SCTE-35 dans vos **manifestes HLS, entrez votre document XML conditionnel du manifeste ESAM sous forme de texte dans le champ de notification des conditions de confirmation** du manifeste XML. MediaConvert n'inclut pas d'informations sur vos marqueurs SCTE-35 dans vos manifestes DASH.

   Pour insérer des marqueurs SCTE-35 dans le flux de transport en plus du manifeste, définissez l'`dataPassThrough`attribut dans votre document MCC sur. `"true"` Si vous ne voulez pas de marqueurs dans le flux de transport, supprimez les `dataPassThrough` attributs.

   Pour obtenir un exemple, consultez [Exemple de notification de condition de confirmation du manifeste XML ESAM](example-esam-xml-manifest-conditioning.md). 

1. Pour chaque sortie MPEG2 -TS où vous souhaitez des marqueurs SCTE-35, activez les marqueurs :

   1. Dans le volet **Job (Tâche)** à gauche, sous **Output groups (Groupes de sorties)**, **File group (Groupe de fichiers)**, choisissez la sortie.

   1. Vérifiez qu'il s'agit d'une sortie MPEG2 -TS. Dans la section **Output settings (Paramètres de sortie)**, vérifiez que **Container (Conteneur)** est défini sur **MPEG-2 Transport Stream (Flux de transport MPEG-2)**.

   1. Choisissez **Container settings (Paramètres de conteneur)**, puis faites défiler l'écran vers le bas jusqu'à la section **PID controls (Contrôles PID)**.

   1. Pour **ESAM SCTE-35**, choisissez **Enabled (Activé)**.

   1. Pour **SCTE-35 source (Source SCTE-35)**, conservez la valeur par défaut **None (Aucune)**.

1. Effectuez cette étape uniquement pour les groupes de sortie **Apple HLS** de votre tâche.

   Si vous voulez préparer votre manifeste HLS avec votre points d'insertion ESAM, suivez la procédure décrite dans [Inclure les informations SCTE-35 dans votre manifeste HLS](including-scte-35-information-in-your-hls-manifest.md). Sinon, suivez ces étapes pour vérifier que les paramètres suivants se trouvent toujours dans leur état par défaut :

   1. Vérifiez que le paramètre **Manifest confirm condition notification XML (Document XML de notification de condition de confirmation de manifeste)**, présenté dans une étape précédente de cette procédure, est vide.

   1. Pour chaque groupe de sorties **Apple HLS** de votre tâche, vérifiez que **Ad Markers (Marqueurs de publicité)** est décoché.

      1. Dans le volet **Job (Tâche)** à gauche, sous **Output groups (Groupes de sorties)**, **Apple HLS**.

      1. Dans la section **Apple HLS group settings (Paramètres de groupe Apple HLS)**, choisissez **Advanced (Avancé)**.

      1. Dans la section **Ad markers (Marqueurs de publicité)**, décochez les cases **Elemental** et **SCTE-35 enhanced (SCTE-35 optimisé)**.

   1. Pour chaque sortie de vos groupes de sorties **Apple HLS**, vérifiez que **SCTE-35 source (Source SCTE-35)** est défini sur **None (Aucune)** :

      1. Dans le volet **Job (Tâche)** à gauche, sous **Output groups (Groupes de sorties)**, **Apple HLS**, choisissez une sortie.

      1. Dans la section **Output settings (Paramètres de sortie)**, choisissez **Transport stream settings (Paramètres de flux de transport)**.

      1. Pour **SCTE-35 source (Source SCTE-35)**, choisissez **None (Aucune)**.

**Pour inclure des documents XML ESAM dans les paramètres de vos tâches (API, SDK,) AWS CLI**

1. Incluez la [propriété `esam`](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-jobsettings-esam) et ses enfants à la racine des paramètres de la tâche dans la spécification de votre tâche JSON. Ces propriétés figurent dans l'exemple suivant.

   1.  Incluez votre spécification XML de traitement du signal ESAM sous forme de chaîne dans le paramètre `sccXml`. 

   1. Incluez éventuellement un document de notification XML de condition de confirmation de manifeste sous forme de chaîne dans le paramètre `mccXml`:

   ```
     "esam": {
       "responseSignalPreroll": 4000,
       "signalProcessingNotification": {
         "sccXml": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<SignalProcessingNotification ..."
       },
       "manifestConfirmConditionNotification": {
         "mccXml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<ns2:ManifestConfirmConditionNotification ... " 
       }
   ```

1. Pour chaque sortie M2TS (MPEG2 Transport Stream) de votre tâche, définissez votre spécification de tâche JSON comme indiqué dans l'exemple suivant. Incluez la propriété [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35esam](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35esam). Définissez [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35source](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35source) sur `NONE`.

   ```
     "outputs": [
           {
             "extension": "m2ts",
             "containerSettings": {
               "container": "M2TS",
               "m2tsSettings": {
                 ...
   
                 "scte35Esam": {
                   "scte35EsamPid": 508
                 },
                 ...
                 "scte35Source": "NONE"
               }
   ```

1. Si vous souhaitez préparer vos manifestes HLS avec des informations SCTE-35, pour chaque groupe de sorties Apple HLS de votre tâche, incluez ce qui suit. Ces paramètres figurent dans l'exemple à la fin de cette étape :
   +  Définissez [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m3u8settings-scte35source](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m3u8settings-scte35source) sur `PASSTHROUGH`.
   + Incluez [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-hlsgroupsettings-admarkers](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-hlsgroupsettings-admarkers) et listez un `ELEMENTAL_SCTE35` ou `ELEMENTAL` ou les deux dans un tableau.

     Pour voir des exemples de manifestes créés avec chaque paramètre sélectionné, consultez [Exemple de manifeste : marqueurs publicitaires Elemental](sample-manifest-elemental-ad-markers.md) et [Exemple de manifeste : marqueurs publicitaires améliorés SCTE-35](sample-manifest-scte-35-enhanced-ad-markers.md).

   Si vous ne souhaitez pas préparer vos manifestes HLS avec des informations SCTE-35, conservez le paramètre par défaut `NONE` pour `scte35Source` et n'incluez pas `adMarkers` :

   ```
     "outputGroups": [
       {
         "customName": "apple_hls",
         "outputGroupSettings": {
           "type": "HLS_GROUP_SETTINGS",
           "hlsGroupSettings": {
             "adMarkers": [
               "ELEMENTAL_SCTE35"
             ],
             ...
   
           }
         },
         "outputs": [
           {
             "extension": "m3u8",
             "nameModifier": "high",
             "outputSettings": {
               "hlsSettings": {
                 ...
               }
             },
             "containerSettings": {
               "container": "M3U8",
               "m3u8Settings": {
                 ...
                 "scte35Source": "PASSTHROUGH"
               }
   ```

1. Soumettez votre tâche comme d'habitude. 

   Pour plus d'informations sur la soumission de AWS Elemental MediaConvert tâches par programmation, consultez [Getting started with AWS Elemental MediaConvert the AWS SDKs or the AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html) et [Getting started with AWS Elemental MediaConvert using the API](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html).

# Exemple de notification de traitement du signal XML ESAM
<a name="example-esam-xml"></a>

Ce bloc XML ESAM génère deux coupures publicitaires de 30 secondes, l'une au bout de 10 secondes et l'autre au bout de 75 secondes.

```
<?xml version="1.0" encoding="UTF-8"?>
<SignalProcessingNotification xmlns="urn:cablelabs:iptvservices:esam:xsd:signal:1" xmlns:sig="urn:cablelabs:md:xsd:signaling:3.0" xmlns:common="urn:cablelabs:iptvservices:esam:xsd:common:1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" acquisitionPointIdentity="ExampleESAM">

    <common:BatchInfo batchId="1">
      <common:Source xsi:type="content:MovieType" />
    </common:BatchInfo>

    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="1" signalPointID="10.00" action="create">
      <sig:NPTPoint nptPoint="10.00"/>
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="1" segmentTypeId="52" upidType="9" upid="1" duration="PT30S" segmentNumber="1" segmentsExpected="1"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>
    <ConditioningInfo acquisitionSignalIDRef="1" startOffset="PT10S" duration="PT30S"/>

    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="2" signalPointID="40.00" action="create">
      <sig:NPTPoint nptPoint="40.00" />
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="1" segmentTypeId="53" upidType="9" upid="2"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>

    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="3" signalPointID="75.00" action="create">
      <sig:NPTPoint nptPoint="75.00"/>
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="2" segmentTypeId="52" upidType="9" upid="3" duration="PT30S" segmentNumber="2" segmentsExpected="1"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>
    <ConditioningInfo acquisitionSignalIDRef="3" startOffset="PT75S" duration="PT30S"/>
    
    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="4" signalPointID="105.00" action="create">
      <sig:NPTPoint nptPoint="105.00" />
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="2" segmentTypeId="53" upidType="9" upid="4"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>

</SignalProcessingNotification>
```

# Exemple de notification de condition de confirmation du manifeste XML ESAM
<a name="example-esam-xml-manifest-conditioning"></a>

Ce document XML de condition de confirmation du manifeste ESAM (MCC) génère des balises de manifeste HLS pendant deux pauses publicitaires de 30 secondes. Le premier commence 10 secondes plus tard ; le second commence 75 secondes plus tard. Ces balises de manifeste Cue contiennent également des données qui peuvent être utilisées par un client en aval pour le remplacement et l'insertion de publicités. Les sorties générées avec ce document MCC contiennent un message SCTE-35 intégré dans le fichier du flux de transport lors de la première pause publicitaire, mais pas lors de la seconde.

Notez l'`dataPassThrough`attribut figurant sur le premier break publicitaire. Lorsque cet attribut est présent et défini sur`"true"`, MediaConvert insère des marqueurs SCTE-35 dans le flux de transport en plus du manifeste. Pour tout break publicitaire que vous souhaitez marquer uniquement dans le manifeste, omettez l'`dataPassThrough`attribut.

MediaConvert prend en charge le conditionnement des manifestes avec ESAM uniquement dans les packages HLS.

```
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns2:ManifestConfirmConditionNotification xmlns:ns2="http://www.cablelabs.com/namespaces/metadata/xsd/confirmation/2" xmlns="http://www.cablelabs.com/namespaces/metadata/xsd/core/2" xmlns:ns3="http://www.cablelabs.com/namespaces/metadata/xsd/signaling/2">
  <ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="1" duration="PT30S" dataPassThrough="true"> 
  <ns2:SegmentModify>
      <ns2:FirstSegment>
        <ns2:Tag value="#EXT-X-CUE-OUT:4,SpliceType=VOD_DAI,Action=REPLACE, PAID=amazon.com/TEST2014020500000346,Acds=BA" />
      </ns2:FirstSegment>
      <ns2:SpanSegment>
        <ns2:Tag value="#EXT-X-CUE-OUT-CONT:${secondsFromSignal}/4, SpliceType=VOD_DAI,Action=REPLACE,PAID=amazon.com/TEST2014020500000346,Acds=BA" adapt="true" />
      </ns2:SpanSegment>
      <ns2:LastSegment>
        <ns2:Tag value="#EXT-X-CUE-IN:4,SpliceType=VOD_DAI" locality="after" adapt="true" />
      </ns2:LastSegment>
    </ns2:SegmentModify>
	</ns2:ManifestResponse>
  <ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="2"></ns2:ManifestResponse>
  <ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="3" duration="PT30S">  
  <ns2:SegmentModify>
      <ns2:FirstSegment>
        <ns2:Tag value="#EXT-X-OUT:4,SpliceType=VOD_DAI,Action=REPLACE, PAID=amazon.com/TEST2014020500000347,Acds=BA" />
      </ns2:FirstSegment>
      <ns2:SpanSegment>
        <ns2:Tag value="#EXT-X-OUT-CONT:${secondsFromSignal}/4, SpliceType=VOD_DAI,Action=REPLACE,PAID=amazon.com/TEST2014020500000346,Acds=BA" adapt="true" />
      </ns2:SpanSegment>
      <ns2:LastSegment>
        <ns2:Tag value="#EXT-X-CUE-IN:4,SpliceType=VOD_DAI" locality="after" adapt="true" />
      </ns2:LastSegment>
    </ns2:SegmentModify>
	</ns2:ManifestResponse>
	<ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="4"></ns2:ManifestResponse>
</ns2:ManifestConfirmConditionNotification>
```