Options de fichier manifeste

Ce guide décrit la fonctionnalité d'options de fichier manifeste compatible de l'API Video Stitcher. Cela vous permet de personnaliser le fichier manifeste de la vidéo assemblée. Les options du fichier manifeste sont configurées dans la requête de création de session. Pour en savoir plus, consultez les ressources suivantes :

Avant de commencer

Assurez-vous de bien connaître les concepts et la terminologie de l'API Video Stitcher. Pour en savoir plus, consultez la présentation technique.

Présentation

Par défaut, le fichier manifeste vidéo assemblé contient les mêmes représentations multimédias que le fichier manifeste vidéo source. Le fichier manifeste source peut contenir plusieurs interprétations multimédias que tous les lecteurs ne peuvent pas lire. Par exemple, une vidéo encodée peut contenir à la fois les codecs vidéo H.264 et H.265, mais un lecteur sur un appareil ne peut lire que le codec H.264.

En spécifiant les codecs ou les débits à inclure dans le fichier manifeste vidéo, vous pouvez spécifier les versions vidéo à générer dans le fichier manifeste vidéo assemblé.

Options de fichier manifeste

L'objet ManifestOptions vous offre plusieurs options pour personnaliser le fichier manifeste de la vidéo assemblée.

HLS

Vous pouvez personnaliser les éléments suivants pour les fichiers manifestes vidéo HLS assemblés:

  • Filtrer par codecs
  • Inclure uniquement certaines résolutions vidéo
  • Inclure uniquement certaines fréquences d'images
  • Inclure uniquement certains débits
  • Commander les versions vidéo

Pour les sections suivantes, supposons le fichier manifeste de la vidéo source suivant:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/hd/index.m3u8

Filtrer par codecs

Pour filtrer la restitution vidéo par codecs, définissez les codecs dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que le format H.264 dans le fichier manifeste assemblé, définissez le codec dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "codecs": "avc1.42e00a,mp4a.40.2",
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8

Inclure uniquement certaines résolutions vidéo

Pour filtrer la restitution vidéo par résolution vidéo, définissez la résolution vidéo dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que les résolutions vidéo 1920x1080 et 640x360 dans le fichier manifeste assemblé, définissez les résolutions vidéo dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "videoResolution": {
          "widthPixels": 1920,
          "heightPixels": 1080,
        },
      },
      {
        "videoResolution": {
          "widthPixels": 640,
          "heightPixels": 360,
        },
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/sd/index.m3u8

Inclure uniquement certaines fréquences d'images

Pour filtrer la restitution vidéo par fréquence d'images, définissez la fréquence d'images dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que les fréquences d'images 25.0 dans le fichier manifeste assemblé, définissez la fréquence d'images dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "frameRate": 25.0
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/hd/index.m3u8

Inclure uniquement certains débits

Pour filtrer la restitution vidéo par débit, définissez les débits dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que deux débits dans le fichier manifeste assemblé, définissez les débits dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "bitrateBps": 150000,
      },
      {
        "bitrateBps": 440000,
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
h264/index.m3u8

Trier par débit

Certains joueurs peuvent être sensibles à l'ordre des interprétations vidéo. Vous pouvez définir l'ordre des interprétations vidéo sur ascending ou descending, comme suit:

{
  "manifestOptions": {
    "bitrateOrder": "ascending",
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=100000,RESOLUTION=640x360,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/sd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=1280x720,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=1920x1080,CODECS="hvc1.1.4.L126.B0,mp4a.40.2,FRAME-RATE=50.000"
h265/fhd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2,FRAME-RATE=25.000"
h264/fhd/index.m3u8

DASH

Vous pouvez personnaliser les éléments suivants pour les fichiers manifestes vidéo DASH assemblés:

  • Filtrer par codecs
  • Inclure uniquement certaines résolutions vidéo
  • Inclure uniquement certaines fréquences d'images
  • Inclure uniquement certains débits
  • Commander les versions vidéo

Pour les sections suivantes, supposons le fichier manifeste de la vidéo source suivant:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000" frameRate="50/1">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Filtrer par codecs

Pour filtrer la restitution vidéo par codecs, définissez les codecs dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que le format H.264 dans le fichier manifeste assemblé, définissez le codec dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "codecs": "hvc1.1.4.L126.B0",
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000" frameRate="50/1">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Inclure uniquement certaines résolutions vidéo

Pour filtrer la restitution vidéo par résolution vidéo, définissez la résolution vidéo dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que les résolutions vidéo 640x360 dans le fichier manifeste assemblé, définissez la résolution vidéo dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "videoResolution": {
          "widthPixels": 640,
          "heightPixels": 360,
        },
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Inclure uniquement certaines fréquences d'images

Pour filtrer la restitution vidéo par fréquence d'images, définissez la fréquence d'images dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que la fréquence d'images 25.0 dans le fichier manifeste assemblé, définissez la fréquence d'images dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "frameRate": 25.0
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Inclure certains débits

Pour filtrer la restitution vidéo par débit, définissez les débits dans le champ manifestOptions facultatif lorsque vous créez une session. Par exemple, pour n'afficher que deux débits dans le fichier manifeste assemblé, définissez les débits dans le tableau includeRenditions:

{
  "manifestOptions": {
    "includeRenditions": [
      {
        "bitrateBps": 150000,
      },
      {
        "bitrateBps": 240000,
      },
    ],
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>

Trier par débit

Certains joueurs peuvent être sensibles à l'ordre des interprétations vidéo. Vous pouvez définir l'ordre des interprétations vidéo sur ascending ou descending, comme suit:

{
  "manifestOptions": {
    "bitrateOrder": "descending",
  },
}

Les éléments suivants s'affichent dans le fichier manifeste assemblé:

<Period id="0" start="PT33160.000S">
  <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720">
    <Representation mimeType="video/mp4" id="1280x720-h264" codecs="avc1.64001E" width="1280" height="720" startWithSAP="1" bandwidth="240000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="1280x720-h265" codecs="hvc1.1.4.L126.B0" width="1280" height="720" startWithSAP="1" bandwidth="200000" frameRate="50/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h264" codecs="avc1.64001E" width="640" height="360" startWithSAP="1" bandwidth="150000" frameRate="25/1">
      ...
    </Representation>
    <Representation mimeType="video/mp4" id="640x360-h265" codecs="hvc1.1.4.L126.B0" width="640" height="360" startWithSAP="1" bandwidth="100000" frameRate="50/1">
      ...
    </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
    <Representation mimeType="audio/mp4" id="640x360-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
    <Representation mimeType="audio/mp4" id="1280x720-audio" codecs="mp4a.40.2" audioSamplingRate="44100" startWithSAP="1" bandwidth="48472">
      ...
    </Representation>
  </AdaptationSet>
</Period>