Questions fréquentes et réponses concernant le streaming en temps réel (RTS), notamment les problèmes de lecture, la compatibilité d'encodage et le dépannage de la latence.
Puis-je utiliser à la fois le streaming live standard et le streaming en temps réel (RTS) pour le même flux live ?
Oui. ApsaraVideo Live génère des URL de lecture distinctes pour le streaming live standard et le RTS. Par exemple, le streaming live standard utilise une URL RTMP : rtmp://${playback domain}/AppName/StreamName?${access token}, tandis que le RTS utilise une URL artc : artc://${playback domain}/AppName/StreamName?${access token}.
Puis-je utiliser un SDK développé en interne pour m'intégrer au streaming en temps réel (RTS) ?
Oui, mais votre SDK doit respecter les spécifications du protocole de signalisation d'Alibaba Cloud. Pour plus d'informations, consultez Spécifications du protocole de signalisation GRTN pour l'accès WebRTC standard.
Pourquoi ne puis-je pas lire un flux ingéré depuis un client web à l'aide de RTS ?
Les limitations natives des navigateurs concernant WebRTC imposent les restrictions suivantes au SDK Web RTS :
La vidéo contenant des images B n'est pas prise en charge, ce qui peut provoquer des sauts ou des saccades lors de la lecture.
L'audio encodé en AAC n'est pas pris en charge, ce qui peut générer du bruit.
Pour résoudre ces problèmes, accédez à Live + > RTS dans la console ApsaraVideo Live. Activez Real-Time Streaming (RTS) et sélectionnez Sub-second (End-to-End Latency: 400-800 ms). Le système détecte et transcode automatiquement les flux contenant des images B ou de l'audio AAC. Des frais de transcoding s'appliquent. Pour plus d'informations, consultez Tarification RTS.
Comment personnaliser la résolution vidéo dans le SDK web ?
Pour savoir comment personnaliser la résolution vidéo dans le SDK web, consultez la Référence API du SDK de co-streaming web.
Comment optimiser les paramètres OBS pour les réseaux de mauvaise qualité ?
Pour optimiser OBS (Open Broadcaster Software) afin d'ingérer des flux sur un réseau de mauvaise qualité, suivez les étapes ci-dessous :
Démarrez OBS.
Dans le coin supérieur gauche, cliquez sur File et sélectionnez Settings.
Dans la fenêtre Settings, sélectionnez Output dans le panneau de gauche et définissez Output Mode sur Advanced. Dans l'onglet Streaming, définissez Video Encoder sur QuickSync H.264, Rate Control sur CBR et Bitrate sur 2500 Kbps.
Dans l'onglet Streaming, configurez l'encodeur pour gérer un réseau de mauvaise qualité.
Dans les paramètres de l'encodeur, augmentez l'intervalle entre les images clés (par exemple, réglez-le sur 2 s) et le nombre d'images B pour améliorer la fluidité.
Sélectionnez Video dans le panneau de gauche. Définissez Base (Canvas) Resolution sur 1920x1080, Output (Scaled) Resolution sur 1280x720, Downscale Filter sur Bicubic (Sharpened scaling, 16 samples) et Common FPS Values sur 30.
Pour une connexion stable, utilisez un réseau local filaire plutôt que le Wi-Fi et fermez les autres applications qui consomment de la bande passante.
Une fois les paramètres configurés, cliquez sur Apply puis sur OK pour enregistrer les modifications.
Pourquoi la latence est-elle élevée dans le streaming en temps réel (RTS) ?
Le RTS est conçu pour offrir une latence de l'ordre de la milliseconde. Si la latence est nettement supérieure à une seconde, effectuez les vérifications suivantes :
-
Vérifiez l'état du réseau sur le client d'ingestion.
Connectez-vous à la console ApsaraVideo Live. Dans le volet de navigation de gauche, choisissez .
Saisissez AppName et StreamName pour le flux et vérifiez s'il existe des anomalies au niveau du débit d'images ingérées, du débit binaire et des horodatages.
-
Obtenez le TraceID RTS et soumettez un ticket.
Si le débit d'images ingérées, le débit binaire et les horodatages sont normaux, mais que vous constatez toujours une latence élevée et des saccades, lisez le flux dans la démo du lecteur et obtenez le TraceID RTS pour la session. Pour obtenir des instructions, consultez Obtenir le TraceID RTS dans la démo du lecteur. Ensuite, soumettez un ticket au support technique d'Alibaba Cloud comme décrit dans Nous contacter.
Pourquoi l'audio est-il absent lors de la lecture HLS/FLV à partir d'une ingestion web RTS ?
L'ingestion web RTS encode l'audio au format OPUS, qui n'est pas compatible avec les lecteurs FLV et HLS. Pour prendre en charge la lecture FLV et HLS, utilisez RTMP pour l'ingestion de flux. Vous pouvez toujours utiliser RTS pour la lecture à faible latence parallèlement à la lecture HLS et FLV standard.
Pourquoi un flux RTS H.265 ne se lit-il pas dans les navigateurs ?
WebRTC natif dans les navigateurs ne prend pas en charge H.265. Assurez-vous que le flux ingéré utilise l'encodage H.264, ou activez le transcoding dans ApsaraVideo Live pour convertir H.265 en H.264 pour la lecture.
Compatibilité des navigateurs avec RTS
Pour la liste des navigateurs pris en charge, consultez Exigences relatives aux navigateurs.
Comment résoudre le problème d'échec de tirage et d'ingestion de flux avec QQ Browser sur certains appareils Android ?
Sur certains appareils Android, tels que Huawei P20 et vivo iQOO, QQ Browser peut échouer à démarrer le noyau X5 lors de sa première ouverture. Cela provoque un problème de compatibilité WebRTC qui empêche le tirage et l'ingestion de flux, avec l'erreur suivante : Failed to execute 'setRemoteDescription' on 'RTCPeerConnection'. Pour initialiser le noyau X5, effectuez les étapes suivantes :
Connectez-vous à un réseau Wi-Fi.
Actualisez la page et attendez environ 30 secondes.
Redémarrez le navigateur et visitez à nouveau la page. Le problème est résolu.
Pourquoi certains navigateurs ne prennent-ils pas en charge le SDK Web RTS ?
Un navigateur peut ne pas prendre en charge le SDK Web RTS pour l'une des raisons suivantes :
Le navigateur n'implémente pas les opérations API liées à WebRTC, ou les implémente incorrectement. Exemples : Microsoft Internet Explorer et UC Browser.
Le navigateur prend en charge les opérations API liées à WebRTC, mais ne prend en charge que l'encodage VP8, et non l'encodage H.264. Exemples : le navigateur intégré de certains appareils Android.
Pourquoi Safari sur iOS affiche-t-il le message d'erreur « Failed to set remote answer sdp » ?
Le message d'erreur suivant s'affiche :
Failed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer.
Cette erreur se produit lorsque d'autres SDK WebRTC sont intégrés simultanément au SDK RTS, provoquant des conflits webrtc-adapter. À partir de la version 2.2.4, le SDK RTS exclut l'adaptateur pour éviter ce problème. Utilisez le SDK RTS version 2.2.4 ou ultérieure avec d'autres SDK liés à WebRTC.
Pour intégrer le SDK RTS à l'aide de JavaScript, incluez directement le SDK RTS V2.2.4 ou une version ultérieure.
-
Pour intégrer le SDK RTS à l'aide de npm, ajoutez le code suivant :
import { AliRTS } from 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js';Pour les projets TypeScript, déclarez le module pour obtenir la prise en charge des types :
// Create file typings.d.ts in the root directory of the project. declare module 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js' { import {AliRTS} from 'aliyun-rts-sdk'; export {AliRTS} }
Absence d'audio dans les enregistrements RTS bruts
Si un enregistrement brut d'un flux RTS ne contient pas d'audio, effectuez les vérifications suivantes :
Vérifiez si le flux source contient de l'audio : Connectez-vous à la console ApsaraVideo Live. Dans le volet de navigation de gauche, choisissez . Utilisez Stream-based Data pour afficher le Audio Bitrate dans Stream Ingest Statistics. Si le débit audio est supérieur à 0, le flux source contient un audio valide.
Vérifiez les formats d'encodage audio pris en charge par votre lecteur : Nous vous recommandons d'utiliser un lecteur tel que VLC qui prend en charge presque tous les formats.
Configurez un modèle de transcoding d'enregistrement : Si votre lecteur ne prend pas en charge le format audio source et que vous ne pouvez pas modifier l'encodage source ni le lecteur, configurez un modèle de transcoding d'enregistrement pour transcoder l'audio vers un format courant tel que AAC avant l'enregistrement. Des frais de transcoding s'appliquent.