Réduction de la latence pour les flux en direct

Cette rubrique explique comment réduire la latence pour vos flux Brightcove Live.

Introduction

La latence est le délai entre le moment où quelque chose est enregistré dans la vie réelle et le moment où il est vu dans un lecteur vidéo. Il faut bien sûr du temps réel pour transmettre un signal de la source via Internet à un lecteur de téléspectateurs. La latence est aggravée par le fait que la vidéo en ligne est transmise en morceaux discrets, appelés segments.

La latence peut être réduite en raccourcissant la longueur des segments vidéo, et les sections suivantes détailleront comment vous pouvez le faire.

Sachez toutefois qu'il existe un compromis : pour assurer une lecture ininterrompue, le lecteur télécharge quelques segments vidéo avant la position de lecture actuelle (c'est ce qu'on appelle la mise en mémoire tampon), afin qu'ils soient prêts en cas de besoin.

Si vous raccourcissez la longueur des segments, tenez compte des points suivants :

  • Le lecteur prélèvera moins de données vidéo et les risques d'interruption de la lecture pendant que le lecteur met en mémoire tampon des segments supplémentaires seront accrus
  • Le CDN du client verra le nombre de requêtes augmenter

Exigences

Les versions de lecteur suivantes prennent en charge le HLS à faible latence avec des diffusions en direct :

  • Lecteur Brightcove (web) version 6.62.0 et plus récente
  • SDK natif pour iOS version 6.10.3 et plus récente
  • SDK natif pour Android version 7.0.1 et plus récente

Création d'un profil en direct à latence réduite

Pour réduire la latence, vous devrez créer un profil Live personnalisé. Suivez les étapes ci-dessous :

  1. Se connecter à Studio.
  2. Ouvrez le Administrateur module.
  3. Dans la navigation de gauche, cliquez sur Profils d'ingestion.
  4. Sélectionnez l'un des profils d'acquisition en direct avec un maximum de 4 rendus.
    Sélectionnez un profil en direct
  5. Cliquez sur le lien pour ouvrir le profil.
  6. Cliquez sur Dupliquer pour créer un nouveau profil basé sur le profil sélectionné.
  7. Dans le nouveau profil, remplacez le par « Profil name à faible latence » (ou un autre nom significatif).
  8. Pour chacun des renditions, modifiez le segment_seconds 2 pour réduire la durée des segments à 2 secondes.
  9. Le profil doit ressembler à ceci :
    {
      "model_version": 1,
      "name": "Low Latency Profile",
      "description": "Deliver high-quality renditions to maximize quality for desktop and OTT.",
      "account_id": "57838016001",
      "renditions": [
        {
          "media_type": "video",
          "format": "ts",
          "segment_seconds": 2,
          "label": "hls1080p",
          "live_stream": true,
          "video_codec": "h264",
          "video_bitrate": 4000,
          "keyframe_interval": 60,
          "width": 1920,
          "height": 1080,
          "h264_profile": "high"
        },
        {
          "media_type": "video",
          "format": "ts",
          "segment_seconds": 2,
          "label": "hls720p",
          "live_stream": true,
          "video_codec": "h264",
          "video_bitrate": 2400,
          "keyframe_interval": 60,
          "width": 1280,
          "height": 720,
          "h264_profile": "high"
        },
        {
          "media_type": "video",
          "format": "ts",
          "segment_seconds": 2,
          "label": "hls540p",
          "live_stream": true,
          "video_codec": "h264",
          "video_bitrate": 1700,
          "keyframe_interval": 60,
          "width": 960,
          "height": 540,
          "h264_profile": "main"
        },
        {
          "media_type": "video",
          "format": "ts",
          "segment_seconds": 2,
          "label": "hls360p",
          "live_stream": true,
          "video_codec": "h264",
          "video_bitrate": 900,
          "keyframe_interval": 60,
          "width": 640,
          "height": 360,
          "h264_profile": "main"
        }
      ],
      "packages": []
    }
  10. Pour utiliser le profil, sélectionnez-le lors de la création d'un nouvel événement en direct dans le module Live.
    Créer un événement en direct

Utilisation de l'API en direct

Si vous souhaitez réduire la latence et que vous utilisez l'API Live pour créer vos tâches en direct, créez simplement la tâche comme vous le faites normalement, mais n'incluez pas plus de 4 rendus et définissez segment_seconds pour chaque rendu sur 2. Veillez à respecter les limitations indiquées pour cette fonction.

Contraintes

Les limitations suivantes ne sont PAS prises en charge avec les diffusions en direct utilisant une latence réduite :

  • SSAI
  • GDN
  • Pistes audio multilingues
  • Redondance
  • Trames B sur l'entrée

Les limites supplémentaires incluent :

  • La fenêtre du DVR doit être inférieure à 5 minutes
  • Pas plus que 4 rendus
  • Faible latence Le direct n'offre que 30 images par seconde