BMF (marco multimedia BABIT) es un marco de procesamiento multimedia personalizable, multilingüe y multilingüe desarrollado por Bytedance . Con más de 4 años de pruebas y mejoras, BMF se ha adaptado para abordar los desafíos con expertos en nuestros entornos de producción del mundo real. Actualmente se usa ampliamente en la transmisión de video de Bytedance, la transcodificación en vivo, la edición de la nube y los escenarios de procesamiento previo/posterior a móviles. El marco procesa más de 2 mil millones de videos todos los días.
Aquí hay algunas características clave de BMF:
Soporte multiplataforma: compatibilidad nativa con Linux, Windows y Mac OS, así como optimización para X86 y CPU ARM.
Fácil de usar: BMF proporciona API Python, GO y C ++, lo que permite a los desarrolladores la flexibilidad de codificar en sus idiomas favoritos.
Personalización: los desarrolladores pueden mejorar las características del marco agregando sus propios módulos de forma independiente debido a la arquitectura desacoplada de BMF.
Alto rendimiento: BMF tiene un poderoso programador y un fuerte soporte para el hardware de aceleración heterogénea. Además, NVIDIA ha estado cooperando con nosotros para desarrollar una tubería de GPU altamente optimizada para la transcodificación de video e inferencia de IA.
Conversión de datos eficientes: BMF ofrece conversiones de formato de datos sin interrupciones en marcos populares (FFMPEG/Numpy/Pytorch/OpenCV/Tensorrt), conversión entre dispositivos de hardware (CPU/GPU) y el espacio de color y la conversión del formato de píxeles.
BMFLITE es un marco de procesamiento multimedia del lado de la plataforma cruzada, ligera y más eficiente del lado del cliente. Hasta ahora, el algoritmo del lado del cliente BMFLITE se usa en aplicaciones como Douyin/Xigua, que sirve a más de mil millones de usuarios en transmisión en vivo/reproducción de video/imágenes/juegos en la nube y otros escenarios, y procesando videos e imágenes de veces todos los días de veces .
Coloque más profundamente en las capacidades de BMF en nuestro sitio web para obtener más detalles.
En esta sección, mostraremos directamente las capacidades del marco BMF alrededor de seis dimensiones: transcode , edición , reunión/emisor , aceleración de GPU , inferencia de IA y marco del lado del cliente . Para todas las demostraciones proporcionadas a continuación, las implementaciones y la documentación correspondientes están disponibles en Google Colab, lo que le permite experimentarlas intuitivamente.
Esta demostración describe paso a paso cómo usar BMF para desarrollar un programa de transcodificación, incluida la transcodificación de video, la transcodificación de audio y la transcodificación de imágenes. En él, puede familiarizarse con cómo usar BMF y cómo usar opciones compatibles con FFMPEG para lograr las capacidades que necesita.
Si quieres tener un experimento rápido, puedes probarlo
La demostración de edición le mostrará cómo implementar una tubería de edición de audio y video de alta complejidad a través del marco BMF. Hemos implementado dos módulos de Python, video_concat y video_overlay, y combinamos varias capacidades atómicas para construir un gráfico BMF complejo.
Si quieres tener un experimento rápido, puedes probarlo
Esta demostración utiliza el marco BMF para construir un servicio de transmisión simple. El servicio proporciona una API que permite la extracción dinámica de la fuente de video, el control de diseño de video, la mezcla de audio y, en última instancia, transmitir la salida a un servidor RTMP. Esta demostración muestra la modularidad de BMF, el desarrollo de varios idiomas y la capacidad de ajustar dinámicamente la tubería.
A continuación se muestra una grabación de pantalla que demuestra el funcionamiento de la emisora:

La demostración de aceleración de extracción de marco de video muestra:
BMF Capacidad flexible de:
Aceleración de hardware Activado rápidamente y soporte de tuberías de CPU/GPU
Si quieres tener un experimento rápido, puedes probarlo
La demostración de transcodificación y módulo de filtro de GPU muestra:
La demostración construye una tubería de transcodificación que se ejecuta completamente en GPU:
decode-> escala-> flip-> rotar-> cultivo-> blur-> codificar
Si quieres tener un experimento rápido, puedes probarlo
El prototipo de cómo construir un preprocesamiento de video para los datos de capacitación de LLM en bytedance, que sirve a miles de millones de procesos de clip cada día.
El video de entrada se dividirá de acuerdo con el cambio de escena, y los subtítulos en el video serán detectados y recortados por el módulo OCR, y la calidad del video se evaluará mediante el módulo estético proporcionado por BMF. Después de eso, los videoclips finalizados se codificarán como salida.
Si quieres tener un experimento rápido, puedes probarlo
Esta demostración muestra cómo integrar los algoritmos de AI de estado de arte en la tubería de procesamiento de video BMF. El famoso algoritmo de colorización de código abierto Deoldify está envuelto como un módulo BMF Pyhton en menos de 100 líneas de códigos. El efecto final se ilustra a continuación, con el video original en el lado izquierdo y el video de color a la derecha.
Si quieres tener un experimento rápido, puedes probarlo

Esta demostración implementa el proceso de inferencia de súper resolución de Real -Srgan como un módulo BMF, que muestra una tubería BMF que combina la decodificación, la inferencia de super resolución y la codificación.
Si quieres tener un experimento rápido, puedes probarlo
Esta demostración muestra cómo invocar nuestro modelo de evaluación estética utilizando BMF. Nuestro modelo de aprendizaje profundo aesMode ha logrado una precisión de clasificación binaria de 83.8% en el conjunto de datos AVA, alcanzando el nivel de SOTA académica, y puede usarse directamente para evaluar el grado estético de videos mediante el procesamiento de extracción de cuadros.
Si quieres tener un experimento rápido, puedes probarlo
Esta demostración muestra una tubería de detección de cara completa basada en la aceleración de Tensorrt, que utiliza internamente el modelo ONNX acelerado de Tensorrt para procesar el video de entrada. Utiliza el algoritmo NMS para filtrar cuadros candidatos repetidos para formar una salida, que puede usarse para procesar una tarea de detección de cara de manera eficiente.
Si quieres tener un experimento rápido, puedes probarlo
Este caso ilustra los procedimientos de integrar un módulo de algoritmo externo en el marco BMFlite y la gestión de su ejecución.

Este ejemplo implementa el algoritmo Denoise como un módulo BMF, que muestra una tubería BMF que combina la captura de video, la reducción de ruido y la representación.

Acerca de BMF
Experiencia rápida
Empezando
Modo de sincronización con 3 idiomas. Puedes probarlo en:
Python: C ++: Go:
Múltiples características (con ejemplos)
API
Licencia
Que contribuye
El proyecto tiene una licencia Apache 2.0. Los componentes y dependencias de terceros permanecen bajo sus propias licencias.
Las contribuciones son bienvenidas. Siga las pautas.
Utilizamos problemas de GitHub para rastrear y resolver problemas. Si tiene alguna pregunta, no dude en unirse a la discusión y trabajar con nosotros para encontrar una solución.
La herramienta CMDLine de referencia de decodificador, codificador y filtro FFMPEG. Están envueltos como módulos incorporados de BMF bajo la licencia LGPL.
El proyecto también se inspira en otros marcos populares, como FFMPeg-Python y MediaPipe. Nuestro sitio web está utilizando el proyecto de Docsy basado en Hugo.
¡Aquí, nos gustaría expresar nuestro más sincero agradecimiento a los desarrolladores de los proyectos anteriores!