Cette chronique partagera une série d'articles techniques sur Alibaba Cloud Video Cloud MediaBox, fournira une analyse approfondie de l'architecture technique, des performances techniques, de l'efficacité énergétique du développement et des meilleures pratiques de l'outil de développement audio et vidéo, et lancera l'audio et la vidéo. parcours de développement ensemble. Cet article porte sur l'architecture technique de MediaBox. Il se concentre sur l'architecture technique, la conception optimisée et les avantages architecturaux du SDK du terminal audio et vidéo pour présenter comment les SDK MediaBox peuvent réaliser des mises à niveau de l'architecture technique.
Bon professeur|Auteur
À l'ère du streaming multimédia, de plus en plus d'entreprises investissent dans la recherche et le développement de courtes vidéos, de diffusions en direct, d'appels audio et vidéo et d'autres activités connexes. En particulier, le terminal mobile, en tant que principale entrée du trafic des utilisateurs, est devenu de plus en plus concurrence féroce pour les médias en streaming.
Sous cette vague, de nombreux fabricants d'applications se sont précipités sur la piste audio et vidéo et ont souvent accès à plusieurs activités audio et vidéo, ce qui peut impliquer plusieurs services audio et vidéo tels que la diffusion en direct, les lecteurs et les appels audio et vidéo.
Dans le passé, lorsque les fabricants accédaient à plusieurs services audio et vidéo, ils devaient généralement accéder à plusieurs SDK audio et vidéo. Le résultat était que la taille du package augmentait rapidement et que l'efficacité de l'accès était faible, ce qui rendait impossible une mise en ligne rapide, ce qui entraînait en compétition, j'ai raté l'occasion.
Le SDK du terminal audio et vidéo MediaBox est né pour résoudre ce problème des entreprises.
01 Description des concepts
Les SDK des terminaux audio et vidéo MediaBox (MediaBox SDK) utilisent une base technique unifiée pour former une série de SDK avec différentes capacités afin de fournir aux clients une expérience d'accès flexible, facile à utiliser et efficace. Le SDK pour terminaux audio et vidéo, les kits AUI de développement audio et vidéo low-code et les solutions de scénarios audio et vidéo construites sur la base de la coopération écologique de l'industrie, forment ensemble l'image globale de la suite intégrée de terminaux audio et vidéo MediaBox.
D'un point de vue commercial, les SDK MediaBox sont un ensemble de fonctionnalités de base du terminal d'Alibaba Cloud Video Cloud, notamment le lecteur, la diffusion en direct, la diffusion en direct à latence ultra faible, la communication audio et vidéo en temps réel, la création de courtes vidéos et d'autres services audio et vidéo. capacités.
En termes de capacités techniques, le SDK du terminal audio et vidéo offre diverses capacités techniques telles que la collecte audio et vidéo, le prétraitement, l'encodage audio et vidéo, l'encapsulation/désencapsulation, la transmission réseau multimédia, le décodage audio et vidéo, le post-traitement. , et le rendu audio et vidéo.
02 Architecture technique
Afin de créer un SDK avec des performances élevées, une haute disponibilité, une grande flexibilité, une connectabilité et une évolutivité facile, nous divisons le moteur multimédia du SDK en trois parties : le micro-noyau, le composant multimédia et le composant de capacité de base du terminal.
Micronoyau : En tant que noyau et centre de contrôle du SDK métier, il est responsable de la connexion et de la gestion de divers composants multimédias pour former un pipeline commercial, qui comprend principalement un centre de messagerie, un centre de répartition, une gestion des liens, une gestion des files d'attente, une gestion des composants, un plug-in. en centre de gestion et de surveillance.
Composant multimédia : unité de capacité de base du traitement multimédia audio et vidéo, comprenant la collecte audio et vidéo, le pré- et post-traitement, l'encodage et le décodage audio et vidéo, l'encapsulation et la décapsulation de fichiers, la sortie réseau multimédia et le rendu multimédia.
Capacités de base côté extrémité : haute disponibilité côté extrémité prenant en charge les capacités de base, fournissant plusieurs fonctionnalités côté extrémité telles que les licences, la livraison de configuration, la gestion des exceptions et les points cachés.
03 Optimiser la conception
Habituellement, les SDK audio et vidéo n'ont pas de noyau et de composants unifiés. Chaque SDK est un développement commercial indépendant et il n'y a pas de réutilisation fonctionnelle. Cela rend impossible l'optimisation itérative unifiée des composants. Au lieu de cela, différents SDK doivent être optimisés individuellement pour les performances, l'optimisation des fonctions ou l'adaptation de la compatibilité, ce qui entraîne l'incapacité de s'appliquer rapidement à l'entreprise.
À cet égard, Alibaba Cloud Video Cloud MediaBox a optimisé la conception du noyau et des composants du SDK du terminal pour obtenir des mises à niveau d'architecture hautes performances, haute stabilité et haute disponibilité :
• Conception d'un micro-noyau, reconstruisant toutes les entreprises sur la base d'un micro-noyau unifié ;
• Intégrer tous les composants du SDK, extraire et précipiter les composants multimédias de manière unifiée et garantir que tous les composants ont des capacités cohérentes, un comportement cohérent et des performances stables ;
• Unifiez toutes les fonctionnalités de base côté terminal, autorisez les services SDK de manière unifiée, augmentez les capacités de dépannage et d'avertissement d'anomalie côté terminal et garantissez une haute disponibilité.
1. Conception du micronoyau
Après avoir examiné de manière approfondie la conception originale de la couche moteur de chaque SDK, nous avons conçu un ensemble de micro-noyaux pouvant être utilisés pour tous les SDK audio et vidéo basés sur le modèle commercial d'origine.
Afin d'obtenir des performances et une stabilité élevées, et de garantir que le noyau est simple et facile à utiliser sans causer de dommages à l'entreprise, la conception du micro-noyau que nous adoptons se compose des éléments suivants :
• Centre de messages : responsable de la distribution des messages entre les différents composants métiers ;
• Centre de planification : responsable de la planification des threads des tâches en cours d'exécution de chaque composant métier ;
• Gestion des liens : Responsable de la gestion des relations de liens entre les différents composants métiers du moteur média ;
• Gestion de file d'attente : gestion de la file d'attente des messages, en coopération avec le centre de répartition pour gérer la file d'attente des tâches en cours ;
• Gestion des composants : Responsable de la gestion de tous les composants de l'entreprise, responsable de l'enregistrement et de la désinscription des composants ;
• Surveillance et gestion : Surveiller le traitement des données des composants et détecter les anomalies dans le traitement des messages ou dans le traitement des données en temps opportun ;
• Gestion des plug-ins : la conception des plug-ins est pré-intégrée, ce qui facilite la personnalisation des plug-ins et l'extension des capacités.
2. Extraction et réutilisation des composants
Nous effectuons une gestion basée sur les composants des composants multimédias utilisés dans le SDK du terminal vidéo cloud, et mettons en œuvre une extraction, une réutilisation, ainsi qu'une optimisation et une itération unifiées. La répartition des composants dans chaque SDK audio et vidéo est la suivante :
Prenons comme exemple le pipeline commercial dans des scénarios de diffusion en direct et de courts scénarios de tournage vidéo pour montrer l'effet de série de chaque composant :
Pipeline commercial dans le scénario de diffusion en direct
Business Pipeline dans de courts scénarios de tournage vidéo
3. Développement et conception de composants
Au cours du processus de développement d'applications, les étudiants en R&D divisent souvent une bibliothèque aux fonctions complexes en plusieurs petits composants avec des fonctions et des responsabilités uniques, et gèrent les composants via Maven (Android) ou Cocoapod (iOS). Ensuite, Gradle et Xcode trieront automatiquement les dépendances entre les composants, afin que les étudiants en commerce n'aient pas besoin de se soucier de chaque composant, mais uniquement de l'entreprise elle-même.
Cependant, le produit cible du SDK du terminal vidéo cloud est le SDK, et non l'application. Par conséquent, lorsque nous sommes confrontés à un terminal multiplateforme tel qu'un SDK, nous devons gérer du code multiplateforme. Le code du composant fonctionnel est distribué comme suit : code C++ (code principal), code objet-c (iOS), code Java (Android ) et WebAssembly. Jusqu’à présent, il n’existe aucun bon outil capable de gérer du code mixte et de répondre aux besoins de développement de plusieurs plates-formes.
À cette fin, nous avons fait référence à des solutions de gestion de packages telles que CPM, Java Maven, Cocoapod et Npm, et personnalisé une solution de gestion de composants et de dépendances multiplateforme pour le SDK du terminal MediaBox. Grâce au débogage, à la compilation efficace et à l'avertissement de conflit de dépendances, nous De telles capacités permettent de réutiliser les composants à grande échelle et de réaliser une itération de version unifiée.
* Pour implémenter la même gestion de l'utilisation basée sur les composants pour les composants sur différentes plates-formes, il y aura un article spécial présentant les composants ACPM à l'avenir, alors restez à l'écoute.
4. Renforcement unifié des capacités de base
En plus de l'unification de la partie traitement multimédia, les capacités de base ont également été intégrées et unifiées. Par exemple, la gestion des licences. Dans le passé, chaque SDK avait sa propre gestion des licences. Lorsque les clients l'utilisaient, ils devaient activer l'autorisation à différents endroits. Mais après avoir ajouté l'autorisation unifiée, les clients n'ont plus qu'à demander une autorisation via la console unifiée. et téléchargez le type correspondant. Le SDK du terminal audio et vidéo MediaBox suffit.
1) Autorisation unifiée
2) Capture de crash unifiée
Grâce à la capacité de capture de crash, nous pouvons capturer les exceptions de notre SDK (celles non capturées par notre SDK ne seront pas capturées), puis les analyser et les réparer dès que possible pour créer un SDK hautement stable.
En outre, nous avons également ajouté des capacités d'avertissement d'anomalie en ligne, de livraison de configuration et d'enfouissement pour dépanner et s'adapter aux anomalies soudaines des clients ou aux problèmes de compatibilité en ligne.
04 Avantages architecturaux
Après avoir optimisé la conception de l'architecture SDK du terminal audio et vidéo, nous avons implémenté un noyau MediaBox, plusieurs moteurs commerciaux, des composants multimédias unifiés et une construction complète des capacités de base côté terminal. Les principaux résultats sont les suivants :
• Taux de réutilisation élevé . Tous les composants multimédias côté appareil sont réutilisés, le taux de réutilisation du code atteint 80 % et la taille globale du package SDK est réduite de 60 % ;
• Haute fiabilité . Après plusieurs versions d'itérations, la stabilité en ligne du SDK MediaBox a été améliorée et les plantages du SDK sont tombés à un sur 100 000 ;
• Grande flexibilité . MediaBox SDK peut répondre aux diverses capacités de combinaison d'entreprises des clients, telles que la combinaison de diffusion en direct et de lecteur, la combinaison de diffusion en direct et d'audio et de vidéo en temps réel, pour répondre de manière plus flexible aux besoins des clients ;
• Hautes performances . Grâce à un micro-noyau unifié et à une surveillance unifiée des indicateurs de performances, l'utilisation de la mémoire et du processeur a été réduite.
Sur la base de cette architecture technique, MediaBox combine divers SDK dispersés dans un package unifié complet et forme finalement la famille de produits MediaBox SDK pour le cloud vidéo.
Pour en savoir plus sur les informations sur le produit SDK du terminal audio et vidéo, bienvenue sur le site officiel pour découvrir : Terminal audio et vidéo SDK_Intelligent Media Service IMS_Video Service_Alibaba Cloud
Lei Jun a annoncé l'architecture complète du système d'exploitation ThePaper de Xiaomi, affirmant que la couche inférieure avait été complètement restructurée. Yuque a annoncé la cause de la panne et du processus de réparation le 23 octobre. Nadella, PDG de Microsoft : Abandonner Windows Phone et l'activité mobile était une mauvaise décision . Les taux d'utilisation de Java 11 et Java 17 ont dépassé Java 8. Hugging Face n'a pas pu accéder à Yuque. La panne de réseau a duré environ 10 heures et est maintenant revenue à la normale. La National Data Administration a officiellement dévoilé Oracle. Lancement de l'extension de développement Java pour Visual Studio Code Musk : faites un don d'un milliard si Wikipédia est renommé "Encyclopédie Weiji" USDMySQL 8.2.0 GA