Latence de l’événement en direct dans Media ServicesLive Event latency in Media Services

Cet article explique comment définir une faible latence sur un événement en direct.This article shows how to set low latency on a Live Event. Il traite également des résultats généralement obtenus avec des paramètres de faible latence sur différents lecteurs.It also discusses typical results that you see when using the low latency settings in various players. Les résultats varient en fonction de la latence réseau et du CDN.The results vary based on CDN and network latency.

Pour utiliser la nouvelle fonction LowLatency, définissez le paramètre StreamOptionsFlag sur LowLatency dans l’événement LiveEvent.To use the new LowLatency feature, you set the StreamOptionsFlag to LowLatency on the LiveEvent. Lors de la création de LiveOutput pour la lecture HLS, définissez LiveOutput.Hls.fragmentsPerTsSegment sur 1.When creating LiveOutput for HLS playback, set LiveOutput.Hls.fragmentsPerTsSegment to 1. Une fois le flux opérationnel, vous pouvez ouvrir la page de démonstration du Lecteur multimédia Azure et configurer les options de lecture afin d’utiliser le profil heuristique à faible latence (« Low Latency Heuristics Profile »).Once the stream is up and running, you can use the Azure Media Player (AMP demo page), and set the playback options to use the "Low Latency Heuristics Profile".

Notes

Actuellement, le profil heuristique à faible latence dans le Lecteur multimédia Azure est conçu pour lire des flux dans le protocole MPEG-DASH, avec le format CSF ou CMAF (par exemple, format=mdp-time-csf ou format=mdp-time-cmaf).Currently, the LowLatency HeuristicProfile in Azure Media Player is designed for playing back streams in MPEG-DASH protocol, with either CSF or CMAF format (for example, format=mdp-time-csf or format=mdp-time-cmaf).

L’exemple .NET suivant montre comment définir LowLatency sur l’événement LiveEvent :The following .NET example shows how to set LowLatency on the LiveEvent:

LiveEvent liveEvent = new LiveEvent(
            location: mediaService.Location, 
            description: "Sample LiveEvent for testing",
            vanityUrl: false,
            encoding: new LiveEventEncoding(
                        // Set this to Standard to enable a transcoding LiveEvent, and None to enable a pass-through LiveEvent
                        encodingType:LiveEventEncodingType.None, 
                        presetName:null
                    ),
            input: new LiveEventInput(LiveEventInputProtocol.RTMP,liveEventInputAccess), 
            preview: liveEventPreview,
            streamOptions: new List<StreamOptionsFlag?>()
            {
                // Set this to Default or Low Latency
                // To use low latency optimally, you should tune your encoder settings down to 1 second "Group Of Pictures" (GOP) length instead of 2 seconds.
                StreamOptionsFlag.LowLatency
            }
        );

Pour voir l’exemple complet : MediaV3LiveApp.See the full example: MediaV3LiveApp.

Latence d’événements en directLive Events latency

Les tableaux suivants illustrent les résultats classiques de latence (quand l’indicateur LowLatency est activé) dans Media Services, mesurée entre le moment où le flux de contribution atteint le service et celui où un utilisateur voit la lecture sur le lecteur.The following tables show typical results for latency (when the LowLatency flag is enabled) in Media Services, measured from the time the contribution feed reaches the service to when a viewer sees the playback on the player. Pour utiliser de façon optimale une faible latence, vous devez baisser les paramètres de votre encodeur en les définissant sur une longueur GOP (« groupe d’images ») de 1 seconde.To use low latency optimally, you should tune your encoder settings down to 1 second "Group Of Pictures" (GOP) length. Quand vous utilisez une longueur GOP supérieure, vous réduisez la consommation de bande passante ainsi que la vitesse de transmission sous la même fréquence d’images.When using a higher GOP length, you minimize bandwidth consumption and reduce bitrate under same frame rate. Cela est particulièrement utile dans les vidéos avec moins de mouvement.It is especially beneficial in videos with less motion.

Requête directePass-through

GOP 2 s à faible latence2s GOP low latency enabled GOP 1 s à faible latence1s GOP low latency enabled
DASH dans AMPDASH in AMP 10 s10s 8 s8s
HLS sur lecteur iOS natifHLS on native iOS player 14 s14s 10 s10s

Encodage en directLive encoding

GOP 2 s à faible latence2s GOP low latency enabled GOP 1 s à faible latence1s GOP low latency enabled
DASH dans AMPDASH in AMP 14 s14s 10 s10s
HLS sur lecteur iOS natifHLS on native iOS player 18 s18s 13 s13s

Notes

La latence de bout en bout peut varier en fonction des conditions du réseau local ou en introduisant une couche de mise en cache d’un réseau de distribution de contenu.The end-to-end latency can vary depending on local network conditions or by introducing a CDN caching layer. Faites des tests spécifiquement dans vos configurations.You should test your exact configurations.

Étapes suivantesNext steps