Marco de procesamiento multimedia general de código abierto del motor Volcano BMF

Fuente del artículo | Comunidad de código abierto BMF

GitHub |github.com/BabitMF/bmf

Antecedentes de código abierto

Con el rápido desarrollo de los vídeos cortos en directo y el 5G, cada vez se registran y difunden más datos en forma de vídeos. Esto hace que la investigación y aplicación de tecnologías de procesamiento de video, que son herramientas universales, SDK y soluciones para implementar diversas aplicaciones de video, sean particularmente importantes.

En la era del vídeo, el desarrollo multimedia enfrenta diversos desafíos, entre ellos,

  • Escenarios complejos : vínculos de procesamiento complejos, interdependencia entre algoritmos y proyectos, y diversos escenarios comerciales.
  • Extensión y colaboración : algunos desarrolladores de algoritmos suelen utilizar lenguajes de alto nivel como Python, mientras que algunas soluciones de procesamiento multimedia solo proporcionan interfaces C/C++. Además, en algunos casos, para lograr mejor la reutilización de capacidades, a menudo se encuentra que el lenguaje de desarrollo utilizado para las capacidades maduras no es el mismo que el del proyecto que se está desarrollando actualmente. Cómo reutilizar e integrar capacidades de manera rápida y efectiva es un gran problema. problema. La ingeniería presenta desafíos importantes.
  • Estándares y compatibilidad : Los usuarios de desarrollo multimedia a menudo enfrentan diferentes necesidades de procesamiento. Algunas capacidades de filtro y transcodificación clásicas y de uso común se utilizan con mucha frecuencia para cumplir con los estándares de la industria, y deben invertir mucho esfuerzo en desarrollo para satisfacer sus propias necesidades. lograr el cumplimiento de la transcodificación estándar y los detalles del procesamiento de filtros; también hay algunas situaciones de desarrollo complejas que requieren interoperabilidad entre diferentes datos convencionales. Los desarrolladores a menudo necesitan invertir mucha energía para aprender a interactuar con varios estándares y SDK.
  • Computación heterogénea : para el procesamiento de video masivo, los cálculos que se basan únicamente en CPU de múltiples núcleos a veces no pueden cumplir con los requisitos de rendimiento y costo. Esto requiere aceleración de hardware en combinación con coprocesadores como GPU y DSP. Cómo conectar capacidades heterogéneas de manera conveniente y eficiente, incluida la transmisión y conversión de datos simples y fáciles de usar en enlaces de procesamiento de usuarios y la programación asincrónica de alto rendimiento, es un desafío en la nueva era.

Para resolver varios de los desafíos mencionados anteriormente, Volcano Engine desarrolló el marco de procesamiento multimedia universal BMF (Babit Multimedia Framework ) , que puede proporcionar interfaces en varios idiomas simples y fáciles de usar, programación y escalabilidad flexibles y expansión dinámica en de manera modular, administre y reutilice las capacidades atómicas del procesamiento de video, cree enlaces de procesamiento multimedia de alto rendimiento en forma de Graph/Pipeline, o implemente la integración de ingeniería llamando directamente a capacidades de procesamiento individuales, ayudando a los usuarios multimedia a implementar proyectos en el entorno de producción. cómoda y eficientemente. En forma de código abierto, el equipo de BMF espera que al ayudar a los usuarios a resolver los puntos débiles de la industria , pueda atraer más atención y comentarios de los usuarios y las comunidades, y mejorar continuamente la influencia técnica de la empresa.

¿Qué es BMF?

BMF (Babit Multimedia Framework, marco de procesamiento multimedia de ocho bits) es un marco de procesamiento multimedia universal desarrollado por Volcano Engine . Puede proporcionar interfaces en varios idiomas simples y fáciles de usar, programación flexible y escalabilidad, y puede ser dinámico. expandido de manera modular Administre y reutilice las capacidades atómicas del procesamiento de video y cree enlaces de procesamiento multimedia de alto rendimiento en forma de Graph para ayudar a los usuarios multimedia a implementar proyectos de manera rápida y eficiente en el entorno de producción. La estructura general del ecosistema de BMF se muestra en la figura.

Características del marco BMF

  • Interfaz simple en varios idiomas : BMF proporciona una interfaz en varios idiomas para facilitar a los usuarios la integración del desarrollo en diferentes idiomas según las necesidades del proyecto, maximizando la compatibilidad y la reutilización de todo el marco.
  • Módulo multilingüe ligeramente acoplado : el módulo proporciona capacidades atómicas para el procesamiento de video. Los usuarios pueden elegir Python, C ++ o Go para centrarse en el desarrollo de módulos, existe un acoplamiento flexible entre módulos y marcos, y entre módulos, desacoplando así los algoritmos de la ingeniería. , desacoplando los módulos de procesamiento desarrollados en diferentes lenguajes de los lenguajes de desarrollo utilizados en aplicaciones de capa superior, mejorando en gran medida las capacidades de expansión y las capacidades de colaboración diversificada.
  • Potente motor de programación : BMF proporciona un programador paralelo configurable, múltiples modos de uso y funciones avanzadas de ajuste dinámico de Graph para realizar un mecanismo de programación de alto rendimiento responsable de la operación de DAG/Graph/Pipeline y ayudar a los usuarios a través de diversas soluciones. requisitos funcionales y de rendimiento en escenarios complejos.
  • Totalmente compatible con las funciones y estándares de FFmpeg : BMF es totalmente compatible con las capacidades e indicadores de procesamiento de FFmpeg, como las capacidades de decapsulación, decodificación, filtrado, codificación y encapsulación. La configuración de estas capacidades de procesamiento y la capacidad de obtener pts, duración, tasa de bits, fps, etc. con FFmpeg Los resultados con indicadores consistentes satisfacen bien la necesidad de integrar rápidamente las capacidades de FFmpeg en los proyectos.
  • Capacidades de conversión de datos entre múltiples marcos y dispositivos heterogéneos : admite la conversión sin copia entre múltiples formatos de datos convencionales y es altamente compatible con conexiones de datos entre diferentes módulos. Por ejemplo, es necesario utilizar las capacidades de codificación, decodificación y filtrado de ffmpeg, el procesamiento de transformación de OpenCV y situaciones más complejas en las que es necesario utilizar Pytorch para análisis inteligente y, al mismo tiempo, admite la transferencia de datos heterogéneos entre dispositivos y el formato de píxeles; capacidades de conversión y capacidades de programación asincrónica, lo que ayuda a los usuarios a resolver rápidamente problemas de optimización acelerada en el entorno de producción.

Escenarios de aplicación

La compañía ha implementado transcodificación de video, mejora, servicios de procesamiento inteligente, servicios de extracción y revisión de fotogramas , recortes de retratos mejorados de video en vivo e implementación de algoritmos en terminales móviles a un nivel de 100 millones por día dentro de la compañía , ayudando a la compañía a reducir el desarrollo y la informática. y costos de ancho de banda, mejorando la colaboración y la eficiencia del desarrollo de ingeniería y algoritmos.

cómo utilizar

Dirección de código abierto:

https://github.com/BabitMF/bmf

plan de seguimiento

BMF ahora es de código abierto y el proyecto aún se encuentra en iteración activa. En el futuro, se realizarán esfuerzos en la construcción ecológica heterogénea, la construcción de más capacidad atómica y el soporte de terminales móviles para mejorar la ecología del desarrollo multimedia y fortalecer la cooperación industrial. Intentar participar en la construcción de comunidades y promover la estandarización de la tecnología.

Gracias y comunicación.

Todos son bienvenidos a realizar comunicaciones y comentarios de seguimiento a través de GitHub, y también pueden visitar el sitio web de BMF .

¡Compañero pollo deepin-IDE de "código abierto" y finalmente logró el arranque! Buen chico, Tencent realmente ha convertido Switch en una "máquina de aprendizaje pensante" Revisión de fallas de Tencent Cloud del 8 de abril y explicación de la situación Reconstrucción de inicio de escritorio remoto de RustDesk Cliente web Base de datos de terminal de código abierto WeChat basada en SQLite WCDB marcó el comienzo de una actualización importante Lista de abril de TIOBE: PHP cayó a un mínimo histórico, Fabrice Bellard, el padre de FFmpeg, lanzó la herramienta de compresión de audio TSAC , Google lanzó un modelo de código grande, CodeGemma , ¿te va a matar? Es tan bueno que es de código abierto: herramienta de edición de carteles e imágenes de código abierto
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/6210722/blog/10105899
Recomendado
Clasificación