Guide des meilleures pratiques de streaming en direct Media Services

Les clients demandent souvent comment ils peuvent réduire la latence de leur flux en direct. Cet article décrit les meilleures pratiques pour atteindre des flux en direct à faible latence, en plus de l’encodage des événements en direct.

Note

Avant de continuer à lire cet article, lisez l’article HLS à faible latence (LL-HLS) pour comprendre la faible latence avec l’encodage des événements en direct. Revenez ensuite à ce guide pour comprendre ce qui peut affecter la latence de diffusion en continu.

Il existe de nombreux facteurs qui déterminent la latence de bout en bout d’un flux en plus de la façon dont le média est encodé. Voici quelques-uns que vous devez prendre en compte :

  1. Retards côté encodeur de contribution. Lorsque les clients utilisent un logiciel d’encodage tel que OBS Studio, Wirecast ou d’autres personnes pour envoyer un flux en direct RTMP à Media Services. Les paramètres de ce logiciel affectent la latence de bout en bout d’un flux en direct.

  2. Retards dans le pipeline de streaming en direct dans Azure Media Services

  3. Performances du CDN

  4. Algorithmes de mise en mémoire tampon des conditions réseau et du lecteur vidéo côté client

  5. Minutage de l’approvisionnement

Encodeur de contribution

Vous contrôlez les paramètres des paramètres de l’encodeur source avant que le flux RTMP atteigne Media Services. Voici quelques recommandations pour les paramètres qui vous donnent la latence la plus faible possible :

  1. Choisissez la région physique la plus proche de votre encodeur de contribution pour votre compte Media Services. Cela garantit que vous disposez d’une excellente connexion réseau au compte Media Services.

  2. Utilisez une taille de fragment cohérente. Nous recommandons une taille goP de 2 secondes. La valeur par défaut sur certains encodeurs, tels que OBS, est de 8 secondes. Veillez à modifier ce paramètre.

  3. Utilisez l’encodeur GPU si votre logiciel d’encodage vous permet de le faire. Cela vous permet de décharger le travail du processeur sur le GPU.

  4. Utilisez un profil d’encodage optimisé pour une faible latence. Par exemple, avec OBS Studio, si vous utilisez l’encodeur Nvidia H.264, vous pouvez voir la présélection « latence nulle ».

  5. Envoyez du contenu qui n’est pas plus élevé en résolution que ce que vous prévoyez de diffuser en continu. Par exemple, si vous utilisez des événements en direct d’encodage standard 720p, envoyez un flux déjà à 720p.

  6. Conservez votre fréquence d’images à 30fps ou inférieure, sauf si vous utilisez des événements en direct pass-through. Bien que nous prenions en charge les entrées 60 fps pour les événements en direct, notre sortie d’événement en direct d’encodage n’est toujours pas supérieure à 30 fps. Pour hlS à faible latence, la fréquence d’images fixe est recommandée et la durée maximale de l’image ne doit pas dépasser 0,5 secondes pour la meilleure expérience.

Configuration de l’événement en direct Azure Media Services

Voici quelques configurations qui vous aideront à réduire la latence dans notre pipeline :

  1. Utilisez les options de flux à faible latence pour les événements en direct. Pour les options de flux d’encodage Standard (jusqu’à 720p) et Premium (jusqu’à 1080p), sauf si vous avez besoin d’une fenêtre DVR de plus de 6 heures ou d’une sortie de streaming fluide, utilisez le paramètre de latence de flux à faible latence.

  2. Nous vous recommandons de choisir la sortie CMAF pour la lecture HLS et DASH. Cela vous permet de partager les mêmes fragments pour les deux formats. Il augmente le taux d’accès au cache lorsque CDN est utilisé. Par exemple:

    Type Format Exemple d’URL
    HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
    MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
  3. Si vous devez choisir la sortie TS, utilisez un rapport d’emballage HLS de 1. Cela nous permet de ne regrouper qu’un seul fragment dans un segment HLS. Vous n’obtiendrez pas les avantages complets de LL-HLS dans les joueurs Apple natifs.

Optimisations des joueurs

Lors du choix et de la configuration d’un lecteur vidéo, veillez à utiliser les paramètres optimisés pour une latence inférieure.

Media Services prend en charge différentes sorties de protocole de streaming : DASH, HLS avec sortie TS et HLS avec des fragments CMAF. Lorsque vous utilisez l’option de flux de LowLatencyV2, veillez à trouver un lecteur prenant en charge HLS à faible latence (LL-HLS). Selon l’implémentation du joueur, les décisions de mise en mémoire tampon ont un impact sur la latence observée par une visionneuse. Des conditions réseau médiocres ou des algorithmes par défaut qui favorisent la qualité et la stabilité de la lecture peuvent entraîner la décision des joueurs de mettre en mémoire tampon davantage de contenu avant d’empêcher les interruptions pendant la lecture. Ces mémoires tampons, avant et pendant les sessions de lecture, s’ajouteraient à la latence de bout en bout.

Lorsque le lecteur multimédia Azure est utilisé, le profil heuristique faible latence optimise le lecteur pour avoir la latence la plus faible possible côté lecteur. Ce lecteur prend uniquement en charge DASH, sauf s’il est utilisé sur Safari sur les appareils Apple.

Choix et optimisations CDN

Les points de terminaison de diffusion en continu sont les serveurs d’origine qui fournissent directement le contenu de diffusion en continu en direct et VOD au CDN ou au client. Il est préférable d’utiliser un réseau de distribution de contenu (CDN) avec une origine protégée pour garantir que le trafic pour votre contenu multimédia est livré efficacement.

Nous vous recommandons d’utiliser Azure CDN fourni par Verizon (Standard ou Premium). Nous avons optimisé l’expérience d’intégration afin qu’un client puisse configurer ce CDN avec une sélection unique dans le portail Azure. Veillez à activer Bouclier d’origine et les optimisations de diffusion en continu pour votre point de terminaison CDN chaque fois que vous démarrez votre point de terminaison de streaming.

Nos clients ont également de bonnes expériences qui apportent leur propre CDN. Assurez-vous que les mesures sont prises sur le CDN pour protéger l’origine contre le trafic excessif.

Vous pouvez également améliorer les performances en configurant des règles pour le profil CDN. Consultez Comment activer les optimisations CDN.

Mise à l’échelle du point de terminaison de streaming

Note

Un point de terminaison/origine de streaming standard est une ressource partagée qui permet aux clients disposant de volumes de trafic faibles de diffuser du contenu à moindre coût. Vous n'pas utiliser un point de terminaison de diffusion en continu standard pour mettre à l’échelle les unités de diffusion en continu si vous attendez des volumes de trafic volumineux ou que vous envisagez d’utiliser un CDN.

Une point de terminaison/origine de streaming Premium offre une plus grande flexibilité et une isolation pour les clients en ajoutant ou supprimant unités de diffusion en continu dédiées. Une unité de streaming est une ressource de calcul allouée à un point de terminaison de streaming. Chaque unité de diffusion en continu peut diffuser environ 200 Mbits/s de trafic.

Bien que vous puissiez diffuser simultanément de nombreux événements en direct à la fois à l’aide du même point de terminaison de streaming, le nombre maximal d’unités de streaming par défaut nécessaires pour un point de terminaison de streaming est de 10. Vous pouvez ouvrir un ticket de support pour demander plus de 10 par défaut.

Déterminer les unités de streaming Premium nécessaires

Il existe deux étapes pour déterminer le nombre de points de terminaison de streaming et d’unités de diffusion en continu nécessaires :

  1. Déterminez le nombre total de sorties nécessaires.

  2. Divisez le nombre total de sorties par 200, c’est-à-dire le nombre maximal de Mbits/s par seconde que chaque unité de diffusion en continu peut diffuser.

Déterminer le nombre total de sorties nécessaires

Déterminez la sortie totale nécessaire à l’aide de la formule suivante.

Sortie totale nécessaire = bande passante moyenne x nombre de visionneuses simultanées x pourcentagegérées par le point de terminaison de streaming.

Examinons chacun des multiplicateurs à leur tour :

Bande passante moyenne. Quelle est la vitesse de transmission moyenne que vous envisagez de diffuser ? En d’autres termes, si vous allez avoir plusieurs débits binaires disponibles quelle est la moyenne de toutes les vitesses de transmission que vous prévoyez ? Vous pouvez estimer cela à l’aide de l’une des méthodes suivantes :

Pour un événement en direct qui inclut l’encodage:

  • Si vous ne savez pas ce que votre moyenne bande passante sera, vous pouvez utiliser nos débits de transmission les plus hauts comme estimation. Notre vitesse de transmission supérieure est de 5,5 Mops pour les événements en direct codés en 1080p, par conséquent, votre vitesse de transmission moyenne va être quelque part autour de 3,5 Mops.

  • Examinez la présélection d’encodage utilisée pour encoder l’événement en direct, par exemple la présélection AdaptiveStreaming(H.264). Consultez cet exemple de sortie .

Pour un événement en direct qui utilise simplement le pass-through et non l’encodage :

  • Vérifiez l’échelle de débit d’encodage utilisée par votre encodeur local.

Nombre de visionneuses simultanées. Combien de spectateurs simultanés sont attendus ? Cela peut être difficile à estimer, mais faites de votre mieux en fonction de vos données client. Diffusez-vous une conférence à un public mondial ? Envisagez-vous de diffuser en direct pour vendre un ensemble de produits à vos clients ?

% du traficgéré parle point de terminaison de streaming. Cela peut également être exprimé en tant que « pourcentage de trafic non géré par le CDN », car il s’agit du nombre qui passe réellement dans la formule. Alors, à l’esprit, quel est le déchargement CDN attendu ? Si le CDN devrait gérer 90% du trafic en direct, seuls 10% du trafic seraient attendus sur le point de terminaison de streaming. Le nombre utilisé dans la formule est .10, qui correspond au pourcentage de trafic attendu sur le point de terminaison de streaming.

Déterminer le nombre d’unités de streaming Premium nécessaires

unités de diffusion en continu Premium nécessaires = Bande passante moyenne x nombre de visionneuses x Pourcentage de trafic non géré par le CDN / 200 Mbits/s

Exemple

Vous avez récemment publié un nouveau produit et souhaitez le présenter à vos clients établis. Vous souhaitez une faible latence, car vous ne souhaitez pas frustrer votre public déjà occupé. Vous utiliserez donc des points de terminaison de streaming Premium et un CDN.

Vous avez environ 100 000 clients, mais ils ne vont probablement pas tous regarder votre événement en direct. Vous supposez que dans le meilleur cas, seulement 1% d’entre eux assisteront, ce qui amène vos spectateurs simultanés attendus à 1 000.

Nombre d’utilisateurs simultanés =1 000

Vous avez décidé d’utiliser Media Services pour encoder votre flux en direct et n’utiliserez pas la transmission directe. Vous ne savez pas quelle est la bande passante moyenne, mais vous savez que vous fournirez en 1080p (vitesse de transmission supérieure de 5,5 Mbits/s), de sorte que votre moyenne bande passante est estimée à 3,5 Mbits/s pour vos calculs.

bande passante moyenne =3,5

Étant donné que votre public est dispersé dans le monde entier, vous vous attendez à ce que le CDN gère la plupart (90%) du trafic en direct. Par conséquent, les points de terminaison de streaming Premium gèrent uniquement 10% du trafic.

Pourcentage géré par le point de terminaison de streaming =10% = 0,1

Utilisation de la formule fournie ci-dessus :

Nombre total de sorties nécessaires = bande passante moyenne x nombre de visionneuses simultanées x pourcentage gérés par le point de terminaison de streaming.

sortie totale nécessaire = 3,5 x 1 000 x 0,1

sortie totale nécessaire = 350 Mbits/s

Divisant le nombre total de sorties par 200, vous déterminez que vous avez besoin de 1,75 unités de streaming Premium.

unités de streaming Premium nécessaires = sortie totale nécessaire/200Mpbs

unités de diffusion en continu Premium nécessaires = 1,75

Nous allons arrondir ce nombre à 2, nous donnant 2 unités nécessaires.

Utiliser le portail pour estimer vos besoins

Le portail Azure peut vous aider à simplifier les calculs. Sur la page de diffusion en continu, vous pouvez utiliser la calculatrice fournie pour voir l’audience estimée lorsque vous modifiez la bande passante moyenne, le taux d’accès CDN et le nombre d’unités de diffusion en continu.

  1. Dans la page du compte Media Services, sélectionnez points de terminaison De vapeur dans le menu.

  2. Ajoutez un nouveau point de terminaison de streaming en sélectionnant Ajouter un point de terminaison de streaming.

  3. Donnez un nom au point de terminaison de streaming.

  4. Sélectionnez point de terminaison de streaming Premium pour le type de point de terminaison de streaming.

  5. Étant donné que vous obtenez simplement une estimation à ce stade, ne démarrez pas le point de terminaison de streaming après la création. Sélectionnez Aucun.

  6. Sélectionnez Standard Verizon ou Premium Verizon pour votre niveau tarifaire CDN. Le nom du profil change en conséquence. Laissez le nom tel qu’il est pour cet exercice.

  7. Pour le profil CDN, sélectionnez Créer une.

  8. Sélectionnez Créer. Une fois le point de terminaison déployé, l’écran des points de terminaison de streaming s’affiche.

  9. Sélectionnez le point de terminaison de streaming que vous venez de créer. L’écran du point de terminaison de diffusion en continu s’affiche avec des estimations d’accès au public.

  10. Le paramètre par défaut pour le point de terminaison de streaming avec 1 unité de diffusion en continu indique qu’il est estimé à 571 visionneuses simultanées à 3,5 Mbits/s à l’aide de 90% du CDN et 10% du point de terminaison de streaming.

  11. Modifiez le pourcentage de la source de sortie de 90% du cache CDN à 0%. La calculatrice estime que vous pourrez diffuser en continu vers 57 visionneuses simultanées à 3,5 Mbits/s à 200 Mbits/s sans un CDN.

  12. À présent, remplacez la source de sortie par 90%.

  13. Ensuite, remplacez les unités de diffusion par 2. La calculatrice estime que vous pourrez diffuser en continu vers 1143 visionneuses simultanées à 3,5 Mbits/s avec 4 000 Mbits/s avec le CDN qui gère 90% du trafic.

  14. Sélectionnez Enregistrer.

  15. Vous pouvez démarrer le point de terminaison de streaming et essayer d’y envoyer du trafic. Les métriques situées en bas de l’écran effectuent le suivi du trafic réel.

Timing

Vous souhaiterez peut-être approvisionner des unités de diffusion en continu 1 heure avant l’utilisation maximale attendue pour vous assurer que les unités de diffusion en continu sont prêtes.

Obtenir de l’aide et du support

Vous pouvez contacter Media Services avec des questions ou suivre nos mises à jour par l’une des méthodes suivantes :