Moteur Volcano open source cadre de traitement multimédia général BMF

Source de l'article|Communauté open source BMF

GitHub|github.com/BabitMF/bmf

Contexte open source

Avec le développement rapide des courtes vidéos en direct et de la 5G, de plus en plus de données sont enregistrées et diffusées sous forme de vidéos. Cela rend particulièrement importantes la recherche et l'application des technologies de traitement vidéo, qui sont des outils universels, des SDK et des solutions pour la mise en œuvre de diverses applications vidéo.

À l'ère de la vidéo, le développement multimédia est confronté à divers défis, notamment :

  • Scénarios complexes : liens de traitement complexes, interdépendance entre algorithmes et projets, et scénarios métiers diversifiés.
  • Extension et collaboration : Pour certains développeurs d'algorithmes, des langages de haut niveau comme Python sont souvent utilisés, tandis que certaines solutions de traitement multimédia ne fournissent que des interfaces C/C++. De plus, dans certains cas, afin de mieux réaliser la réutilisation des capacités, on constate souvent que le langage de développement utilisé pour les capacités matures n'est pas le même que celui du projet en cours de développement. Comment réutiliser et intégrer les capacités rapidement et efficacement est une tâche importante. L’ingénierie présente des défis importants.
  • Normes et compatibilité : les utilisateurs de développement multimédia sont souvent confrontés à des besoins de traitement différents. Certaines capacités de transcodage et de filtrage classiques et couramment utilisées sont utilisées très fréquemment. Afin de répondre aux normes de l'industrie, ils doivent investir beaucoup d'efforts dans le développement pour répondre à leurs propres besoins et. atteindre la conformité de l'industrie. Les détails du transcodage et du traitement des filtres standard ; il existe également des situations de développement complexes qui nécessitent une interopérabilité entre les différentes données courantes. Les développeurs doivent souvent investir beaucoup d'énergie dans l'apprentissage de l'interface avec diverses normes et SDK.
  • Calcul hétérogène : pour le traitement vidéo massif, les calculs reposant uniquement sur des processeurs multicœurs ne peuvent parfois pas répondre aux exigences de performances et de coûts. Cela nécessite une accélération matérielle en combinaison avec des coprocesseurs tels que les GPU et les DSP. Comment connecter des capacités hétérogènes de manière pratique et efficace, y compris une transmission et une conversion de données simples et faciles à utiliser dans les liens de traitement des utilisateurs et une planification asynchrone hautes performances, constitue un défi dans la nouvelle ère.

Afin de résoudre plusieurs des défis mentionnés ci-dessus, Volcano Engine a développé le cadre de traitement multimédia universel BMF (Babit Multimedia Framework ) , qui peut fournir des interfaces multilingues simples et faciles à utiliser, une planification et une évolutivité flexibles, ainsi qu'une expansion dynamique dans de manière modulaire. Gérez et réutilisez les capacités atomiques du traitement vidéo, créez des liens de traitement multimédia hautes performances sous forme de Graph/Pipeline ou mettez en œuvre une intégration technique en appelant directement des capacités de traitement individuelles, aidant ainsi les utilisateurs multimédia à mettre en œuvre des projets dans l'environnement de production. de manière pratique et efficace. Sous la forme d'open source, l' équipe BMF espère qu'en aidant les utilisateurs à résoudre les problèmes de l'industrie , elle pourra attirer davantage d'attention et de commentaires de la part des utilisateurs et des communautés, et améliorer continuellement l'influence technique de l'entreprise.

Qu'est-ce que le BMF

BMF (Babit Multimedia Framework, framework de traitement multimédia huit bits) est un framework de traitement multimédia universel auto-développé par Volcano Engine . Il peut fournir des interfaces multilingues simples et faciles à utiliser, une planification et une évolutivité flexibles, et peut être dynamique. étendu de manière modulaire. Gérez et réutilisez les capacités atomiques du traitement vidéo et créez des liens de traitement multimédia hautes performances sous la forme de Graph pour aider les utilisateurs multimédia à mettre en œuvre rapidement et efficacement des projets dans l'environnement de production. La structure globale de l’écosystème de BMF est illustrée dans la figure.

Caractéristiques du cadre BMF

  • Interface multilingue simple : BMF fournit une interface multilingue pour faciliter aux utilisateurs l'intégration du développement dans différentes langues en fonction des besoins du projet, maximisant la compatibilité et la réutilisation de l'ensemble du framework.
  • Module multilingue faiblement couplé  : le module fournit des capacités atomiques pour le traitement vidéo. Les utilisateurs peuvent choisir Python, C++ ou Go pour se concentrer sur le développement de modules ; il existe un couplage lâche entre les modules et les frameworks, et entre les modules, dissociant ainsi les algorithmes de l'ingénierie. , découplant les modules de traitement développés dans différents langages des langages de développement utilisés dans les applications de couche supérieure, améliorant considérablement les capacités d'expansion et les capacités de collaboration diversifiées.
  • Moteur de planification puissant : BMF fournit un planificateur parallèle configurable, plusieurs modes d'utilisation et des fonctionnalités avancées d'ajustement dynamique de Graph pour réaliser un mécanisme de planification hautes performances responsable du fonctionnement de DAG/Graph/Pipeline et aider les utilisateurs grâce à diverses solutions permettant de réduire les coûts de développement. exigences fonctionnelles et de performances dans des scénarios complexes.
  • Entièrement compatible avec les fonctions et les normes FFmpeg : BMF est entièrement compatible avec les capacités et indicateurs de traitement de FFmpeg, tels que les capacités de décapsulation, de décodage, de filtrage, d'encodage et d'encapsulation. La configuration de ces capacités de traitement et la possibilité d'obtenir des pts, la durée, le débit, fps, etc. avec FFmpeg Les résultats avec des indicateurs cohérents répondent bien au besoin d'intégrer rapidement les capacités de FFmpeg dans les projets.
  • Capacités de conversion de données entre plusieurs frameworks et appareils hétérogènes  : prend en charge la conversion sans copie entre plusieurs formats de données courants et est hautement compatible avec les connexions de données entre différents modules. Par exemple, il est nécessaire d'utiliser les capacités d'encodage, de décodage et de filtrage de ffmpeg, le traitement de transformation d'OpenCV et des situations plus complexes où Pytorch doit être utilisé pour une analyse intelligente en même temps, il prend en charge le transfert de données hétérogène entre appareils, le format de pixel ; des capacités de conversion et des capacités de planification asynchrone, aidant ainsi les utilisateurs à résoudre rapidement les problèmes d'optimisation accélérés dans l'environnement de production.

Scénarios d'application

La société a mis en œuvre des services de transcodage vidéo, d'amélioration, de traitement intelligent, d'extraction et de révision d'images , des découpes de portraits vidéo en direct améliorées et la mise en œuvre d'algorithmes sur les terminaux mobiles à hauteur de 100 millions par jour au sein de l'entreprise , aidant ainsi l'entreprise à réduire le développement, l'informatique. et les coûts de bande passante, améliorant ainsi l'efficacité de la collaboration et du développement de l'ingénierie et des algorithmes.

comment utiliser

Adresse open source :

https://github.com/BabitMF/bmf

Plan de suivi

BMF est désormais open source. Le projet est toujours en cours d'itération. À l'avenir, des efforts seront déployés dans la construction écologique hétérogène, la construction de capacités plus atomiques et le support des terminaux mobiles pour améliorer l'écologie du développement multimédia et renforcer la coopération industrielle. essayez de participer au développement de la communauté et de promouvoir la normalisation de la technologie.

Merci et communication

Tout le monde est invité à effectuer des communications de suivi et à formuler des commentaires via GitHub, et vous êtes également invité à visiter le site Web de BMF .

Un camarade de poulet "open source" deepin-IDE et a finalement réalisé l'amorçage ! Bon gars, Tencent a vraiment transformé Switch en une « machine d'apprentissage pensante » Examen des échecs de Tencent Cloud le 8 avril et explication de la situation Reconstruction du démarrage du bureau à distance RustDesk Client Web La base de données de terminal open source de WeChat basée sur SQLite WCDB a inauguré une mise à niveau majeure Liste d'avril TIOBE : PHP est tombé à un plus bas historique, Fabrice Bellard, le père de FFmpeg, a sorti l'outil de compression audio TSAC , Google a sorti un gros modèle de code, CodeGemma , est-ce que ça va vous tuer ? C'est tellement bon qu'il est open source - outil d'édition d'images et d'affiches open source
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/6210722/blog/10105899
conseillé
Classement