Guide des meilleures pratiques pour le streaming en direct dans Media Services

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

Notes

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

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é. En voici quelques-uns dont vous devez tenir compte :

  1. retards du côté de l’encodeur de contribution. Lorsque les clients utilisent un logiciel d’encodage tel qu’OBS Studio, Wirecast, etc. pour envoyer un stream en direct RTMP à Media Services. Les paramètres définis sur ce logiciel affectent la latence de bout en bout d’un stream 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 du lecteur vidéo et du réseau côté client ;

  5. timing de l’approvisionnement.

Encodeur de contribution

Vous contrôlez les paramètres de l’encodeur source avant que le flux RTMP n’atteigne Media Services. Voici quelques recommandations pour les paramètres susceptibles de vous offrir 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. Vous serez assuré de disposer d’une connexion réseau optimale au compte Media Services.

  2. Utilisez une taille de fragment cohérente. Nous vous recommandons d’opter pour une taille de groupe d’images de 2 secondes. La valeur par défaut de certains encodeurs (par exemple, 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 permettrait de décharger le travail du processeur sur le GPU.

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

  5. Envoyez du contenu dont la résolution n’est pas supérieure à celle du contenu que vous envisagez de diffuser. Par exemple, si vous utilisez des événements en direct avec encodage 720p standard, envoyez un flux à 720p.

  6. Conservez la fréquence d’images 30 fps ou une valeur inférieure, sauf si vous utilisez des événements en direct Pass-through. Bien que nous prenions en charge l’entrée 60 fps pour les événements en direct, notre sortie d’encodage pour les événements en direct ne dépasse toujours pas 30 fps. Pour hlS à faible latence, la fréquence d’images fixe est recommandée et la durée maximale des images ne doit pas dépasser 0,5 seconde pour une expérience optimale.

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 d’encodage Standard (jusqu’à 720p) et d’encodage Premium (jusqu’à 1080p), sauf si vous avez besoin d’une fenêtre DVR supérieure à 6 heures ou d’une sortie de streaming fluide, utilisez le paramètre 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, et d’augmenter le taux d’accès au cache lorsqu’un CDN est utilisé. Par exemple :

    Type Mettre en forme 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 taux de compression HLS égal à 1. Cela nous permet d’empaqueter un seul fragment dans un seul segment HLS. Vous ne profiterez pas de tous les avantages de LL-HLS dans les lecteurs Apple natifs.

Optimisations du lecteur

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

Media Services prend en charge différentes sorties de protocole de diffusion en continu : DASH, HLS avec sortie TS et HLS avec fragments CMAF. Lorsque vous utilisez l’option de flux LowLatencyV2, veillez à trouver un lecteur qui prend en charge HLS à faible latence (LL-HLS). Selon l’implémentation du lecteur, les décisions de mise en mémoire tampon ont un impact sur la latence observée par les spectateurs. Des conditions réseau médiocres ou l’utilisation d’algorithmes par défaut qui privilégient la qualité et la stabilité de la lecture peuvent amener les lecteurs à décider de mettre initialement davantage de contenu en mémoire tampon afin de prévenir les interruptions pendant la lecture. Ces mémoires tampons, avant et pendant les sessions de lecture, s’ajoutent à la latence de bout en bout.

Lorsqu’Azure Media Player est utilisé, le profil Heuristique à faible latence optimise le lecteur pour avoir la latence la plus faible possible du côté du lecteur. Ce lecteur prend uniquement en charge DASH, sauf s’il est utilisé sur Safari sur des appareils Apple.

Choix et optimisations du CDN

Les points de terminaison de streaming sont les serveurs d’origine qui fournissent le contenu de streaming en direct et VOD au CDN ou directement 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 fourni efficacement.

Nous vous recommandons d’utiliser Azure CDN qui est 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 seule sélection dans le Portail Azure. Veillez à activer Origin Shield et les optimisations de streaming pour votre point de terminaison CDN chaque fois que vous démarrez votre point de terminaison de streaming.

Nos clients rapportent également avoir eu de bonnes expériences avec l’utilisation de leur propre CDN. Assurez-vous que des mesures soient prises sur le CDN afin de protéger l’origine du 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 des points de terminaison de streaming

Notes

Un point de terminaison ou une 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’utilisez pas de point de terminaison de streaming standard pour mettre à l’échelle des unités de streaming si vous prévoyez de grands volumes de trafic ou si vous envisagez d’utiliser un CDN.

Un point de terminaison ou une origine de streaming premium offre un niveau de flexibilité et d’isolement supérieur qui permet aux clients d’évoluer en ajoutant ou en supprimant des unités de streaming dédiées. Une unité de streaming est une ressource de calcul allouée à un point de terminaison de streaming. Chaque unité de streaming peut diffuser environ 200 Mbits/s de trafic.

Bien que vous puissiez diffuser simultanément de nombreux événements en direct à 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 que la valeur de 10 points par défaut.

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

Il est possible de déterminer le nombre de points de terminaison de streaming et d’unités de streaming nécessaires grâce à deux étapes :

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

  2. Divisez le nombre total de sorties par 200, soit le nombre maximal de Mbits/s que chaque unité de streaming peut diffuser.

Déterminer le nombre total de sorties nécessaires

Déterminez le nombre total de sorties nécessaires à l’aide de la formule suivante.

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

Examinons chacun des multiplicateurs dans le détail :

Bande passante moyenne. Quelle vitesse de transmission moyenne prévoyez-vous pour la diffusion ? En d’autres termes, si vous prévoyez de proposer plusieurs vitesses de transmission, quelle vitesse de transmission est la moyenne de toutes les vitesses de transmission prévues ? Pour effectuer une estimation, vous pouvez utiliser l’une des méthodes suivantes :

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

  • Si vous ne savez pas évaluer la bande passante moyenne, vous pouvez utiliser nos vitesses de transmission supérieures comme estimation. La vitesse de transmission supérieure est 5,5 Mbits/s pour les événements en direct encodés en 1080p, pour une vitesse de transmission moyen d’environ 3,5 Mbits/s.

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

Pour un événement en direct qui utilise simplement la méthode Pass-through et non l’encodage :

  • Consultez l’échelle de la vitesse de transmission de l’encodage utilisée par votre encodeur local.

Nombre de spectateurs simultanés. Combien d’utilisateurs simultanés sont prévus ? Cela peut être difficile à estimer, aussi tenez compte de vos données client pour l’évaluer au mieux. Diffusez-vous une conférence à un public international ? Prévoyez-vous de présenter un ensemble de produits à vos clients dans le cadre d’un stream en direct ?

Pourcentage de traficgéré parle point de terminaison de streaming. Celui-ci peut également être exprimé comme « pourcentage de trafic NON géré par le CDN », car il s’agit du nombre qui est réellement inséré dans la formule. En tenant compte des ces informations, quel déchargement CDN prévoyez-vous ? Si le CDN est supposé gérer 90 % du trafic en direct, seul 10 % du trafic serait attendu sur le point de terminaison de streaming. Le nombre .10 est utilisé dans la formule. Il s’agit du 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 streaming premium nécessaires = bande passante moyenne x nombre de spectateurs x pourcentage de trafic non géré par le CDN / 200 Mbits/s

Exemple

Vous avez récemment lancé un nouveau produit que vous souhaitez présenter à vos clients existants. Vous aimeriez que la latence reste faible, car vous ne souhaitez pas frustrer votre audience déjà bien occupée. Vous utiliserez donc des points de terminaison de streaming premium et un CDN.

Vous avez environ 100 000 clients, mais il est probable qu’ils n’assisteront pas tous à votre événement en direct. Vous estimez que dans le meilleur des cas, seuls 1 % d’entre eux y assisteront, soit 1 000 spectateurs simultanés attendus.

Nombre de spectateurs simultanés =1 000

Vous avez décidé d’encoder votre stream en direct à l’aide de Media Services et n’utiliserez pas la méthdoe Pass-through. Vous ne savez pas quelle sera la bande passante moyenne, mais vous savez que votre contenu sera diffusé au format 1080p (vitesse de transmission supérieure de 5,5 Mbits/s). Votre bande passante moyenne est estimée à 3,5 Mbits/s pour vos calculs.

Bande passante moyenne =3,5

Étant donné que votre audience est répartie dans le monde entier, vous prévoyez que le CDN gérera la plupart (90 %) du trafic en direct. Les points de terminaison de streaming premium ne géreront ainsi que 10 % du trafic.

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

À l’aide de la formule fournie ci-dessus :

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

Nombre total de sorties nécessaires = 3,5 x 1 000 x 0,1

Nombre total de sorties nécessaires = 350 Mbits/s

En divisant le nombre totale 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 = nombre total de sorties nécessaires/200 Mbits/s

Unités de streaming premium nécessaires = 1,75

Nous allons arrondir ce nombre à 2, ce qui nous donne 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 streaming, vous pouvez utiliser la calculatrice fournie pour voir l’audience estimée lorsque vous modifiez la bande passante moyenne, le taux d’accès au CDN et le nombre d’unités de streaming.

  1. Dans la page du compte Media Services, sélectionnez Points de terminaison de streaming dans le menu.

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

  3. Nommez le 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 cherchez simplement à effectuer une estimation à ce stade, ne démarrez pas le point de terminaison de streaming après la création. Sélectionnez Non.

  6. Sélectionnez Verizon standard ou Verizon premium pour le niveau de tarification de votre CDN. Le nom du profil changera en conséquence. Laissez le nom tel quel pour cet exercice.

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

  8. Sélectionnez Create (Créer). Une fois le point de terminaison déployé, l’écran du point 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 streaming s’affiche avec les estimations d’audience.

  10. Le paramètre par défaut pour le point de terminaison de streaming avec 1 unité de diffusion de streaming montre qu’il est estimé qu’il diffusera du contenu auprès de 571 spectateurs simultanés à 3,5 Mbits/s en utilisant 90 % du CDN et 10 % du point de terminaison de streaming.

  11. Modifiez le pourcentage de la source de sortie de 90 % du cache du CDN à 0 %. La calculatrice estime que vous pourrez diffuser du contenu auprès de 57 spectateurs simultanés à 3,5 Mbits/s à 200 Mbits/s sans CDN.

  12. À présent, redéfinissez la source de sortie sur 90 %.

  13. Définissez ensuite les unités de streaming sur 2. La calculatrice estime que vous pourrez diffuser du contenu auprès de 1 143 spectateurs simultanés à 3,5 Mbits/s à 4 000 Mbits/s avec le CDN gérant 90 % du trafic.

  14. Sélectionnez Enregistrer.

  15. Vous pouvez démarrer le point de terminaison de streaming et essayer d’envoyer du trafic vers celui-ci. Les métriques en bas de l’écran suivront le trafic réel.

Minutage

Vous pouvez approvisionner des unités de streaming une heure avant le pic d’utilisation prévu pour vous assurer que les unités de streaming sont prêtes.

Obtenir de l’aide et du support

Vous pouvez contacter Media Services pour vous poser des questions ou suivre nos mises à jour en suivant l’une des méthodes suivantes :