Cette rubrique explique comment utiliser Real-Time Streaming (RTS) pour réduire la latence du streaming en direct à moins de 400 ms et offrir aux spectateurs une expérience de visionnage fluide et en temps réel.
Vue d'ensemble
La solution de streaming en direct repose sur le Global Realtime Transport Network (GRTN) d'Alibaba Cloud. Elle utilise le protocole WebRTC pour atteindre une latence de bout en bout de 200 à 400 ms. Cette solution s'intègre également de manière transparente au streaming en direct standard pour assurer la compatibilité ascendante.
Atteindre une latence de bout en bout de 200 à 400 ms avec RTS :
Le streamer capture le contenu en direct et utilise le Push SDK pour ingérer le flux vers le point de présence (POP) Alibaba Cloud le plus proche via le protocole WebRTC.
Le flux est transmis en temps réel à travers les plus de 3 200 nœuds du GRTN grâce à des technologies de routage intelligent et de qualité de service (QoS).
Les spectateurs récupèrent le flux depuis le point de présence (POP) Alibaba Cloud le plus proche via le protocole WebRTC pour la lecture, ce qui permet d'atteindre une latence de bout en bout de 200 à 400 ms.
(Facultatif) Activer la relance de flux pour prendre en charge le traitement multimédia, RTS et le streaming en direct standard :
Après avoir activé la relance de flux, ApsaraVideo Live transmuxe automatiquement le flux ingéré pour générer un flux RTMP.
Configurez des services multimédias pour ce flux, tels que le transcodage, l'enregistrement et la capture d'instantanés.
Pour maintenir une faible latence lors de la récupération du flux, utilisez RTS. Les spectateurs peuvent toujours récupérer le flux via WebRTC pour obtenir une latence de bout en bout de 400 à 800 ms.
Pour utiliser le streaming en direct standard, récupérez le flux pour la lecture à l'aide de protocoles tels que RTMP, FLV et HLS.
Implémentation
Prérequis
Activez le service ApsaraVideo Live. Pour plus d'informations, consultez Activer ApsaraVideo Live.
Configurez les domaines d'ingestion et de diffusion. Pour plus d'informations, reportez-vous aux sections « Ajouter un domaine d'ingestion et un domaine de diffusion », « Configurer un enregistrement CNAME » et « Associer un domaine d'ingestion à un domaine de diffusion » dans Prise en main d'ApsaraVideo Live.
Configurer les certificats HTTPS pour les domaines
Cette rubrique utilise une démo basée sur un navigateur pour l'ingestion et la récupération de flux. WebRTC dans les navigateurs nécessite HTTPS pour des raisons de sécurité. Par conséquent, configurez des certificats HTTPS pour vos domaines d'ingestion et de diffusion. Pour obtenir des instructions, consultez Configurer l'accélération sécurisée HTTPS.
Si vous utilisez un SDK natif pour l'ingestion et la lecture de flux, vous n'avez pas besoin de configurer de certificats HTTPS.
Activer Real-Time Streaming (RTS)
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, cliquez sur Live +> RTS.
Sélectionnez un domaine de diffusion.
Activez l'interrupteur RTS et sélectionnez Half-second latency (end-to-end latency 200–400 ms).
Après avoir sélectionné Half-second latency, seule l'ingestion et la lecture de flux via le protocole ARTC sont prises en charge. Le streaming en direct standard, l'ingestion de flux via RTMP et les fonctionnalités cloud telles que le transcodage et l'enregistrement sont désactivés pour le domaine de diffusion actuel.
Générer les URL d'ingestion et de lecture
Méthode 1 : Générer les URL dans la console
Après avoir activé RTS, accédez à l'outil de test de streaming et cliquez sur Generate URLs**. Saisissez un AppName et un StreamName pour générer les URL d'ingestion et de lecture RTS basées sur ARTC.
Sur la page de configuration, sélectionnez un domaine de diffusion et son domaine d'ingestion associé. Dans la section Latency goal, sélectionnez sub-second latency (latence de bout en bout : 400–800 ms) ou Half-second latency (latence de bout en bout : 200–400 ms). Si vous avez besoin d'une lecture HTTPS, assurez-vous d'avoir configuré un certificat SSL et l'en-tête de réponse Access-Control-Allow-Origin. L'URL d'ingestion et l'URL de lecture générées commencent toutes deux par artc://.
Méthode 2 : Assembler manuellement les URL
Pour assembler manuellement les URL, rassemblez les éléments suivants : domaine d'ingestion, domaine de diffusion, AppName, StreamName, ID de modèle de transcodage (le cas échéant) et chaîne d'authentification (le cas échéant).
|
Type d'URL |
Format d'URL |
Règle d'assemblage |
|
URL d'ingestion |
Prend en charge RTMP, RTS et SRT. Nous recommandons d'utiliser RTMP pour l'ingestion. Exemple : RTMP : Remarque
RTS prend en charge la récupération de flux à l'aide d'URL au format RTS. |
Domaine d'ingestion + AppName + StreamName + Chaîne d'authentification |
|
URL de diffusion |
Prend en charge RTMP, FLV, M3U8 et RTS. Nous vous recommandons d'utiliser RTS pour la lecture. Exemple : RTS : |
Domaine de diffusion + AppName + StreamName + Chaîne d'authentification |
|
URL de flux transcodé Remarque
Si vous utilisez un modèle de transcodage, vous devez assembler l'URL de diffusion en utilisant ce format. |
Prend en charge RTMP, FLV, M3U8 et RTS. Nous vous recommandons d'utiliser RTS pour la lecture. Exemple : RTS : |
Domaine de diffusion + AppName + StreamName_ID de modèle de transcodage + Chaîne d'authentification |
Pour les domaines d'ingestion et de diffusion associés, vous pouvez ingérer et lire des flux tant que l'AppName et le StreamName sont identiques pour les deux.
Une URL de flux transcodé nécessite un modèle de transcodage. Trouvez l'ID du modèle dans la console. Transcodage de flux en direct.
La chaîne d'authentification (auth_key) est générée par un algorithme d'authentification MD5. L'authentification par URL doit être activée. Composants d'une URL authentifiée.
Remplacez {transcoding_template_ID} ou {authentication_string} par les données réelles, et omettez les accolades {} de l'URL finale.
Ingérer le flux RTS
Intégrez l'un des Push SDK suivants :
|
Push SDK RTS |
Références |
|
Push SDK pour iOS |
Remarque
Le Push SDK pour iOS prend en charge l'ingestion de flux basée sur WebRTC par défaut. |
|
Push SDK pour Android |
Remarque
Le Push SDK pour Android prend en charge l'ingestion de flux basée sur WebRTC par défaut. |
|
Utiliser OBS pour l'ingestion de flux via le protocole WHIP |
Les étapes suivantes décrivent comment utiliser la démo web pour l'ingestion de flux RTS :
Accédez à la démo web RTS pour l'ingestion de flux.
Dans la démo, sélectionnez le mode Stream ingest.
-
Dans la liste déroulante none, sélectionnez camera ou screen selon vos besoins.
Si vous sélectionnez camera, cliquez sur les boutons Microphone et Camera pour accorder les autorisations requises au navigateur. Après avoir accordé les autorisations, sélectionnez vos appareils dans les listes déroulantes du microphone et de la caméra.
Saisissez l'URL d'ingestion RTS que vous avez générée à l'étape Générer les URL d'ingestion et de lecture et cliquez sur Create Local Stream.
Cliquez sur Start pour commencer l'ingestion du flux.
Lire le flux RTS
Intégrez l'un des ApsaraVideo Player SDK suivants :
|
RTS Player SDK |
Références |
|
ApsaraVideo Player SDK pour le Web |
|
|
ApsaraVideo Player SDK pour iOS |
|
|
ApsaraVideo Player SDK pour Android |
|
|
ApsaraVideo Player SDK pour Flutter |
|
|
ApsaraVideo Player SDK pour Windows |
Remarque
Pour obtenir l'ApsaraVideo Player SDK pour Windows, contactez notre équipe commerciale. |
Les étapes suivantes décrivent comment utiliser la démo web pour la lecture RTS :
Accédez à la démo web RTS pour la lecture.
Dans la démo, sélectionnez le mode Stream pull.
Saisissez l'URL de lecture RTS que vous avez générée à l'étape Générer les URL d'ingestion et de lecture.
Cliquez sur Start.
(Facultatif) Configurer la relance de flux
Sur la page des paramètres RTS, sélectionnez Half-second latency (end-to-end latency 200–400 ms).
Cliquez sur Configure Stream Relay, activez l'interrupteur et sélectionnez un autre domaine d'ingestion pour recevoir le flux RTMP relayé.
Par exemple, le domaine d'ingestion de destination est push.example.com, et son domaine de diffusion associé est pull.example.com.
Le mode Half-second latency de RTS ne peut pas être activé pour le domaine d'ingestion de destination ou son domaine de diffusion associé.
Aucun frais n'est facturé pour la relance de flux interne.
(Facultatif) Configurer les services multimédias pour les flux relayés
Après avoir configuré la relance de flux, configurez des modèles de traitement multimédia pour le domaine de diffusion (pull.example.com) associé au domaine d'ingestion de destination.
Dans le volet de navigation de gauche de la console ApsaraVideo Live, cliquez sur Feature Management et sélectionnez les fonctionnalités que vous souhaitez configurer.
La section Feature Management comprend des éléments de configuration pour des fonctionnalités telles que Live Recording, Live Transcoding, Live Watermark, Live Snapshot Capture, Live Time Shifting, Content Moderation, Live Packaging, Real-time Subtitles (aperçu public), Edge Transcoding, DRM Management, Callback Management et Stream Pull and Relay.
(Facultatif) Lire le flux relayé avec des protocoles standard
Après la relance du flux, utilisez le domaine de diffusion (pull.example.com) associé au domaine d'ingestion de destination pour lire le flux original ou transcodé en utilisant le streaming en direct standard (RTMP, FLV ou HLS). Pour plus d'informations, consultez Lire un flux en direct standard.