Bonnes pratiques pour l'API Video Stitcher

Cette page contient un résumé des bonnes pratiques à suivre pour l'API Video Stitcher. Si vous débutez avec l'API Video Stitcher, consultez le guide de démarrage rapide pour les diffusions en direct ou le guide de démarrage rapide pour les assets VOD.

Conditionr les éléments VOD

Configurez les encodeurs et les transcodeurs sources pour générer des fichiers manifestes compatibles avec les coupures publicitaires entre les périodes DASH et les segments HLS. L'API Video Stitcher ne divise pas les périodes ni les segments pour assembler les coupures publicitaires. Les coupures publicitaires ne sont donc assemblées qu'aux limites des périodes et des segments.

Pour les tags d'emplacement publicitaire qui renvoient des réponses VMAP, chaque coupure publicitaire spécifiée dans le VMAP doit correspondre à une limite de période ou de segment. Sinon, les coupures publicitaires seront assemblées à la limite la plus proche.

Éviter le décalage des coupures publicitaires pour HLS

Pour le collage de contenu VOD, vous devez préconditionner le fichier manifeste vidéo source pour les coupures publicitaires mid-roll et configurer la balise publicitaire VMAP (Video Multiple Ad Playlist) pour renvoyer les coupures publicitaires mid-roll aux positions de décalage préconditionnées. L'API Video Stitcher prend le résultat de la sortie transcodée et insère les annonces le plus près possible de l'emplacement que vous spécifiez. Utilisez des entrées préconditionnées pour les coupures publicitaires mid-roll afin de rendre le comportement de couture des annonces cohérent et précis.

Par exemple, la playlist vidéo suivante présente une opportunité d'emplacement d'annonce à la septième seconde:

#EXTM3U

#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4

#EXTINF:2.0
../video/180_250000/hls/segment_0.ts
#EXTINF:2.0
../video/180_250000/hls/segment_1.ts
#EXTINF:2.0
../video/180_250000/hls/segment_2.ts
#EXTINF:1.0
../video/180_250000/hls/segment_3.ts
#EXT-X-PLACEMENT-OPPORTUNITY
#EXTINF:2.0
../video/180_250000/hls/segment_4.ts

La playlist audio suivante présente une opportunité d'emplacement d'annonce à la septième seconde:

#EXTM3U

#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4

#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_0.ts
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_1.ts
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_2.ts
#EXTINF:1.03
../audio/1_stereo_128000/hls/segment_3.ts
#EXT-X-PLACEMENT-OPPORTUNITY
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_4.ts

La configuration VMAP suivante spécifie qu'une coupure publicitaire doit se produire à la septième seconde. Les playlists vidéo et audio contiennent des coupures publicitaires exactement à la septième seconde:

<vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0">
  <vmap:AdBreak timeOffset="00:00:07.000" breakType="linear" breakId="midroll‑1">
    <vmap:AdSource id="midroll-1‑ad‑1" allowMultipleAds="false" followRedirects="true">
      <vmap:AdTagURI templateType="vast3">
      <![CDATA[
      https://securepubads.g.doubleclick.net/gampad/ads?...
      ]]>
      </vmap:AdTagURI>
    </vmap:AdSource>
  </vmap:AdBreak>
</vmap:VMAP>

Définir EXT-X-PROGRAM-DATE-TIME pour HLS

Pour vous assurer que les codes temporels des segments sont synchronisés entre les interprétations HLS, nous vous recommandons de définir EXT-X-PROGRAM-DATE-TIME pour chaque interprétation HLS. Cela permet aux joueurs de passer facilement d'une interprétation à une autre pendant la lecture.

Utiliser des fichiers manifestes DASH multipériodes pour les assets en direct et à la demande

Configurez les encodeurs et les transcodeurs sources pour qu'ils génèrent des fichiers manifestes DASH avec plusieurs périodes plutôt qu'une seule. Pour des raisons similaires au conditionnement VOD, l'API Video Stitcher ne divisera pas les périodes pour assembler les coupures publicitaires. Par conséquent, un fichier manifeste DASH comportant plusieurs périodes aura plus d'occasions d'assembler les coupures publicitaires aux durées attendues.

Encapsuler les sous-titres au format ISOBMFF

Les sous-titres des fichiers manifestes DASH doivent être encapsulés dans le format de fichier multimédia de base ISO (ISOBMFF), tel que MP4, pour être compatibles avec la plupart des lecteurs multimédias.

Utiliser des débits constants

Pour garantir une expérience de lecture stable pour les diffusions en direct, configurez l'encodeur ou le transcodeur source pour qu'il utilise des débits constants lors de la sortie des fichiers manifestes de flux. Cela permet à l'API Video Stitcher de coller les annonces de manière plus cohérente pour qu'elles correspondent aux profils d'encodage spécifiés dans les fichiers manifestes.

Utiliser des marqueurs d'annonces compatibles

Consultez la documentation sur les marqueurs d'annonces pour savoir quels sont les marqueurs d'annonces compatibles et comment les encodeurs ou les transcodeurs sources doivent générer des marqueurs d'annonces pour s'assurer que les coupures publicitaires sont correctement assemblées.

Vérifier la lecture de la source

Pour garantir une expérience de lecture stable pour les flux en direct et les VOD, envisagez d'utiliser des lecteurs clients largement disponibles pour vérifier que les flux sources sont lisibles avant de les assembler avec l'API Video Stitcher.

HLS:

DASH:

Gérer les clés CDN

Si le contenu multimédia source est protégé par la signature d'URL, vous devez enregistrer des clés CDN avec l'API Video Stitcher. L'API peut ainsi:

  • Extraire les fichiers manifestes de la vidéo source pour l'assemblage
  • Signez les segments vidéo sources afin que les lecteurs puissent les récupérer pour les lire.

Découvrez comment gérer les clés CDN.

Configurer Media CDN

Si vous souhaitez configurer Media CDN pour distribuer les éléments multimédias, suivez le guide de démarrage rapide Media CDN.

Configurez des routes distinctes avec des TTL appropriées pour vos fichiers manifestes et segments multimédias. Pour en savoir plus et obtenir des exemples, consultez le guide du routage avancé du CDN multimédia.

Si l'une de vos routes utilise des origines Cloud Storage privées, consultez la section Utiliser des buckets Cloud Storage privés. En particulier, définissez le mode de cache de ces itinéraires sur FORCE_CACHE_ALL.

Pour savoir comment configurer HTTPS, consultez la section Configurer des certificats SSL (TLS).

Requêtes signées Media CDN

Pour utiliser Media CDN avec les requêtes signées activées, consultez la section Utiliser des requêtes signées, puis procédez comme suit:

  1. Créez une paire de clés asymétriques. Pour savoir comment créer une clé privée compatible avec l'API Video Stitcher, consultez la section Créer une clé privée pour Media CDN.

  2. Enregistrez la clé privée Media CDN avec l'API Video Stitcher.

Limite de durée pour les sessions en direct de longue durée

Une ressource LiveSession n'expire que si cinq minutes se sont écoulées sans aucune requête de playlist. Toutefois, une durée de vie maximale de 180 jours est appliquée à tous les URI de lecture. Pour continuer la lecture au bout de 180 jours, vous devez créer une nouvelle session en direct. Pour plus de fiabilité, vous devez créer une session en direct au moins tous les 30 jours.