Scénarios
ApsaraVideo Live transmet les flux vidéo RTMP (Real-Time Messaging Protocol) depuis un client d'ingestion vers le centre live. Le client d'ingestion peut être un outil dédié ou le SDK Push. Le centre live correspond à l'URL d'ingestion fournie par ApsaraVideo Live, telle que video-center.alivecdn.com. Pour en savoir plus sur les méthodes d'ingestion, consultez la rubrique Paramètres et opérations d'ingestion. Toutefois, l'ingestion de flux peut échouer même si vous suivez les instructions. Cette rubrique décrit les problèmes courants liés à l'ingestion de flux et fournit les étapes de dépannage appropriées.
Dépannage
-
Incorrect client ingest method
-
Vérifiez que l'URL et le Stream Name configurés dans vos paramètres de flux sont corrects.
RemarqueLes paramètres présentés ci-dessous concernent Open Broadcaster Software (OBS) à titre d'exemple. Vos propres paramètres peuvent varier.
L'URL inclut le centre live et l'AppName. Le nom du flux comprend les paramètres StreamName et QueryString. Ces derniers contiennent le paramètre vhost ainsi que, si l'authentification est activée, le paramètre auth_key.
Définissez le Stream Type sur Custom Streaming Server. Dans le champ URL, saisissez l'URL d'ingestion, par exemple
rtmp://push.aliyunlive.com/app/. Dans le champ Stream Name, entrez le nom du flux accompagné de la clé d'authentification, par exemplestream?auth_key=xxx. -
Examinez la configuration de votre outil d'ingestion client. Parmi les outils d'ingestion courants figurent OBS, ffmpeg et Adobe Flash Media Live Encoder. Utilisez ces outils pour tester le bon fonctionnement de l'ingestion. Si l'opération réussit, recherchez les anomalies spécifiques à votre méthode d'ingestion initiale.
RemarquePour plus de détails sur la configuration de l'ingestion avec OBS, consultez la rubrique Outil d'ingestion OBS.
Si d'autres outils fonctionnent correctement, le problème réside dans la configuration de votre client. Comparez les paramètres, identifiez les divergences et ajustez-les en conséquence.
-
-
Non-compliant audio and video encoding
ApsaraVideo Live exige l'utilisation du format H.264 for video streams et du format Advanced Audio Coding (AAC) for audio streams. Assurez-vous que vos formats d'encodage respectent ces exigences. Dans le cas contraire, des problèmes peuvent survenir selon les protocoles de diffusion utilisés.
Utilisez la commande ffmpeg suivante pour vérifier le format d'encodage du flux.
ffmpeg -i rtmp://[$Your_Domain]/[$App_Name]/[$Stream_Name][$Your_Domain] : votre domaine d'ingestion.
[$App_Name] : l'AppName figurant dans l'URL d'ingestion.
[$Stream_Name] : le StreamName figurant dans l'URL d'ingestion.
Confirmez que le format d'encodage de votre flux répond aux exigences spécifiées.
D:\Common Tools\ffmpeg\bin>ffmpeg -i rtmp://xxx/AppName/StreamName ffmpeg version N-79143-g8ff0f6a Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --ena ble-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enabl e-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopenc ore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --ena ble-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enabl e-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-l ibvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-lib webp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enab le-libzing --enable-lzma --enable-decklink --enable-zlib libavutil 55. 19.100 / 55. 19.100 libavcodec 57. 30.100 / 57. 30.100 libavformat 57. 29.101 / 57. 29.101 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 40.102 / 6. 40.102 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Metadata: Server Tengine width 720.00 height 540.00 displayWidth 720.00 displayHeight 540.00 duration 0.00 framerate 24.00 videodatarate 300.00 videocodecid 7.00 audiodatarate 62.00 audiocodecid 10.00 via liveproxy010182174197.eu6,livesource010182170179.eu6,liv esource010182170179.eu6,liveproxy010182169150.eu6,cache13.l2nu17-1[328,75,444,MI SS],cache19.l2nu17-1[444,-1,655,MISS],cache7.cn396[713,52,805,MISS],cache6.cn396 [805,2,1006,MISS] begints 23258.00 alilive_streamid dc xxx.cn/AppName/StreamName videocodecreal 0.00 key_ts: Input #0, flv, from 'rtmp://dc xxx.cn/AppName/StreamName': Metadata: Server : Tengine displayWidth : 720 displayHeight : 540 fps : 24 profile : level : via : liveproxy010182174197.eu6,livesource010182170179.eu6,lives ource010182170179.eu6,liveproxy010182169150.eu6,cache13.l2nu17-1[328,75,444,MISS ],cache19.l2nu17-1[444,-1,655,MISS],cache7.cn396[713,52,805,MISS],cache6.cn396[8 05,2,1006,MISS] begints : 23258 alilive_streamid: dc xxx.cn/AppName/StreamName videocodecreal : 0 Duration: 00:00:00.00, start: 20.843000, bitrate: N/A Stream #0:0: Video: h264 (High), yuv420p, 720x540 [SAR 1:1 DAR 4:3], 307 kb/ s, 24.42 fps, 24 tbr, 1k tbn, 48 tbc Stream #0:1: Audio: aac (LC), 22050 Hz, stereo, fltp, 63 kb/s -
Concurrent ingest limit reached
Le service ApsaraVideo Live impose des limites sur le nombre de domaines live par utilisateur et sur le nombre de flux d'ingestion simultanés pour un domaine donné. Un seul compte peut créer jusqu'à 20 domaines live. Si le centre live se trouve à Pékin, Shanghai ou Shenzhen, chaque nom de domaine accéléré prend en charge par défaut jusqu'à 300 flux live originaux (non transcodés) simultanés. Chaque domaine live est limité à 300 flux d'ingestion simultanés. Pour les autres centres live, chaque nom de domaine accéléré prend en charge par défaut jusqu'à 50 flux live originaux (non transcodés) simultanés. Si le nombre de flux d'ingestion simultanés dépasse cette limite, l'opération échoue.
Par ailleurs, si le transcodage en temps réel est configuré pour l'AppName et que le centre live est situé à Pékin, Shanghai ou Shenzhen, chaque domaine prend en charge jusqu'à 300 flux transcodés simultanés. Cela signifie qu'un domaine unique peut diffuser au maximum 300 flux transcodés en même temps. Pour les autres centres live, chaque domaine prend en charge jusqu'à 50 flux transcodés simultanés. Le dépassement de cette limite entraîne l'échec de l'ingestion.
Pour consulter le nombre actuel de flux d'ingestion simultanés, reportez-vous à la rubrique Gérer les flux live.
RemarquePour en savoir plus sur les limites d'ingestion de flux et sur la procédure pour les augmenter, consultez la rubrique Limites.
-
Stream Ingest Is Disabled for This Live Stream
ApsaraVideo Live vous permet de désactiver l'ingestion de flux pour une paire AppName et StreamName spécifique. Si une URL d'ingestion figure sur la liste noire, l'opération échoue. En cas d'échec, vérifiez que l'URL d'ingestion n'est pas bloquée.
Consultez la page Flux de la console pour déterminer si le flux live est bloqué. Pour plus d'informations, voir Gérer les flux live.
Appelez l'opération DescribeLiveStreamsBlockList afin de récupérer les informations relatives aux flux live bloqués pour un domaine spécifique.
Pour reprendre la diffusion du flux live :
Sur la page Flux de la console, cliquez sur Streams dans la ligne correspondant au flux live cible.
Appelez l'opération ResumeLiveStream pour reprendre la diffusion du flux live.
-
Streams
Une fois l'authentification activée, les URL d'ingestion et de lecture du domaine doivent toutes deux inclure le paramètre auth_key. L'ingestion échoue si le paramètre d'authentification a expiré ou si la signature est incorrecte. Pour plus de détails, consultez la rubrique Authentification des URL d'ingestion et de lecture.
-
Enable
Le client d'ingestion transmet le flux live au centre live via le protocole RTMP. Tout problème survenant sur ce trajet réseau peut provoquer l'échec de l'ingestion. Commencez par vérifier les deux points suivants :
Depuis le client d'ingestion, exécutez un
pingsur l'URL d'ingestion afin de détecter d'éventuelles pertes de paquets. Si des pertes sont constatées, contactez votre fournisseur d'accès Internet pour investigation.Depuis le client d'ingestion, utilisez la commande
telnetpour tester la connectivité vers le port 1935 du domaine d'ingestion. En cas d'échec de connexion, effectuez le test depuis un autre environnement réseau afin de déterminer si le problème provient de votre réseau local.
-
Authentication failed
L'ingestion cliente ajoute deux horodatages à chaque trame vidéo et audio : l'horodatage de présentation (pkt_pts) et l'horodatage de décodage (pkt_dts). Utilisez la commande
ffprobepour les afficher. Par exemple :ffprobe -show_frames rtmp://live.zhibotest.com/AppName/StreamName. Voici un exemple de résultat :Si l'horodatage
pkt_ptsoupkt_dts(en millisecondes) dépasse 31 bits lors de sa conversion binaire, des problèmes d'incompatibilité client peuvent survenir. Les champswidthetheightindiquent la résolution vidéo. Le champpict_typeindique le type de trame (les trames vidéo sont classées en B, P ou I ; seule la vidéo possède cette propriété).[/FRAME] [FRAME] media_type=video stream_index=1 key_frame=0 pkt_pts=100766 pkt_pts_time=100.766000 pkt_dts=100766 pkt_dts_time=100.766000 best_effort_timestamp=100766 best_effort_timestamp_time=100.766000 pkt_duration=33 pkt_duration_time=0.033000 pkt_pos=255797 pkt_size=10406 width=1280 height=720 pix_fmt=yuv420p sample_aspect_ratio=N/A pict_type=B coded_picture_number=23 display_picture_number=0 interlaced_frame=0 top_field_first=0 repeat_pict=0 color_range=unknown color_space=unknown color_primaries=unknown color_transfer=unknown chroma_location=left [/FRAME] [FRAME] media_type=audioL'horodatage peut être converti en valeur binaire. S'il dépasse 24 bits, vérifiez côté client d'ingestion si une trame vidéo excède la taille maximale et contient plusieurs fragments (chunks). Le cas échéant, modifiez le client d'ingestion afin d'Network error. Vous pouvez également résoudre le problème en forçant une valeur pts plus petite.
-
Ingest timestamp uses an extension field
Si aucune des méthodes précédentes ne résout le problème, soumettez un ticket. Pour savoir comment procéder, consultez la rubrique Nous contacter. Fournissez les informations suivantes afin que nos ingénieurs du support technique puissent vous aider :
URL d'ingestion et URL de lecture.
Méthode d'ingestion, incluant l'outil utilisé et la procédure suivie.
Message d'erreur affiché sur le client d'ingestion lors de l'échec.
Capture d'écran du résultat du ping vers l'adresse IP du domaine d'ingestion.
Capture d'écran du résultat de la tentative de connexion telnet au port 1935 du domaine d'ingestion.