BMF (Babit Multimedia Framework) est un cadre de traitement multimédia personnalisable multiplateforme, multi-langues développé par ByTedance . Avec plus de 4 ans de tests et d'améliorations, BMF a été conçu pour relever les défis habilement dans nos environnements de production du monde réel. Il est actuellement largement utilisé dans le streaming vidéo, le transcodage en direct, le montage en direct de ByTedance, les scénarios pré / post-traitement mobiles. Plus de 2 milliards de vidéos sont traitées par le cadre chaque jour.
Voici quelques fonctionnalités clés de BMF:
Prise en charge multiplateforme: compatibilité native avec Linux, Windows et Mac OS, ainsi qu'une optimisation pour les processeurs x86 et ARM.
Facile à utiliser: BMF fournit des API Python, GO et C ++, permettant aux développeurs la flexibilité de coder dans leurs langues préférées.
Personnalisation: les développeurs peuvent améliorer les fonctionnalités du cadre en ajoutant leurs propres modules indépendamment en raison de l'architecture découplée BMF.
Haute performance: BMF possède un planificateur puissant et une forte prise en charge du matériel d'accélération hétérogène. De plus, NVIDIA a coopéré avec nous pour développer un pipeline GPU hautement optimisé pour le transcodage vidéo et l'inférence de l'IA.
Conversion efficace des données: BMF propose des conversions de format de données transparentes dans les cadres populaires (FFMPEG / NUmpy / Pytorch / OpenCV / Tensorrt), la conversion entre les périphériques matériels (CPU / GPU) et la conversion du format de coloriage et du format de pixel.
BMFLITE est un cadre multimédia multimédia côté client, léger et plus efficace. Jusqu'à présent, l'algorithme côté client BMFLITE est utilisé dans des applications telles que Douyin / Xigua, servant plus d'un milliard d'utilisateurs dans les jeux en direct / jeu vidéo / Cloud Games et autres scénarios, et traitement des vidéos et des images des trimelles de .
Plongez plus profondément dans les capacités de BMF sur notre site Web pour plus de détails.
Dans cette section, nous présenterons directement les capacités du cadre BMF autour de six dimensions: transcode , modifier , rencontrer / diffuseur , accélération GPU , inférence IA et cadre côté client . Pour toutes les démos fournies ci-dessous, les implémentations et la documentation correspondantes sont disponibles sur Google Colab, vous permettant de les expérimenter intuitivement.
Cette démo décrit étape par étape comment utiliser BMF pour développer un programme de transcodage, y compris le transcodage vidéo, le transcodage audio et le transcodage d'image. Dans ce document, vous pouvez vous familiariser avec la façon d'utiliser BMF et comment utiliser des options compatibles FFMPEG pour atteindre les capacités dont vous avez besoin.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
La démonstration d'édition vous montrera comment implémenter un pipeline audio et d'édition vidéo à haute complexité via le framework BMF. Nous avons implémenté deux modules Python, Video_Concat et Video_overlay, et combiné diverses capacités atomiques pour construire un graphique BMF complexe.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
Cette démo utilise le framework BMF pour construire un service de diffusion simple. Le service fournit une API qui permet un tir de source vidéo dynamique, un contrôle de mise en page vidéo, un mixage audio et, finalement, diffuser la sortie sur un serveur RTMP. Cette démo présente la modularité du BMF, le développement multi-langues et la capacité d'ajuster dynamiquement le pipeline.
Vous trouverez ci-dessous un enregistrement d'écran démontrant le fonctionnement du diffuseur:

La démo d'accélération d'extraction du cadre vidéo montre:
BMF Capacité flexible de:
Accélération du matériel Activation rapidement et prise en charge du pipeline CPU / GPU
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
La démo du module de transcodage et de filtre GPU montre:
La démo construit un pipeline de transcodage qui fonctionne complètement sur GPU:
décoder-> échelle-> flip-> rotation-> crop-> blur-> encoder
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
Le prototype de la façon de construire un prétraitement vidéo pour les données de formation LLM à ByTedance, qui dessert des milliards de traitements de clip chaque jour.
La vidéo d'entrée sera divisée en fonction du changement de scène, et les sous-titres de la vidéo seront détectés et recadrés par le module OCR, et la qualité vidéo sera évaluée par le module esthétique fourni par BMF. Après cela, les clips vidéo finalisés seront codés sous forme de sortie.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
Cette démo montre comment intégrer les algorithmes de pointe de l'IA dans le pipeline de traitement vidéo BMF. Le célèbre algorithme de colorisation open source est enveloppé comme un module BMF Pyhton en moins de 100 lignes de codes. L'effet final est illustré ci-dessous, avec la vidéo originale du côté gauche et la vidéo colorée à droite.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer

Cette démo implémente le processus d'inférence de super-résolution de l'esrgan réel en tant que module BMF, présentant un pipeline BMF qui combine le décodage, l'inférence de super-résolution et le codage.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
Cette démo montre comment invoquer notre modèle d'évaluation esthétique à l'aide de BMF. Notre modèle d'apprentissage en profondeur Aesmode a atteint une précision de classification binaire de 83,8% sur un ensemble de données AVA, atteignant le niveau de SOTA académique, et peut être directement utilisé pour évaluer le degré esthétique des vidéos au moyen du traitement d'extraction du cadre.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
Cette démo montre un pipeline de détection de visage complet basé sur l'accélération Tensorrt, qui utilise en interne le modèle ONNX accéléré par Tensorrt pour traiter la vidéo d'entrée. Il utilise l'algorithme NMS pour filtrer les boîtes candidates répétées pour former une sortie, qui peut être utilisée pour traiter efficacement une tâche de détection de visage.
Si vous voulez passer une expérience rapide, vous pouvez l'essayer
Ce cas illustre les procédures d'intégration d'un module d'algorithme externe dans le cadre BMFlite et la gestion de son exécution.

Cet exemple implémente l'algorithme Denoise en tant que module BMF, présentant un pipeline BMF qui combine la capture vidéo, la réduction du bruit et le rendu.

À propos de BMF
Expérience rapide
Commencer
Mode de synchronisation avec 3 langues. Vous pouvez l'essayer sur:
Python: C ++: Go:
Plusieurs fonctionnalités (avec des exemples)
Apis
Licence
Contributif
Le projet a une licence Apache 2.0. Les composants et les dépendances tiers restent sous leurs propres licences.
Les contributions sont les bienvenues. Veuillez suivre les directives.
Nous utilisons les problèmes GitHub pour suivre et résoudre les problèmes. Si vous avez des questions, n'hésitez pas à participer à la discussion et à travailler avec nous pour trouver une solution.
L'outil de décodeur, d'encodeur et de filtre FFMPEG CMDLINE. Ils sont enveloppés en tant que modules intégrés de BMF sous la licence LGPL.
Le projet s'inspire également d'autres frameworks populaires, tels que FFMPEG-Python et Medioppe. Notre site Web utilise le projet de DocSy basé sur Hugo.
Ici, nous aimerions exprimer nos plus sincères grâce aux développeurs des projets ci-dessus!