Real-Time Streaming (RTS) réduit la latence de bout en bout de 3 à 6 secondes au niveau de la milliseconde, tout en offrant une meilleure résistance à la perte de paquets. RTS est idéal pour le streaming en direct dans le commerce électronique, l'éducation en ligne, les événements sportifs et le divertissement en direct. Cette rubrique vous guide tout au long de la configuration complète de RTS.
Prérequis
-
Un domaine d'ingestion, un domaine de diffusion et un dossier ICP valide. .
RemarqueSi votre centre de diffusion en direct est situé dans une région hors de Chine continentale et que votre région d'accélération est définie sur Outside Chinese Mainland, vos domaines ne nécessitent pas de dossier ICP.
Si les domaines d'ingestion et de diffusion sont deux sous-domaines appartenant au même domaine de premier niveau, il vous suffit d'obtenir un dossier ICP pour le domaine de premier niveau.
Flux de travail de base de RTS
Étape 1 : Activer ApsaraVideo Live
Tutoriel vidéo : Activer le service de streaming en direct.
Connectez-vous à la console ApsaraVideo Live.
Cliquez sur Enable Now. Sur la page d'activation, sélectionnez une méthode de facturation (pay-by-traffic ) puis cochez la case ApsaraVideo Live Service Agreement.
Cliquez sur Enable Now.
Étape 2 : Ajouter des domaines d'ingestion et de diffusion
Avant d'utiliser le service RTS, vous devez ajouter un domaine d'ingestion et un domaine de diffusion.
Tutoriel vidéo : Ajouter un nom de domaine.
-
Préparez vos noms de domaine.
Si vous ne disposez pas de nom de domaine, vous pouvez en enregistrer un sur la plateforme Alibaba Cloud Domains. Pour plus d'informations, consultez la rubrique Enregistrer un nom de domaine sur Alibaba Cloud.
-
Après l'enregistrement d'un nom de domaine, vous devrez peut-être demander un dossier ICP selon votre usage. Pour plus d'informations, consultez la rubrique Procédure de dossier ICP.
RemarquePour tester rapidement les fonctionnalités de base d'ApsaraVideo Live, vous pouvez sélectionner une région de centre de diffusion en direct située hors de la Chine continentale et définir la région d'accélération sur Outside Chinese Mainland. Dans ce cas, aucun dossier ICP n'est requis pour votre nom de domaine.
Si le domaine d'ingestion et le domaine de diffusion sont deux sous-domaines du même domaine racine, il vous suffit d'obtenir un dossier ICP pour le domaine racine.
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, cliquez sur Domain Names. La page Domain Management s'affiche.
-
Cliquez sur Add Domain.
RemarquePour ajouter un sous-domaine, ajoutez un préfixe à votre nom de domaine enregistré. Un sous-domaine ne doit pas être enregistré séparément. Veillez à distinguer le domaine d'ingestion du domaine de diffusion.
-
Configurez les paramètres de nom de domaine requis.
ImportantLorsque vous ajoutez un nom de domaine à ApsaraVideo Live pour la première fois, vous devez vérifier sa propriété. Pour plus d'informations, consultez la rubrique Vérifier la propriété du domaine.
-
Notez la valeur d'enregistrement CNAME générée pour l'étape suivante.
Après avoir ajouté le domaine, un tableau de configuration s'affiche. Ce tableau inclut le domaine de diffusion, le type d'enregistrement (CNAME), le nom d'hôte et la valeur d'enregistrement CNAME. Vous devez ajouter cette valeur d'enregistrement CNAME chez votre fournisseur DNS pour activer l'accélération CDN. Vous pouvez également cliquer sur CNAME Configuration Guide pour effectuer la configuration.
Étape 3 : Configurer un enregistrement CNAME
Pointez votre domaine vers l'adresse CNAME attribuée par Alibaba Cloud. Les étapes suivantes utilisent Alibaba Cloud DNS.
Les serveurs de vérification d'Alibaba Cloud CDN sont déployés en Chine continentale. Si vous configurez une résolution DNS géographique avec un enregistrement CNAME uniquement pour les régions hors de Chine continentale, les serveurs de vérification ne peuvent pas résoudre l'adresse CNAME. Le statut CNAME apparaît alors comme Pending Configuration. Cela n'affecte pas le service d'accélération CDN.
Les domaines CNAME pour Alibaba Cloud CDN, Dynamic Route for CDN (DCDN), ApsaraVideo Live et ApsaraVideo VOD ne peuvent être utilisés que pour la planification et la résolution par Alibaba Cloud CDN. Alibaba Cloud se réserve le droit de suspendre tous les domaines et comptes qui utilisent abusivement les domaines CNAME.
Connectez-vous à la console Alibaba Cloud DNS-Authoritative Domains.
Dans le volet de navigation de gauche, choisissez Authoritative DNS Resolution.
Recherchez le domaine que vous souhaitez configurer et cliquez sur Settings dans la colonne Actions.
-
Cliquez sur Add Record et configurez les paramètres suivants :
Paramètre
Description
Type d'enregistrement
Sélectionnez CNAME Record pour pointer un nom de domaine vers un autre.
Hôte
Saisissez le préfixe du nom de domaine. Le tableau ci-dessous répertorie les préfixes courants et des exemples de domaines.
Ligne de résolution
Sélectionnez la valeur par défaut.
Valeur d'enregistrement
Saisissez la valeur CNAME de l'enregistrement.
TTL
Sélectionnez la valeur par défaut.
Préfixe
Exemple de domaine
Description
demo
demo.aliyundoc.com
Résout un sous-domaine.
@
aliyundoc.com
Résout le domaine de premier niveau.
*
*.aliyundoc.com
Résolution générique.
Cliquez sur OK pour terminer la configuration CNAME.
Vérifier la propagation CNAME
Méthode 1 : Sur la page Add CNAME Record, cliquez sur CNAME Configuration Guide. Dans la section CNAME validation, cliquez sur Verify pour vérifier si la configuration CNAME a pris effet.
-
Méthode 2 : Exécutez la commande nslookup -type=cname yourdomain.com. Si le résultat de résolution renvoyé correspond à la valeur CNAME du domaine dans la console ApsaraVideo Live, l'enregistrement CNAME est actif.
C:\Users\xxx>nslookup -type=cname xxx Server: xxx Address: xxx Non-authoritative answer: xxx canonical name = cxxx.cdngslb.com C:\Users\xxx>
Configurer un certificat SSL (facultatif)
Pour lire des flux en direct dans un navigateur, configurez un certificat SSL pour vos domaines d'ingestion et de diffusion. Activer le streaming sécurisé via HTTPS.
Étape 4 : Associer les domaines d'ingestion et de diffusion
Vous devez associer un domaine d'ingestion à un domaine de diffusion pour utiliser RTS.
Tutoriel vidéo : Associer un domaine d'ingestion à un domaine de diffusion.
Dans le volet de navigation de gauche, cliquez sur Domain Names. Recherchez votre domaine de diffusion et cliquez sur Domain Settings dans la colonne Actions pour accéder à la page .
Cliquez sur l'onglet Stream Ingest Information.
Cliquez sur Add Stream Ingest Information ou sur l'icône de modification à côté de Ingest Domain pour sélectionner le domaine d'ingestion que vous souhaitez associer. Dans la boîte de dialogue Ingest Domain qui s'affiche, sélectionnez un domaine d'ingestion existant dans la liste déroulante Ingest Domain et cliquez sur OK. Si vous devez ajouter un nouveau domaine d'ingestion, vous devez d'abord l'ajouter sur la page Domain Management.
Étape 5 : Activer Real-Time Streaming (RTS)
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, choisissez Live + > RTS.
Sélectionnez le domaine de diffusion pour lequel vous souhaitez activer RTS.
-
Activez l'interrupteur RTS et sélectionnez Sub-second (End-to-End Latency: 400-800 ms) ou Half-second (End-to-End Latency: 200-400 ms).
Cliquez sur Quickly Generate Live Streaming URLs pour générer des URL d'ingestion et de lecture via le protocole ARTC. Assurez-vous d'avoir configuré un certificat SSL et correctement défini l'en-tête de réponse
Access-Control-Allow-Origin.
Latence inférieure à la seconde
Fonctionnalités : latence de bout en bout de 400 à 800 ms. Compatible avec le streaming en direct standard et d'autres protocoles d'ingestion et de lecture.
Protocoles pris en charge : ARTC (basé sur WebRTC) pour l'ingestion et la lecture. Rétrocompatible avec le streaming en direct standard : prend en charge l'ingestion RTMP, l'extraction depuis l'origine et la lecture RTMP/FLV/HLS.
Outils d'ingestion et de lecture : Compatible avec la plupart des outils courants. Recommandés : SDK d'ingestion en direct d'Alibaba Cloud et SDK de lecteur en direct d'Alibaba Cloud.
-
Autres remarques : Si le flux contient des images B ou un audio non Opus, le système supprime automatiquement les images B et transcode l'audio en Opus pour la lecture H5, ce qui entraîne des frais de transcodage en direct.
Lecture via le SDK Web d'Alibaba Cloud : WebRTC natif ne prend pas en charge les images B et utilise l'audio Opus. Le système déclenche automatiquement le transcodage en fonction du contenu ingéré :
Si le flux contient des images B et un audio encodé en AAC, le transcodage vidéo supprime les images B et le transcodage audio convertit l'AAC en Opus. Des frais de transcodage vidéo standard sont appliqués en fonction de la résolution source.
Si le flux ne contient pas d'images B mais utilise un audio AAC, le transcodage audio convertit l'AAC en Opus. Des frais de transcodage audio uniquement sont appliqués.
Si vous configurez également un modèle de transcodage en direct, la suppression des images B et le transcodage Opus s'appliquent en plus du modèle. Des frais sont appliqués pour les opérations de transcodage combinées.
Lecture via le SDK Native d'Alibaba Cloud : Le SDK prend nativement en charge les images B et l'AAC, donc aucun transcodage automatique n'est déclenché et aucun frais supplémentaire n'est appliqué.
Latence d'une demi-seconde
Fonctionnalités : latence de bout en bout de 200 à 400 ms. Idéal pour les scénarios exigeant la latence la plus faible possible.
Protocoles pris en charge : ARTC (basé sur WebRTC) uniquement. Non compatible avec le streaming en direct standard : ne prend pas en charge l'ingestion RTMP, l'extraction depuis l'origine ni la lecture RTMP/FLV/HLS.
Outils d'ingestion et de lecture : Pour l'ingestion, vous pouvez utiliser OBS avec le protocole WHIP ou le SDK d'ingestion en direct d'Alibaba Cloud. Pour la lecture, vous devez utiliser le SDK de lecteur d'Alibaba Cloud.
-
Autres remarques : Le domaine de diffusion ne peut pas utiliser les fonctionnalités cloud telles que le transcodage ou l'enregistrement. Utilisez une configuration de retransmission pour pousser le flux vers un autre domaine de diffusion pour ces fonctionnalités.
Cliquez sur Configure Stream Relay et sélectionnez un domaine d'ingestion pour recevoir le flux RTMP retransmis. Le domaine doit être associé à un domaine de diffusion et avoir les fonctionnalités de mode demi-seconde à ultra-faible latence et de récupération après sinistre à double flux désactivées. Par exemple, si
push.example.comest associé àpull.example.com, vous pouvez extraire le flux depuispull.example.comà l'aide des protocoles standards et utiliser le transcodage et l'enregistrement.
La configuration RTS peut prendre plusieurs minutes pour se propager sur le réseau. Veuillez patienter avant de commencer les tests.
Pour associer un domaine d'ingestion à plusieurs domaines de diffusion, consultez la rubrique Associer les domaines de diffusion principaux et secondaires.
RTS et le streaming en direct standard peuvent partager un domaine de diffusion, mais RTS utilise UDP tandis que le streaming standard utilise TCP. Il est recommandé d'utiliser un domaine de diffusion distinct pour RTS.
Étape 6 : Générer les URL d'ingestion et de diffusion
Méthode 1 : Générer les URL dans la console
Après avoir activé RTS, cliquez sur Generate URLs dans l'outil d'expérience d'ingestion et de lecture. Saisissez un AppName et un StreamName pour générer des URL d'ingestion et de diffusion RTS via le protocole ARTC.
Sélectionnez un domaine de diffusion, confirmez le domaine d'ingestion associé, activez Real-Time Streaming (RTS) et choisissez un mode de latence : latence inférieure à la seconde (400–800 ms, prend en charge l'ingestion RTMP/ARTC et la lecture HLS/FLV/RTMP/ARTC) ou latence d'une demi-seconde (200–400 ms, ARTC uniquement). Configurez un certificat SSL et l'en-tête de réponse Access-Control-Allow-Origin avant utilisation.
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 vous recommandons d'utiliser RTMP pour l'ingestion. Exemple : RTMP : Remarque
RTS prend en charge l'extraction 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.
Étape 7 : Ingérer et lire les flux RTS
Utilisez l'outil Try RTS dans la console pour tester l'ingestion et la lecture. Choisissez d'ingérer depuis votre caméra ou de partager votre écran, puis cliquez sur le bouton correspondant pour démarrer.
L'outil d'expérience de la console utilise un domaine de signalisation proxy. Si vous intégrez directement le SDK Web, configurez un certificat SSL et l'en-tête de réponse Access-Control-Allow-Origin pour vos domaines.
Alibaba Cloud RTS propose également des démonstrations mobiles et Web.
Vous pouvez également intégrer les SDK suivants :
|
Type de SDK |
Références |
|
Mobile |
|
|
Web |
En cas d'erreurs de lecture, exécutez des diagnostics avec l'outil Dépannage en libre-service.
Configurer un certificat SSL (facultatif)
Configurez un certificat SSL pour vos domaines d'ingestion et de diffusion afin d'activer la lecture RTS dans les navigateurs. Activer le streaming sécurisé via HTTPS.
Un certificat SSL est facultatif lors de l'utilisation des SDK ou des démonstrations RTS.
Configurer l'authentification personnalisée par URL (facultatif)
L'authentification par URL protège votre contenu contre les accès non autorisés et est activée par défaut pour les nouveaux domaines.
La configuration par défaut ne nécessite aucune configuration supplémentaire. Pour personnaliser, configurez la Primary Key, la Secondary Key et la Validity Period.
Tutoriel vidéo : Configurer l'authentification par URL.
Dans le volet de navigation de gauche, choisissez Domain Names. Sélectionnez le domaine de diffusion pour lequel vous avez activé RTS et cliquez sur Domain Settings dans la colonne Actions.
Choisissez pour accéder à la page Access Control.
-
Cliquez sur l'onglet URL Signing puis cliquez sur Modify.
RemarqueSi l'authentification par URL est déjà activée, cliquez sur Modify pour configurer les paramètres d'authentification. Si elle était précédemment désactivée, activez l'interrupteur URL Signing pour configurer les paramètres.
-
Configurez les informations d'authentification par URL. Le tableau suivant décrit les paramètres.
Paramètre
Description
Authentication Type
Les domaines de diffusion ApsaraVideo Live ne prennent en charge que l'authentification de type A pour protéger efficacement les ressources d'origine.
Remarque
Un échec d'authentification par URL renvoie une erreur 403. Si cela se produit, recalculez l'URL.
-
Erreur de calcul MD5
Par exemple :
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760be -
Erreur d'horodatage
Par exemple :
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
La console génère une clé primaire lorsque vous ajoutez un domaine. Affichez-la dans Domains, en sélectionnant votre domaine, en cliquant sur Domain Settings, puis en choisissant . Vous pouvez également définir une clé primaire personnalisée.
Secondary Key
Saisissez une clé secondaire personnalisée pour votre méthode d'authentification.
Validity Period
La période de validité contrôle la durée pendant laquelle une URL authentifiée peut initier des sessions. Les sessions actives continuent après l'expiration, mais les nouvelles demandes avec une URL expirée échouent.
Par défaut : 1 440 minutes (1 jour). Minimum : 1 minute.
-
Autres opérations : Vérifier la latence RTS
Ajoutez une URL de synchronisation temporelle à votre flux pour comparer l'heure du flux avec une source de temps standard et vérifier RTS. L'exemple suivant utilise l'outil de streaming OBS.
Dans OBS, ajoutez l'URL de synchronisation temporelle comme source de navigateur dans Sources, puis cliquez sur Start Streaming.