ApsaraVideo VOD vous permet d'intégrer rapidement une lecture multimédia sécurisée et stable à vos applications. Il fournit un système de sécurité complet incluant des identifiants de lecture, la signature d'URL et le chiffrement vidéo. ApsaraVideo VOD propose également un SDK multiplateforme pour faciliter l'implémentation de la lecture vidéo et réduire les coûts de développement. Cette rubrique explique le fonctionnement de la lecture des médias, les URL de lecture, les méthodes de lecture et la sécurité de la lecture.
Fonctionnement
La possibilité de lire un fichier audio ou vidéo dépend de son Statut. Seules les vidéos dont le statut est Normal (le champ Status a la valeur Normal) peuvent être lues. Vous pouvez obtenir les URL de lecture de ces vidéos en utilisant l'API ou le SDK d'ApsaraVideo VOD.
Les vidéos à l'état Checking ou Blocked ne peuvent être prévisualisées que dans la console ApsaraVideo VOD ou accessibles depuis une adresse IP de sécurité de révision configurée.
Les diagrammes suivants illustrent les changements de statut d'une vidéo, du téléchargement à la lecture.
-
Avec transcodage
-
Sans transcodage
Par conséquent, avant d'obtenir une URL de lecture, assurez-vous que le statut de la vidéo est Normal.
Méthode de détermination
Après le téléchargement d'une vidéo, celle-ci n'est pas immédiatement prête pour la lecture. ApsaraVideo VOD doit d'abord confirmer la réception de la vidéo. Utilisez les notifications d'événements pour déterminer quand la vidéo téléchargée est prête à être lue.
Pour les vidéos ou fichiers audio non transcodés, vous pouvez les lire après avoir reçu une notification d'événement Téléchargement de la vidéo terminé. Ensuite, appelez l'opération GetPlayInfo pour obtenir l'URL de lecture. Seuls les fichiers aux formats suivants peuvent être lus directement sans transcodage : MP4, FLV, M3U8, MP3 et WEBM.
Pour les vidéos transcodées, vous pouvez les lire après avoir reçu une notification d'événement Transcodage de définition unique terminé. Pour garantir la disponibilité de toutes les définitions, attendez la notification d'événement Transcodage terminé avant de traiter la vidéo.
Prérequis
Configurez un nom de domaine accéléré Pour plus d'informations, consultez la section Exigences relatives au nom de domaine. ApsaraVideo VOD ne vous oblige pas à configurer un nom de domaine accéléré CDN (la nécessité d'un nom de domaine CDN dépend de la manière dont vous souhaitez accéder à la vidéo) : si vous ne configurez pas de nom de domaine accéléré, vous pouvez appeler l'opération Obtenir les URL de lecture vidéo (
GetPlayInfo) pour obtenir une URL OSS contenant un paramètre d'authentification limité dans le temps et l'utiliser pour la lecture (la lecture fonctionne même sans nom de domaine accéléré). Si vous configurez un nom de domaine accéléré, vous pouvez utiliser le nom de domaine CDN pour un accès anonyme ou mettre en œuvre un contrôle de cache plus flexible via la signature d'URL. Les deux méthodes permettent une lecture normale ; la configuration d'un nom de domaine accéléré n'est donc pas une étape obligatoire pour la lecture.Résolvez l'enregistrement CNAME pour le nom de domaine : assurez-vous d'avoir associé un enregistrement CNAME au nom de domaine. Sinon, la lecture échouera. Pour plus d'informations, consultez les sections Configurer un enregistrement CNAME avec Alibaba Cloud DNS ou Configurer un enregistrement CNAME sur DNSPod.
Confirmez la configuration de transcodage : ApsaraVideo VOD peut transcoder ou ne pas transcoder les fichiers multimédias que vous téléchargez. Pour plus d'informations, consultez la section Transcodage audio et vidéo.
Confirmez la configuration de sécurité : ApsaraVideo VOD fournit plusieurs fonctionnalités de sécurité pour protéger votre contenu vidéo. Celles-ci incluent le contrôle d'accès, la signature d'URL, l'authentification distante, le chiffrement vidéo et le téléchargement sécurisé. Ces configurations de sécurité déterminent si une vidéo peut être lue. Pour plus d'informations, consultez la section Sécurité vidéo.
URL de lecture
-
Configurez le nom de domaine accéléré.
Après avoir configuré un nom de domaine accéléré dans la console ApsaraVideo VOD, l'URL de lecture est une URL de fichier CDN. Vous pouvez afficher l'URL sur la page Audio/Vidéo > Gérer > URL vidéo de la console. Les URL de lecture peuvent être fixes ou dynamiques. Cela dépend de l'activation ou non de la signature d'URL dans la gestion des noms de domaine. Pour savoir comment activer et configurer la signature d'URL, consultez la section Signature d'URL.
-
Adresse fixe
Cette méthode convient aux scénarios ayant de faibles exigences de sécurité. L'adresse reste valide en permanence, c'est-à-dire qu'elle ne contient pas d'informations d'authentification lorsque l'interrupteur d'authentification est désactivé (la valeur du paramètre
auth_keydans l'URL constitue l'information d'authentification). Par défaut, l'interrupteur d'authentification est désactivé après l'ajout d'un nom de domaine à la console. -
Adresse dynamique
Les URL dynamiques sont adaptées aux scénarios ayant des exigences de sécurité élevées. Elles sont générées dynamiquement et expirent après une période spécifique. La durée de validité par défaut des URL dynamiques correspond à la
durée de validité par défautque vous configurez dans la signature d'URL. Vous pouvez également définir une heure d'expiration lors de la Génération d'URL de lecture ou lors de l'Obtention d'URL de lecture vidéo. Si une URL expire, Alibaba Cloud CDN renvoieHTTP 403lors de l'accès.Exemple d'URL dynamique :
http://example.aliyundoc.com/video/aliyun-sample.mp4?auth_key=1500523200-0-0-80cd3862d699b7118eed99103f2a****RemarqueDans cet exemple, la valeur du paramètre auth_key commence par 1500523200. Cela correspond au 20 juillet 2017 à 12:00:00. Si la Durée de validité par défaut est définie sur 60 minutes, l'URL expire le 20 juillet 2017 à 13:00:00.
-
-
Si aucun nom de domaine accéléré n'est configuré
Lorsqu'aucun nom de domaine accéléré n'est configuré, les URL de lecture renvoyées sont des URL de fichier OSS. Dans ce cas, la signature d'URL n'est pas disponible, mais des informations d'authentification OSS sont générées par défaut. Pour plus d'informations, consultez la section OSS - Inclure les signatures dans les URL. Lorsque vous appelez l'API Obtenir les URL de lecture vidéo pour obtenir les URL de lecture, vous pouvez toujours utiliser le paramètre
AuthTimeoutpour spécifier la durée de vie (TTL) de l'URL OSS de la vidéo, mais vous ne pouvez pas personnaliser les informations d'authentification basées sur votre AccessKey.Si vous définissez le
Bucketde stockage sur public-read sur la page Gestion du stockage de la console, vous pouvez ignorer les informations d'authentification OSS (pour plus d'informations, consultez la section Gestion du stockage). Dans ce cas, l'URL est valide en permanence, mais il existe un risque de hotlinking et de téléchargements illégaux. Par conséquent, leBucketde stockage doit être défini sur private autant que possible.
Pour plus d'informations sur les paramètres courants des URL de lecture, consultez la section Paramètres de lecture courants.
Vous pouvez obtenir les URL de lecture de l'une des manières suivantes :
Directement : affichez la notification d'événement après la fin du transcodage ou appelez l'opération GetPlayInfo.
À l'aide d'un identifiant de lecture : utilisez le SDK du lecteur ApsaraVideo et appelez l'opération GetVideoPlayAuth pour obtenir un identifiant de lecture. Le SDK du lecteur ApsaraVideo utilise automatiquement l'identifiant pour obtenir l'URL de lecture.
Méthodes de lecture
-
Aperçu dans la console ApsaraVideo VOD
Le lecteur d'aperçu ApsaraVideo VOD offre des fonctionnalités telles que l'avance rapide, le contrôle du volume, les sous-titres, les pistes audio, le changement de résolution et les commentaires en direct. Ces fonctionnalités facilitent la prévisualisation de vos vidéos.

Sur la page Audio/Vidéo de la console, sélectionnez une vidéo à prévisualiser. Les flux chiffrés sont lus par défaut.
Sur la page Audio/Vidéo > Gérer > URL vidéo de la console, sélectionnez un flux à prévisualiser. Pour garantir la sécurité vidéo, seuls les flux non chiffrés peuvent être prévisualisés.
-
Intégrez le SDK du lecteur ApsaraVideo
Avant d'intégrer le SDK du lecteur ApsaraVideo, tenez compte des exigences suivantes en matière de version et d'authentification :
Version recommandée : utilisez le SDK du lecteur ApsaraVideo 2.37.6 ou une version ultérieure. Cette version résout les problèmes de compatibilité de lecture HLS avec Chrome 141+ et les navigateurs Edge, corrige le rendu anormal des plugins et traite les problèmes de fuite de mémoire.
À partir de la version 2.28.0 du SDK, l'authentification par licence est obligatoire. Pour configurer la licence :
Demandez une clé de licence sur la page Gestion du SDK de la console ApsaraVideo VOD. La licence de l'édition standard Web est actuellement gratuite.
Lors de l'initialisation du lecteur, configurez les paramètres
domain(le nom de domaine de la page où le lecteur est intégré, et non le domaine de stockage vidéo ou CDN) etlicenseKey.
Pour plus de détails sur l'obtention et la configuration d'une licence, consultez la section Comment obtenir et configurer une licence de lecteur Web ?
Changement de chemin d'accès aux ressources : à partir de la version 2.16.3 du SDK, les chemins d'URL des ressources JS et CSS ont changé. Lors de la mise à niveau, mettez à jour toutes les références de ressources vers les nouveaux chemins.
Méthodes d'intégration :
Lecture VID + PlayAuth : obtenez un identifiant de lecture depuis le serveur et envoyez-le au client pour la lecture. Cette méthode offre une sécurité élevée. Pour plus d'informations, consultez la section Obtenir un identifiant de lecture.
Lecture basée sur l'URL : transmettez directement l'URL de lecture obtenue au lecteur. Pour plus d'informations, consultez la section Lire une vidéo à l'aide d'une URL de lecture.
Choix entre l'édition standard et l'édition professionnelle : le SDK du lecteur ApsaraVideo est disponible en édition standard et en édition professionnelle. L'édition professionnelle prend également en charge des fonctionnalités avancées telles que le codage H.266, DASH, les sous-titres externes, le préchargement, le pré-rendu et les stratégies ABR avancées, qui ne sont pas incluses dans l'édition standard. Si vous avez uniquement besoin d'un contrôle de lecture de base (tel que la lecture de vidéos à la demande ou en direct, la lecture à vitesse variable et le changement de résolution), l'édition standard suffit. Si vous avez besoin des fonctionnalités avancées mentionnées ci-dessus, nous vous recommandons d'acheter l'édition professionnelle.
ImportantImportant : les versions supérieures du SDK appliquent une validation des paramètres plus stricte. En mode de lecture basé sur l'URL, ne spécifiez pas de paramètres incompatibles tels que
format:m3u8et ne mélangez pas les paramètres VID/PlayAuth. Le SDK ne prend pas en charge la rétrocompatibilité avec toutes les API héritées.Filigrane dynamique : le lecteur Web prend en charge les filigranes dynamiques (marquee/clignotement aléatoire). Configurez-les à l'aide du paramètre
watermark. Cela peut coexister avec les filigranes statiques configurés dans la console.Contrôle du téléchargement : les navigateurs fournissent un bouton de téléchargement intégré qui ne peut pas être supprimé via les paramètres de lien. Pour contrôler les autorisations de téléchargement, intégrez le SDK et utilisez des paramètres pour gérer le comportement de téléchargement.
Lecture automatique sans SDK : lorsque vous n'utilisez pas le SDK ApsaraVideo, implémentez la lecture automatique en définissant à la fois
autoplay:trueetmuted:trueafin de respecter les politiques de lecture automatique des navigateurs.Méthode de lecture MPS : la méthode de lecture MPS (utilisant
accId/accSecret) est toujours prise en charge mais n'est plus maintenue. Nous vous recommandons de migrer vers les méthodes de lecture recommandées.URL Blob : le nouveau lecteur peut afficher des URL blob dans la barre d'adresse. Il s'agit d'un comportement normal MSE (Media Source Extensions) et non d'une erreur.
-
Intégrez un lecteur tiers
Intégrez un lecteur tiers pour lire une vidéo à l'aide d'une URL de lecture.
Après avoir obtenu une URL de lecture, transmettez-la à votre lecteur. Cette méthode est flexible, mais vous oblige à implémenter des fonctionnalités telles que le changement de résolution et la gestion des exceptions.
Sécurité de la lecture (limites de lecture et de téléchargement)
-
Sécurité vidéo
Pour protéger votre contenu vidéo, ApsaraVideo VOD fournit plusieurs fonctionnalités de sécurité. Celles-ci incluent les listes noires et listes blanches, la signature d'URL et le chiffrement vidéo (cryptographie propriétaire Alibaba Cloud et chiffrement HLS). Pour plus d'informations, consultez la section Aperçu de la sécurité vidéo.
-
Sécurité du compte
Pour garantir la sécurité de votre compte, n'utilisez pas la paire AccessKey de votre compte Alibaba Cloud ou d'un utilisateur RAM sur les clients, en particulier les clients web, pour accéder à ApsaraVideo VOD. Pour plus d'informations, consultez la section Aperçu.
Description de la facturation
Si vous configurez un nom de domaine accéléré, vous êtes facturé pour le service CDN lors de la lecture de fichiers audio ou vidéo.
Si vous ne configurez pas de nom de domaine accéléré, vous êtes facturé pour le trafic sortant du stockage lors de la lecture de fichiers audio ou vidéo.
Pour plus d'informations, consultez la section Facturation des services de base.
FAQ
Comment résoudre les problèmes d'échec de lecture vidéo ?
Vérifiez le réseau : confirmez que le client dispose d'une connectivité réseau normale.
Compatibilité du navigateur (Chrome/Edge 141+) : si la lecture m3u8 échoue, scintille ou renvoie l'erreur 4400 sur les nouvelles versions de Chrome ou Edge, mettez à niveau le lecteur Web vers la version 2.37.6 ou ultérieure et vérifiez que la licence est correctement configurée.
Validation des paramètres : en mode de lecture basé sur l'URL, vérifiez que vous n'avez pas défini incorrectement
format:m3u8ou mélangé les paramètres VID et PlayAuth. Le SDK applique une validation stricte des paramètres dans les versions plus récentes.MEDIA_ERR_SRC_NOT_SUPPORTED ou fragLoadError (403) : vérifiez la capacité de lecture native de Safari, la configuration CORS, la liste blanche de protection contre le hotlinking et la période de validité de PlayAuth (100 secondes).
ERR_CONNECTION_TIMED_OUT : vérifiez la connectivité réseau locale, les règles de pare-feu et l'état du CDN.
Vérifiez le statut de la vidéo : appelez l'API Obtenir les URL de lecture audio et vidéo ou vérifiez dans la console si le statut de la vidéo est
Normal.Vérifiez l'URL de lecture ou les identifiants : vérifiez si
auth_keya expiré ou si la signature est valide.Vérifiez le lecteur : confirmez que le lecteur prend en charge le format vidéo. Pour obtenir des informations sur les formats pris en charge par le lecteur ApsaraVideo, consultez la section Fonctionnalités du SDK du lecteur ApsaraVideo.
Saccades ou échec de la lecture lorsqu'un navigateur mobile ouvre directement une URL de lecture copiée : cela se produit lorsque l'URL de lecture ne comporte pas de signature de signature d'URL valide, ou lorsque le nom de domaine a activé la protection contre le hotlinking Referer et bloque la requête. Solution : vérifiez si la signature d'URL est activée pour l'URL de lecture et si elle porte une signature
auth_keyvalide. Vérifiez la configuration de la liste blanche de protection contre le hotlinking Referer pour le nom de domaine. Nous vous recommandons d'utiliser une URL de lecture signée ou d'accéder à la vidéo via le SDK du lecteur au lieu d'exposer directement l'URL de lecture brute.**Désynchronisation audio et vidéo lors de la lecture en avance rapide dans le composant
videod'un mini-programme WeChat** : cela se produit car le composant natifvideodes mini-programmes WeChat ne prend pas entièrement en charge les listes de montage au niveau sous-jacent, ce qui entraîne l'accumulation du décalage audio initial lors de la lecture en avance rapide ou des opérations de recherche. Solution : nous vous recommandons d'utiliser le SDK du lecteur ApsaraVideo pour le web au lieu du composant natifvideo, ou de transcoder la vidéo pour améliorer la compatibilité.Le lecteur Web cesse de fonctionner après une mise à niveau du navigateur Chrome (problème de compatibilité HLS) : nous vous recommandons de mettre à niveau le SDK du lecteur ApsaraVideo pour le web vers la version 2.37.8 ou ultérieure pour résoudre ce problème de compatibilité, et de demander et configurer une licence gratuite si nécessaire (pour savoir comment demander une licence, consultez la description sous « Prérequis »).
Pour plus d'informations sur la résolution d'autres erreurs, consultez la section Résoudre les erreurs de lecture.
Astuce : utilisez la démo officielle pour tester la lecture. Si la démo fonctionne correctement, le problème se situe probablement dans votre code d'intégration.
Comment lire des vidéos chiffrées ?
ApsaraVideo VOD propose plusieurs méthodes de chiffrement, telles que la cryptographie propriétaire Alibaba Cloud et le chiffrement HLS. Pour utiliser le chiffrement, configurez un groupe de modèles de transcodage chiffré pour transcoder la vidéo. Ensuite, utilisez le SDK du lecteur ApsaraVideo pour déchiffrer et lire la vidéo. Pour plus d'informations, consultez la section Chiffrement vidéo.
**Échec de la lecture chiffrée avec l'erreur InvalidParameter, indiquant que le paramètre Rand n'est pas valide**
Si la lecture d'une vidéo chiffrée échoue avec une erreur InvalidParameter indiquant que le paramètre Rand n'est pas valide, vous devez définir le paramètre encryptType correspondant dans la configuration de lecture. Pour plus d'informations, consultez les instructions de chiffrement vidéo dans la section Chiffrement vidéo.
Quelles sont les notes d'utilisation des API courantes du SDK du lecteur ?
Voici les pièges courants et les modèles d'utilisation corrects lors de l'appel des API du SDK du lecteur :
Obtention de la position de lecture sur iOS : utilisez le paramètre
positiondu rappelonCurrentPositionUpdate. Après une recherche, écoutez l'événementAVPEventSeekEndavant de récupérer la position.Valeur de retour de getPlayTime() : renvoie la durée de lecture sous forme d'entier en secondes. Cela reflète le temps de lecture réel (hors pauses et opérations de recherche). Lors de la lecture à vitesse ajustée, la durée est calculée en fonction du temps physique écoulé.
Changement de qualité vidéo avec selectTrack : si
selectTrackéchoue lors du changement de qualité, utilisezsetQuality+setStartTime+preparecomme solution de contournement temporaire.Changement de vidéos avec replayByVidAndPlayAuth : lors du changement de vidéos à l'aide de
replayByVidAndPlayAuth, passez explicitement le paramètreswScriptURL(une URL HTTPS absolue) pour prendre en charge le chiffrement privé sur les anciennes versions d'iOS.Définition de l'heure de début : la définition de l'heure de début de la lecture n'affecte pas les opérations manuelles de la barre de progression par l'utilisateur.
Nettoyage du tampon : le SDK ne prend actuellement pas en charge une API de nettoyage dynamique du tampon pendant la lecture.
Comment obtenir et configurer une licence de lecteur Web ?
Questions fréquemment posées sur la licence du lecteur Web :
Comment faire une demande : demandez une licence gratuitement sur la page Gestion du SDK de la console ApsaraVideo VOD.
Liaison de domaine : la licence est liée au nom de domaine affiché dans la barre d'adresse du navigateur de la page où le lecteur est intégré (les sous-domaines sont pris en charge). Elle n'est pas liée au domaine de stockage vidéo ou d'accélération CDN.
Aucun fichier de certificat nécessaire : la licence est une clé de chaîne obtenue via l'API. Il n'est pas nécessaire de télécharger ou de déployer un fichier de certificat sur votre serveur. Passez simplement les paramètres
domainetlicenseKeylors de l'initialisation du lecteur.-
Débogage local avec HTTPS : si la validation de la licence échoue en raison de problèmes de certificat HTTPS lors des tests locaux, vous pouvez utiliser l'une des méthodes suivantes (pour les tests uniquement) :
Utilisez
mkcertpour générer un certificat auto-signé.Ajoutez l'indicateur
--ignore-certificate-errorslors du lancement de Chrome.Déployez sur un serveur de test HTTPS valide.
SDK 2.34 et versions ultérieures : la configuration de la licence est obligatoire pour que le lecteur fonctionne correctement.
Conformité des données pour les anciennes versions du SDK : les anciennes versions du SDK du lecteur ApsaraVideo pour le web présentent des problèmes de conformité des données. Si vous utilisez le lecteur en dehors de la Chine continentale, vous devez passer à une version nécessitant une licence et lier une licence valide. Pour savoir comment demander et configurer une licence, consultez la section FAQ sur la licence.
Comment gérer les problèmes de style et de composants du lecteur Web ?
Problèmes courants et solutions pour les styles et les composants du lecteur :
Icônes manquantes lors du déploiement local : si des icônes sont manquantes lors du déploiement local, téléchargez le répertoire complet
/skins/default/ou mettez à jour les chemins relatifs dans le CSS pour utiliser les adresses CDN.Erreur de changement de qualité QualityComponent : lors du changement de qualité à l'aide de
QualityComponent, si vous rencontrez une erreurt.getQuality is not a function, ajoutez la fonction de rappelargsà votre configuration et mettez à niveaualiplayercomponentsvers la version 1.1.2 ou ultérieure.Image de couverture chevauchant la barre de progression (mode VID + PlayAuth) : lorsque l'image de couverture chevauche la barre de progression en mode VID + PlayAuth, masquez-la à l'aide de CSS (
.prism-cover) ou activezautoplay+mutedpour contourner le problème.Compatibilité HLS du navigateur WeChat : pour les problèmes de lecture HLS dans le navigateur intégré de WeChat, configurez
useHlsNative: falsepour forcer la solution de lecture fMP4.
Comment spécifier une version lors de l'installation du SDK du lecteur via npm ?
Pour installer une version spécifique du SDK du lecteur, utilisez la commande suivante :
npm install aliyun-aliplayer@<version> --save
Par exemple, pour installer la version 2.27.1 :
npm install aliyun-aliplayer@2.27.1 --save