Six éléments à prendre en compte lors de l'utilisation de Video Indexer à grande échelle

Publié le 27 janvier, 2020

Program Manager, Azure Media Services, Video Indexer

Vos archives de vidéos à indexer, déjà volumineuses, continuent de grossir. Après avoir évalué Microsoft Video Indexer, vous avez donc décidé de procéder à une mise à l'échelle.

La mise à l'échelle ne présente généralement aucune difficulté particulière, mais la première fois, vous ne saurez peut-être pas comment vous y prendre. Vous vous poserez peut-être les questions suivantes : « Y a-t-il des contraintes technologiques ? », « Existe-t-il une méthode particulièrement intelligente et efficace ? » et « Comment éviter de dépenser trop d'argent ? ». Voici donc six bonnes pratiques à prendre en compte pour utiliser Video Indexer à grande échelle.

 

1. Pour le chargement des vidéos, préférez l'utilisation d'une URL à l'envoi du fichier sous forme de tableau d'octets

Video Indexer vous permet de charger des vidéos de deux façons : à partir d'une URL ou en envoyant directement le fichier sous forme de tableau d'octets. Sachez toutefois que cette deuxième méthode comporte certaines contraintes.

Premièrement, des limitations s'appliquent à la taille du fichier. La taille du tableau d'octets est limitée à 2 Go contre une limite de chargement de 30 Go lors de l'utilisation d'une URL.

Deuxièmement, et il s'agit du point le plus important pour votre mise à l'échelle, l'envoi de fichiers en plusieurs parties est soumis à une forte dépendance vis-à-vis de votre réseau. La fiabilité du service, la connectivité, la vitesse de chargement et les pertes de paquets sur le web ne sont que quelques-uns des problèmes qui peuvent affecter vos performances et donc votre capacité de mise à l'échelle.

Illustration du chargement d'une vidéo par le biais d'une URL comparé aux problèmes de réseau potentiellement rencontrés avec l'utilisation du chargement direct

Lorsque vous chargez des vidéos à l'aide d'une URL, il vous suffit de nous fournir le chemin d'accès au fichier multimédia et nous nous occupons du reste (voir ci-dessous le champ de l'API upload-video).

Pour charger des vidéos à l'aide d'une URL via l'API, consultez cet exemple de code court ou utilisez AzCopy afin de bénéficier d'un moyen rapide et fiable de transférer votre contenu vers un compte de stockage à partir duquel vous pourrez l'envoyer à Video Indexer via une URL SAS.

Champ d'adresse URL dans l'API uploadVideo

2. Si nécessaire, augmentez le nombre d'unités réservées Multimédia

En général, au stade de la preuve de concept, lorsque vous commencez à utiliser Video Indexer, vous n'avez pas besoin de beaucoup de puissance de calcul. Vous pouvez procéder à une montée en puissance de l'utilisation de Video Indexer lorsque vos archives de vidéos à indexer sont volumineuses et que vous souhaitez bénéficier d'un processus adapté à votre cas d'usage en termes de rythme. L'augmentation du nombre de ressources de calcul utilisées est donc à envisager lorsque la puissance de calcul disponible est insuffisante.

Dans Azure Media Services, lorsqu'on parle de puissance de calcul et de parallélisation, on s'exprime en unités réservées Multimédia (RU). Il s'agit d'unités de calcul qui déterminent les paramètres de vos tâches de traitement multimédias. Le nombre de RU détermine le nombre de tâches multimédias qui peuvent être traitées simultanément sur chaque compte tandis que leur type détermine la vitesse de traitement. Une vidéo peut nécessiter plusieurs RU si son indexation est complexe. Lorsque vos RU sont occupées, les nouvelles tâches sont mises en file d'attente jusqu'à ce qu'une autre ressource soit disponible.

Votre objectif est évidemment de travailler le plus efficacement possible en utilisant pleinement les ressources dont vous disposez. C'est la raison pour laquelle nous proposons un système de mise à l'échelle automatique qui réduit le nombre de RU lors des périodes creuses et l'augmente aux heures de pointe (jusqu'à utiliser pleinement toutes vos RU). Vous pouvez facilement profiter de cette fonctionnalité en activant la mise à l'échelle automatique dans les paramètres du compte ou en utilisant l'API Update-Paid-Account-Azure-Media-Services.

Bouton de mise à l'échelle automatique dans les paramètres du compteExemple d'API permettant de mettre à jour le compte payant sur AMS avec autoScale = truePour réduire au maximum la durée d'indexation et le faible débit, nous vous recommandons de commencer avec 10 RU de type S3. Plus tard, si vous montez en puissance pour prendre en charge davantage de contenu ou une concurrence plus élevée et que vous avez besoin de plus de ressources, vous pourrez nous contacter via le système de support (sur les comptes payants uniquement) pour demander l'attribution de RU supplémentaires.

3. Respectez le nombre limite de demandes

Video Indexer est conçu pour gérer l'indexation à grande échelle. Pour en tirer le meilleur parti, vous devez donc être conscient des capacités du système et concevoir votre intégration en conséquence. Il peut arriver qu'après une demande de chargement portant sur un lot de vidéos, vous découvriez que certains films n'ont pas été chargés et que vous receviez un code de réponse HTTP 429 (trop de demandes). Pourquoi ? Parce que vous avez envoyé un nombre de demandes supérieur à la limite de films par minute prise en charge. Mais ne vous inquiétez pas, dans la réponse HTTP, nous ajoutons un en-tête Retry-after (Réessayer après) qui spécifie quand vous pouvez effectuer une nouvelle tentative. Veillez à respecter ce délai avant d'effectuer une nouvelle demande.

Documentation de la réponse HTTP 429 reçue par l'utilisateur

4. Utilisez une URL de rappel

Vous est-il déjà arrivé d'appeler le service client et d'entendre : « Votre demande est en cours de traitement. Cela peut prendre quelques minutes. Laissez-nous votre numéro de téléphone et nous vous rappellerons dès qu'elle aura été traitée. » ? Le cas de figure dans lequel vous laissez votre numéro et êtes rappelé à la seconde où votre demande a été traitée repose sur le même concept que l'utilisation d'une URL de rappel.

Par conséquent, au lieu d'interroger constamment l'état de votre demande de chargement après l'envoi de celle-ci, il vous suffit d'ajouter une URL de rappel et d'attendre que nous puissions nous occuper de vous. Dès que votre demande de chargement changera d'état, nous enverrons une notification POST à ​​l'URL que vous avez envoyée.

Vous pouvez ajouter une URL de rappel dans les paramètres de l'API upload-video (voir ci-dessous la description de l'API). Pour plus d'informations, consultez les exemples de code de notre Dépôt Git. Pour l'URL de rappel, vous pouvez également utiliser Azure Functions, une plateforme serverless orientée événements qui peut être déclenchée par HTTP et implémenter un flux de suivi.

Champ d'adresse de l'URL de rappel dans l'API uploadVideo

5. Utilisez les paramètres d'indexation qui vous conviennent

La première chose à faire lorsque vous utilisez Video Indexer, et plus particulièrement lorsque vous essayez d'effectuer une mise à l'échelle, est probablement de réfléchir au moyen d'en tirer le meilleur parti en définissant les paramètres adaptés à vos besoins. Pensez à votre cas d'usage. Certains paramètres peuvent vous faire économiser de l'argent et accélérer le processus d'indexation de vos vidéos.

Vous avez la possibilité de personnaliser votre utilisation de Video Indexer en choisissant ces paramètres d'indexation. Ne définissez pas la présélection de la diffusion en continu si vous ne prévoyez pas de la regarder, et n'indexez pas les insights vidéo si vous n'avez besoin que d'insights audio. C'est aussi simple que cela.

Avant de charger et d'indexer votre vidéo, lisez cette brève documentation, et consultez les sections indexingPreset et streamingPreset pour vous faire une meilleure idée des options qui s'offrent à vous.

6. Indexez en résolution optimale, et non en résolution maximale

Il n'y a pas si longtemps, les vidéos HD n'existaient pas. Aujourd'hui, nous disposons de vidéos de différentes qualités, de la HD à la 8K. La question est de savoir de quelle qualité vidéo vous avez besoin pour indexer vos vidéos. Plus la qualité du film que vous chargez est élevée, plus la taille du fichier est importante, ce qui entraîne une augmentation de la puissance de calcul et du temps nécessaires au chargement de la vidéo.

Notre expérience montre que, souvent, les différences en termes de performances d'indexation sont quasiment inexistantes entre les vidéos HD (720P) et les vidéos 4K. En fin de compte, vous obtiendrez quasiment les mêmes insights avec le même degré de confiance.

Par exemple, pour la fonctionnalité de détection des visages, une résolution élevée peut être utile en présence de nombreux visages de petite taille mais importants du point de vue contextuel. Cependant, cela s'accompagnera d'une augmentation quadratique du temps d'exécution et d'un risque accru de faux positifs.

Par conséquent, nous vous recommandons de vérifier que les résultats obtenus pour votre cas d'usage sont bons et de commencer par tester celui-ci localement. Chargez la même vidéo en 720P et en 4K, puis comparez les insights obtenus. Comme dit le proverbe anglais : « On n'utilise pas un canon pour tuer une mouche ».

Avez-vous des questions ou des commentaires ? Nous sommes à votre écoute. Utilisez notre page UserVoice pour nous aider à hiérarchiser les fonctionnalités, laissez un commentaire ci-dessous ou envoyez un message à VISupport@Microsoft.com pour toute question.

Faites-nous part de votre cas d'usage pour nous permettre de vous aider lors de votre mise à l'échelle.